VLA 可以根据图像、语言和机器人状态生成动作,但部署时仍缺少一个很基础的仪表盘:机器人现在走到哪一步?任务是否还在正常推进?模型是不是已经进入一个自己无法处理的状态?
Decoding Task Progress from VLA Representations (Bhardwaj 等 2026年) 从机制可解释性的角度研究这个问题。作者没有为 \pi_{0.5} 额外训练一个复杂的进度模型,而是直接探测 Transformer residual stream 中的激活,发现任务进度可以被一个线性探针读出。
更有意思的是后半句:这个信号可以用于运行时监测,却不能通过简单的激活注入来操控策略。模型“表征了什么”和“会根据什么行动”并不是同一件事。
任务进度如何定义
对于一条长度为 T 的专家轨迹,论文把时刻 t 的任务进度定义为剩余轨迹比例:
\tau(x_t)=1-\frac{t}{T}, \qquad \tau\in[0,1]
因此,任务开始时 \tau=1,完成时下降到 0。这个标签可以直接从演示的时间索引得到,不需要人工逐帧标注。它也有一个明显的限制:这里的“进度”首先是时间代理量,而不完全等同于语义上的完成度。论文之后专门用语言反事实实验检验探针是否只是在读取时间和视觉变化。
“能读出”其实有三个强度
论文把“模型内部存在某个概念”拆成三个不同命题:
| 层次 | 要回答的问题 | 本文结果 |
|---|---|---|
| Weak decodability | 在原始数据分布上,线性探针能否预测进度 | 可以 |
| Strong decodability | 改变进度所依赖的输入后,同一个探针是否正确响应 | 经反事实训练后可以 |
| Steerability | 沿探针方向修改激活,能否让模型产生对应动作 | 没有成功 |
这个区分很重要。一个探针预测准确,可能只是利用了相关线索;即使它能响应反事实输入,也不代表模型的动作头真的使用了这条方向。
进度信号在哪里出现
作者在 VLABench 上微调 \pi_{0.5},数据包含 10 个具有语义变化的操作任务,每个任务 500 条轨迹。对每个观测,研究者缓存各 Transformer 层的 residual-stream 激活,在 token 维度做平均,再为每层单独训练线性探针。
进度信号在早期视觉层和前几个 Gemma 层最容易读取;加入更高容量的 MLP 探针后,真实标签与随机标签之间仍保持明显差距,说明结果不是探针单纯记住数据。
| 模型阶段 | 平均 R^2 | MAE |
|---|---|---|
| PaliGemma | 0.700 | 0.123 |
| Base \pi_{0.5} | 0.926 | 0.059 |
| Fine-tuned \pi_0 | 0.961 | 0.044 |
| Fine-tuned \pi_{0.5} | 0.927 | 0.058 |
PaliGemma 在接触机器人数据之前就已经带有一定的进度结构,可能来自视觉—语言预训练对场景变化的编码;大规模机器人预训练把信号显著增强,而下游微调前后的 \pi_{0.x} 表现接近。也就是说,这不是某个 VLABench 任务上临时学出的特征。
高准确率探针可能根本没看语言
原始的 layer-0 探针在常规验证集上达到 R^2=0.95。但作者把指令中的目标名词替换掉,例如把“把梨放到盘子上”换成“把苹果放到盘子上”,同时保持图像和本体状态不变,探针输出的曲线几乎没有变化。
这说明朴素探针虽然能准确拟合进度,却主要依赖视觉,忽略了任务由哪条语言指令定义。它只有 weak decodability,不能证明模型形成了真正的任务条件进度。
作者随后把名词替换后的激活加入训练,并把这些反事实样本近似标记为 \tau=1——也就是对新指令尚未取得进展。layer-10 探针由此获得语言敏感性:原指令下的预测随执行下降,替换指令下则保持接近 1。
代价也很明显:常规数据上的 R^2 从朴素探针的 0.95 降到 0.33。这里使用的反事实标签本身只是一种代理,因为没有真正执行替换后的任务。强可解码性并不是免费得到的。
能观察,不等于能控制
如果进度在线性方向上可读,沿这个方向推动激活,能否让机器人表现得像“前进了 20%”?作者在 Gemma layer 0 注入 \tau_{boost}=0.2 的进度偏移,再观察后续层和最终动作。
结果是否定的:注入只改变了当前层的探针读数,没有沿网络继续传播;解码出的动作也没有接近专家轨迹中更晚时刻的动作。论文因此把任务进度描述为 observable but not linearly controllable。
这也是全文最值得注意的判断:线性探针找到了一个相关方向,但这个方向可能只是模型状态的“读数”,而不是动作生成中的因果控制旋钮。
用进度停滞检测 OOD
虽然无法直接操控策略,进度信号仍然很适合做运行时监测。正常专家轨迹中的 \tau 应该大致从 1 下降到 0。根据任务的平均完成时间 \mathbb{E}[T\mid\ell],可以得到预期曲线,并计算预测进度与预期进度的残差:
V_\tau(t)=\tau_{pred}-\left(1-\frac{t}{\mathbb{E}[T\mid\ell]}\right)
当模型受到模糊、遮挡、颜色偏移或高斯噪声干扰时,机器人往往不再推进任务,探针预测也随之停滞。残差超过阈值,就把当前 rollout 标记为 OOD。
更关键的是,这个检测器只需要正常轨迹,不需要任何 OOD 标签。在留出两种从未见过的扰动进行测试时,它超过了需要 OOD 监督的 SAFE 基线:
| 检测器 | 未见扰动:per-replan AUROC | 未见扰动:per-episode AUROC |
|---|---|---|
| Progress residual V_\tau | 0.871 | 0.960 |
| SAFE-MLP | 0.844 | 0.894 |
| SAFE-LSTM | 0.641 | 0.857 |
它检测的不是“这张图像像不像训练集”,而是“任务是否还在按模型内部预期推进”。因此,即使扰动类型改变,进度停滞仍然是一种相对稳定的异常信号。
结论的边界
这篇论文给出的结论很有吸引力,但范围需要保持清楚:
- 定量实验集中在模拟环境中的 \pi_{0.x} 家族,尚未证明能跨 VLA 架构或迁移到真实机器人。
- \tau=1-t/T 把时间流逝和语义完成度混在一起;语言反事实只提供了部分反证。
- 名词替换样本被标为“零进展”是一种代理标签,不是真实反事实 rollout 的完成度。
- 不可操控的结论只测试了固定层、固定方向和固定幅度,更复杂的联合干预仍可能有效。
因此,这项工作的直接价值不在于给 VLA 增加一个新的控制能力,而在于提供了一个轻量、可解释的运行时仪表:从模型自己的内部激活中读取任务是否仍在推进,并在进度停滞时发出异常信号。
真正重要的不是“VLA 内部有没有某个线性方向”,而是把三个问题分开:能不能读、是否依赖正确的任务条件、能不能因果地改变行为。这篇论文在前两个问题上给出了积极结果,在第三个问题上保留了一个同样有价值的否定答案。