只在 VLA 快要失败时才接管,RL² 把机器人陌生场景成功率拉高 17.3 个点

RL$^2$-VLA: Adaptive RL Latent Compositional Steering with Test-Time Scaling for Vision-Language-Action Models

Derek Ming Siang Tan, Shailesh Shailesh, Srikrishna Iyer, William Wei Jie Teo, Yuanliang Ju, Qiao Gu, Guillaume Sartoretti

cs.RO

2026-07-29

RL² 训练一个吃 VLA 隐向量的轻量强化学习策略,只在失败检测器判定即将失手时,把它的动作流叠进冻结 VLA 的动作生成;仿真与真机 OOD 任务成功率最多涨 17.3 个点。

这篇在解决什么

VLA(Vision-Language-Action,视觉-语言-动作)模型把图像和语言指令直接映射成机器人动作,是通用机器人的主流路线。它在训练见过的任务上表现不错,换到没见过的指令或场景就崩。论文给了两组很直白的数字:换一种说法下指令,成功率从 38.2% 掉到 14.2%;换个没见过的桌面环境,从 70.2% 掉到 36.0%。

现成的补救办法是测试时干预(test-time steering):不重训模型,在推理时生成多个候选动作,再用一个打分器挑最好的。问题是这些候选都来自同一个策略,失败模式高度相关,反复采样只是在同一个坑周围打转。更隐蔽的是,几乎所有方法每一帧都干预,即便当前这步模型本来就做得对,也要硬塞一堆扰动进去。

RL² 的出发点很直觉:人不是这么操作的。伸手拿桌上一个马克杯,不会反复斟酌备选动作;但杯子被挡住一半,就会换一面去抓或者先把障碍挪开。多样化只在「默认动作大概会失败」时才真正有用,在「默认动作本来就对」时反而是噪声。

方法

RL² 由三部分组成,都套在一个冻结的 VLA 外面,不动原模型任何权重。

第一,训练一个轻量的离线强化学习策略。它从 VLA 的 action expert 里抽出一组隐向量(latent)当条件,预测一个动作块,训练数据和 VLA 同一份(BridgeV2、DROID),只是把每条数据过一遍 VLA 把隐向量存下来。关键技巧是 QAM(Q-learning with Adjoint Matching,带伴随匹配的 Q 学习)。直接把 critic 的梯度反传穿过 flow matching 的多步去噪在数值上不稳,QAM 改用一个伴随状态从终端动作反向算出时间相关的引导信号当目标,把训练稳住。论文发现只调一个逆温参数 τ 就能稳定超过行为克隆基线。

第二,组合式干预(compositional steering)。VLA 用 flow matching 生成动作,每一步沿一个速度场把噪声推向有效动作。RL² 在每个去噪步把 VLA 的速度场和 RL 策略的速度场做加权平均:v = w·vVLA + (1-w)·vRL,权重 w 从 N(0.5, 0.25) 截断到 [0,1] 里采样。这样每个候选动作既带着大规模模仿学习的行为先验,又被 RL 往「示范里没怎么出现过的高价值动作」上拉。对 OpenVLA 这种自回归式、没法做 flow 组合的 VLA,退一步用高斯扰动策略代替。

第三,只在失败时才触发,这是全文最核心的判断。作者先做了一组 scaling law 分析:在 BridgeV2 验证集上按动作误差把样本分成成功组和失败组,看生成样本数和归一化动作误差的关系。结论是,误差都随样本数指数下降,但在失败组里 RL² 的组合干预降得最猛;而在成功组里,几乎所有方法(包括 RL²)都跑不过 Rephrase 基线,RBF 和 RL² 还是其中最差的两个。这就是为什么必须自适应:多样化能救命,也会把本来对的动作搞歪。具体做法是接一个叫 SAFE 的轻量失败检测器(一个吃 VLA 隐向量的 LSTM),每帧输出 [0,1] 的失败分数,再用共形预测(conformal prediction)给每帧定一个阈值 δt,分数超阈值才启动组合干预,否则老实用原始 VLA;最后由一个外部打分器(RoboMonkey 或 CoVer)在候选里挑一条执行。

结果

仿真跑了三个 benchmark,外加真机。

设置(模型 / 场景)对照基线相对提升
SIMPLER / OpenVLA(域内任务)Repeated平均 +7.5%,最高 +19.4%
SIMPLER / π₀(陌生指令)Rephrase平均 +10.1%,最高 +14.7%
SIMPLER / π₀(陌生环境)Rephrase平均 +8.5%,最高 +14.6%
PolaRiS / π₀.₅(陌生指令)Rephrase(31.8% → 42.7%)平均 +10.9%,最高 +17.3%
真机 / PiperX / π₀(4 个 OOD 任务)Rephrase平均 +17.5%

PolaRiS 那张表最值得展开。π₀.₅ 裸跑成功率只有 14.3%,加 Rephrase(用 VLM 改写指令再采样)涨到 31.8%,非自适应 RL² 是 33.8%,几乎没比 Rephrase 强;到自适应 RL² 才到 42.7%。从非自适应到自适应这一跳,就是「只在失败时干预」全部的价值。真机上自适应比非自适应还多 +14.2%,在硬件上把同一件事再说了一遍。

消融里两点很硬。一是隐向量不可或缺:把 RL 策略的输入从 VLA action expert 的隐向量换成原始观测,成功率从 39.3% 掉到 0.5%,几乎归零,作者归因于 action expert 的特征比 ResNet 那种小编码器表达力强太多。二是 RL 比 BC 强:同一套组合框架,RL 训练比行为克隆高最多 +4.5%,说明多样化得靠 RL 探索出来,模仿给不了。检测器这环也做了对比,SAFE 比 CoVer 当检测器高最多 +3.5%,比「每帧都干预」高更多。

成本侧几乎可以忽略。在 RTX 5090 上,batch=1 时 π₀ 前向 232ms,CoVer 打分 96ms,RL 策略(QAM)12ms,SAFE 失败检测 1ms;batch 拉到 128,QAM 也才 48ms、SAFE 2ms。两个新增网络相对 VLA 本身是零头。

为什么重要

对做机器人的从业者,RL² 给了一条不重训、模块化、即插即用的 OOD 补救路径。它不挑 VLA(OpenVLA、π₀、π₀.₅ 都能套),也不挑打分器(RoboMonkey、CoVer 都行),只在冻结的原模型外面挂两个轻量网络。更值钱的是它把一个直觉固化成了机制:干预有代价,只在模型快撑不住时才出手。这个「失败预测门控」的思路,对任何「生成一堆候选再挑最好的」推理时框架都不限于机器人可能都成立。

诚实地说,这些是离线 RL 在仿真数据上训出来的增益,不是能力上的根本突破。RL² 没有让模型学会原本不会的动作类型,只是把已有动作分布往更优的候选上挪。

局限与存疑

论文自己列了三条,都中肯:只比了轻量引导函数,没和来自大型 VLM 或别的 VLA 的可微引导正面对比;α 选择启发式(挑共形预测的显著性水平)还要额外的测试时评估,而且现在用平衡准确率当指标,作者自己承认换成「检测及时性」之类可能更好,失败检测器目前还得靠线上 rollout 收集数据训练;整套方法假设打分器足够靠谱,没考虑打分器本身错了怎么办。

读下来还有一处要追问。真机实验里,SAFE 失败检测器直接从仿真迁过来并不 work,作者不得不在真机上重新收集一小批 rollout 重训。这意味着每换一个部署环境,失败检测器可能都得重新校准,「即插即用」在检测器这一环要打折扣。另外 PolaRiS 的三个任务每任务 50 次 × 3 个 seed,样本量不算大,几个百分点的方差区间也不窄。

术语

原文与代码

相关论文

全部论文解读