# 给 VLA 装一个 4000 万参数的刹车：不改主干权重，扰动恢复从 40% 到 68.3%

> 浙大与阿里达摩院开源了一个 4000 万参数的 Corrector 模块，挂在任何用动作分块的 VLA 外面就能用，不改主干权重。它治的是动作分块之间的开环盲区——这是所有 chunking 架构的通病。

### TLDR

- **它治什么病**：基于动作分块（action chunking）的 VLA 会一次吐出一串动作，执行期间摄像头照常进图但手还在跑几百毫秒前生成的动作——这个<strong>开环盲区</strong>是所有 chunking 架构的通病。
- **怎么治**：约 **4000 万参数**的 Corrector 挂在推理流水线<strong>之外</strong>，不修改主干权重，在 latent 空间比较视觉特征的期望变化与实际变化；偏差持续就冲刷未执行动作队列，并把偏差转成梯度信号引导恢复推理。
- **实测提升**：真实 AgileX PiPER 平台上，九项任务平均成功率从 **55.6%** 升到 **73.3%**；扰动恢复任务（目标被手动移开）从 **40.0%** 升到 **68.3%**。
- **副作用是好的**：SmolVLA 在 horizon 10 下，成功率从 **61.90%** 升到 **73.00%**，而平均策略调用次数反而从 **19.27 次降到 15.64 次**。
- **截断发生在哪**：**83.7%** 的截断发生在抓取、对准、插入这类关键阶段——说明它确实拦在了该拦的地方。
- **可移植性**：可直接挂到 **π0.5** 或 **SmolVLA**，代码与项目页已开源（arXiv 2607.01804）。

### SRC

本文事实以 arXiv 2607.01804（Pan Yi 等，浙江大学 ACES Lab 的 OmniAI 团队与阿里巴巴达摩院）为准，并以新浪科技 2026 年 9 月 5 日报道、FutureX Physical AI Daily Issue 111（2026-09-06）英文条目交叉核验，三组关键数字（九任务 55.6%→73.3%、扰动恢复 40.0%→68.3%、SmolVLA horizon 10 下 61.90%→73.00% 与策略调用 19.27→15.64）在三个来源间一致。

需明确的边界：<strong>本文未逐一打开代码仓库逐行验证接口</strong>，安装与接入步骤是依据论文与报道描述的机制给出的通用判定流程，实际参数名与调用方式以作者开源仓库为准。九项任务的具体构成、AgileX PiPER 的本体配置、扰动幅度的定义，均未在本文可获取的报道中完整披露。「正确率提升 17.7 个点」是在「目标被人为手动移开」这一特定扰动下测得，常态工况下的收益大概率显著小于该值。文中关于「该不该装」的判定条件与三步验收法为本文提出的工程建议，非论文结论。解读时间：2026-09-07。

### BODY

<div class="sec"><div class="eyebrow"><span class="num">1</span>先确认你是不是病人</div>
<h2>只有用动作分块的 VLA 才吃这副药</h2>

<p>在动手之前，先花两分钟确认自己的策略是不是这个模块的目标对象。判据只有一条：<strong>你的模型是不是一次输出一串动作，然后闭着眼睛把这串动作跑完</strong>。</p>

<p>动作分块（action chunking）是近两年 VLA 的标配——π0、π0.5、SmolVLA、以及大量国内自研策略都这么干。它让推理频率降下来、动作更平滑，代价是：在这串动作执行期间，摄像头虽然在进图，但控制器不会重新决策。如果这期间有人把目标挪走了、零件被碰歪了、夹爪打滑了，机器人会<strong>照着一串过时的动作继续执行到底</strong>。</p>

<div class="jx">
  <div class="jx-h"><span>先做一个 30 秒的自测</span><span class="jx-note">判定方法为本文提出</span></div>
  <div class="jx-tl">
    <div class="jx-tl-row"><div class="jx-tl-t">第 1 步</div><div class="jx-tl-b"><div class="jx-tl-blk" style="background:#0a749a">让机器人执行一个抓取任务，在它的末端开始运动之后、接触目标之前，把目标平移 5—10 厘米</div></div></div>
    <div class="jx-tl-row"><div class="jx-tl-t">第 2 步</div><div class="jx-tl-b"><div class="jx-tl-blk" style="background:#00a6d6">观察：它是朝原目标位置继续走，还是中途改向</div></div></div>
    <div class="jx-tl-row"><div class="jx-tl-t">判定</div><div class="jx-tl-b"><div class="jx-tl-blk" style="background:#b85c0a">朝原位置走到底 = 典型的开环盲区，Corrector 适用；中途改向 = 你的重规划频率已经够高，收益有限</div></div></div>
  </div>
  <div class="cap">这个自测不需要任何代码。如果答案已经是否定的，先去调高重规划频率，那是更便宜的解法。</div>
</div>

<p>Corrector 的做法不是提高重规划频率——那会成倍增加算力开销。它是在推理流水线<strong>外面</strong>挂一个约 4000 万参数的小模块，持续比对「按当前这串动作，视觉特征<strong>应该</strong>怎么变」和「实际看到的特征<strong>正在</strong>怎么变」。偏差持续存在，就判定这串动作已经失效，冲刷掉队列里还没执行的动作，并把偏差转成梯度信号，引导一次恢复推理。</p>

<div class="keypoint">
  <strong>判断：</strong>这个设计最值得学的不是网络结构，是<strong>它选择不改主干权重</strong>。把一个模块做在旁路、不碰主干，意味着它可以直接挂在已经训练好、已经上线、已经验证过的策略上，不需要重新训练、不需要重新走一遍安全评审。对企业里已经部署的那批机器人，这个性质比提升几个点重要得多——能不能不动主干，决定了改造要不要停线。
</div>
</div>

<div class="sec"><div class="eyebrow"><span class="num">2</span>数字与代价</div>
<h2>17.7 个点是怎么来的，又有多少会被工况吃掉</h2>

<div class="jx">
  <div class="jx-h"><span>论文与报道披露的提升</span><span class="jx-note">真实平台为 AgileX PiPER</span></div>
  <div class="jx-bars">
    <div class="jx-bar-row"><div class="jx-bar-lab">九任务平均 · 加装前</div><div class="jx-bar-track"><div class="jx-bar-fill" style="width:55.6%;background:#566781"></div></div><div class="jx-bar-val">55.6%</div></div>
    <div class="jx-bar-row"><div class="jx-bar-lab">九任务平均 · 加装后</div><div class="jx-bar-track"><div class="jx-bar-fill" style="width:73.3%;background:#0a749a"></div></div><div class="jx-bar-val">73.3%</div></div>
    <div class="jx-bar-row"><div class="jx-bar-lab">扰动恢复 · 加装前</div><div class="jx-bar-track"><div class="jx-bar-fill" style="width:40%;background:#566781"></div></div><div class="jx-bar-val">40.0%</div></div>
    <div class="jx-bar-row"><div class="jx-bar-lab">扰动恢复 · 加装后</div><div class="jx-bar-track"><div class="jx-bar-fill" style="width:68.3%;background:#0d8a5f"></div></div><div class="jx-bar-val">68.3%</div></div>
    <div class="jx-bar-row"><div class="jx-bar-lab">策略调用次数 · 加装前</div><div class="jx-bar-track"><div class="jx-bar-fill" style="width:96%;background:#b85c0a"></div></div><div class="jx-bar-val">19.27 次</div></div>
    <div class="jx-bar-row"><div class="jx-bar-lab">策略调用次数 · 加装后</div><div class="jx-bar-track"><div class="jx-bar-fill" style="width:78%;background:#00a6d6"></div></div><div class="jx-bar-val">15.64 次</div></div>
  </div>
  <div class="jx-legend"><div class="jx-lg">最后两行为 SmolVLA、horizon 10 条件下的平均策略调用次数，数值越低越好，与上方成功率不同向。</div></div>
  <div class="cap">扰动恢复 40.0%→68.3% 是最大的一档提升，但它测的是「目标被人为手动移开」——这是最有利的测量条件。</div>
</div>

<p>把这几组数字放在一起看，会得到一个比「涨了多少点」更有用的信息：<strong>策略调用次数从 19.27 降到 15.64，同时成功率还涨了</strong>。这说明 Corrector 不是靠「多问几次主干」换来的鲁棒性，而是靠「在正确的时候才问」。它拦下的 83.7% 截断发生在抓取、对准、插入这类关键阶段——这正是对的地方：在空行程阶段重新规划毫无意义，在接触前一刻重新规划才值钱。</p>

<p>代价也要算清楚。4000 万参数是额外的推理开销，虽然远小于主干，但它<strong>每一步都要跑</strong>，而且它跑的频率高于主干策略本身。在算力已经吃紧的边缘设备上，这笔开销不是零。另一个代价是新增了一组阈值：偏差多大算「持续」、冲刷多少步、恢复推理做几次——这些超参需要在你的具体工况上重新标定，论文给的是 PiPER 平台上的取值。</p>

<div class="jx">
  <div class="jx-h"><span>收益与代价</span><span class="jx-note">代价项为本文基于机制推断</span></div>
  <div class="jx-split">
    <div style="flex:50">
      <div class="eyebrow">收益</div>
      <p>· 不改主干权重，可挂已部署策略<br>
      · 抗扰动，尤其适合有人流、有协作的工位<br>
      · 策略调用次数不升反降（15.64 &lt; 19.27）<br>
      · 开源，代码与项目页可用</p>
    </div>
    <div style="flex:50">
      <div class="eyebrow">代价</div>
      <p>· 每步都要跑 40M 参数的额外前向<br>
      · 新增一组阈值需要按工况标定<br>
      · 冲刷动作队列本身会引入短暂停顿<br>
      · 收益在无人打扰的封闭工位上会显著缩水</p>
    </div>
  </div>
  <div class="cap">右栏最后一条最容易被忽略：如果你的机器人跑在全封闭、无人工干预的工位，这个模块的价值会大幅下降。</div>
</div>
</div>

<div class="sec"><div class="eyebrow"><span class="num">3</span>怎么装</div>
<h2>四步接入，和一份别跳过的标定</h2>

<div class="jx">
  <div class="jx-h"><span>接入流程</span><span class="jx-note">步骤为本文据机制整理的通用流程，具体接口以作者仓库为准</span></div>
  <div class="jx-steps">
    <div class="jx-step"><div class="jx-step-l">01 确认架构</div><div class="jx-step-bar"><div class="jx-step-v" style="width:20%">前置</div></div><div class="jx-step-ax">确认策略是 action chunking 架构，且能拿到中间 latent 视觉特征</div></div>
    <div class="jx-step"><div class="jx-step-l">02 挂载旁路</div><div class="jx-step-bar"><div class="jx-step-v" style="width:45%">接入</div></div><div class="jx-step-ax">把约 40M 参数的 Corrector 接到推理流水线之外，主干权重保持冻结</div></div>
    <div class="jx-step"><div class="jx-step-l">03 标定阈值</div><div class="jx-step-bar"><div class="jx-step-v" style="width:78%">关键</div></div><div class="jx-step-ax">在你的工况上重标「偏差持续」的判定窗口与冲刷步数，不要沿用论文默认值</div></div>
    <div class="jx-step"><div class="jx-step-l">04 观察指标</div><div class="jx-step-bar"><div class="jx-step-v" style="width:100%">验收</div></div><div class="jx-step-ax">同时看成功率与策略调用次数：只涨成功率而调用次数也涨，说明模块在乱拦</div></div>
  </div>
  <div class="cap">第 3 步是最容易被跳过、也最容易导致「装了没效果」的一步。阈值沿用默认值，模块要么几乎不触发，要么在空行程上频繁误拦。</div>
</div>

<p>第 4 步的验收口径值得展开说。<strong>单看成功率会骗人</strong>：一个更频繁触发的 Corrector 会让机器人反复重新规划，成功率可能上升，但节拍变慢、动作变碎，产线上未必能接受。正确的验收是双指标——成功率上升的同时，<strong>策略调用次数应该持平或下降</strong>。论文里 19.27→15.64 就是这个迹象：模块拦得准，所以总的重新规划次数反而变少了。</p>

<p>还有一个实操细节：Corrector 判定失效后会「冲刷动作队列」，这会在动作序列里引入一个短暂停顿。如果你的任务对节拍连续性敏感（例如焊接、涂胶、跟线装配），要把这个停顿纳入节拍测算，不要只看成功率。</p>

<div class="keypoint">
  <strong>判断：</strong>这个模块真正的落地场景不是实验室，是<strong>有人在的现场</strong>。展会、商超、展厅、协作工位——凡是有人会随手挪动东西、会挡住镜头、会提前把手伸进工作区的场合，VLA 的开环盲区每天都会被触发几十次。对做商业演出与租赁交付的团队，这类场合恰恰是主流工况：观众会递东西、会挡路、会拍一下机器人。在卖方案的时候，把「人把目标挪走了还能不能接着干」写进验收项，比写「抓取成功率 90%」有用得多。
</div>
</div>

<div class="sec"><div class="eyebrow"><span class="num">4</span>与另外两条路线的比较</div>
<h2>提高重规划频率、缩短 chunk、还是加刹车</h2>

<div class="jx">
  <div class="jx-h"><span>三条解法</span><span class="jx-note">对比框架为本文整理</span></div>
  <div class="tbl-wrap">
  <table>
    <tr><th>解法</th><th>改动范围</th><th>算力代价</th><th>适用场景</th></tr>
    <tr><th>提高重规划频率</th><td>只改推理调度，不动模型</td><td>随频率线性上升，最贵</td><td>算力富裕、任务节拍松</td></tr>
    <tr><th>缩短动作块长度</th><td>改采样/训练配置</td><td>中等，但动作平滑性下降</td><td>任务本身短、对平滑不敏感</td></tr>
    <tr><th>加 Corrector 旁路</th><td>加一个小模块，主干冻结</td><td>每步一次 40M 前向</td><td>已有策略不能重训、需要保留平滑性</td></tr>
  </table>
  </div>
  <div class="cap">三条不是互斥的。最省事的顺序是：先试缩短 chunk（零成本），不够再加 Corrector，最后才考虑提频率。</div>
</div>

<p>对已经上线的系统，第三条几乎是唯一可行的——前两条都要动训练或调度配置，意味着重新验证。这也是为什么「不改主干权重」这个性质值得单独拿出来说：<strong>它把「提升鲁棒性」从一次需要停线的改造，变成了一次可以灰度的旁路实验</strong>。</p>

<div class="srcline">
  <div class="h">本文的边界</div>
  论文事实（arXiv 2607.01804、约 40M 参数 Corrector、旁路挂载不改主干权重、可挂 π0.5 与 SmolVLA、latent 空间比对视觉特征期望与实际变化、偏差持续则冲刷未执行动作队列并转梯度信号、AgileX PiPER 九任务 55.6%→73.3%、扰动恢复 40.0%→68.3%、SmolVLA horizon 10 下 61.90%→73.00% 与策略调用 19.27→15.64、83.7% 截断发生在抓取/对准/插入阶段、代码与项目页已开源）经 arXiv 编号、新浪科技 2026-09-05 报道、FutureX Issue 111 三处交叉核对一致。<br><br>
  <strong>本文未逐行验证开源代码的实际接口与参数名</strong>，文中四步接入流程为依据机制给出的通用判定流程，实际调用方式以作者仓库为准。九项任务构成、PiPER 本体配置、扰动幅度定义未在可获取材料中完整披露。<br><br>
  「30 秒自测」「三条解法对比」「双指标验收」「代价项」为<strong>本文提出的工程建议与判断</strong>，非论文结论。收益在具体工况下的幅度需自行实测。<br><br>
  解读时间：2026-09-07。
</div>
</div>

---

*来源：神机百见-具身解读 · https://www.shenjibailian.com/jiedu/article/vla-corrector-40m-self-correction/*
