pi*0.6的RECAP:VLA如何从成功、失败和人工纠正中继续学习
一、普通SFT的缺点
VLA 模型通常从人工示范中学习,训练数据告诉模型,看到这个画面和任务指令时,执行这组机器人动作。这种方法适合让机器人快速掌握基本技能,但存在一个明显问题,模型只知道模仿数据,不知道数据中的动作到底有多好。
机器人真正部署后,经常会遇到示范数据没有覆盖的问题。例如,
- 叠衣服时碰乱已经折好的部分;
- 打开冰箱后碰倒里面的物品;
- 纸箱虽然组装成功,但动作过慢;
- 任务执行到一半后进入难以恢复的状态。
这些错误只有机器人实际运行时才会出现。最直接的做法是把新收集的数据继续加入SFT。但自主运行数据中既有成功动作,也有错误动作。如果全部当作正确答案训练,模型可能同时学习好动作和坏动作。只保留成功轨迹同样不理想,一条最终失败的轨迹,前面可能包含很多正确动作;一条最终成功的轨迹,中间也可能绕路、停顿,甚至出现被后续动作修复的错误。
因此,RECAP不直接按照整条轨迹的成功或失败筛选数据,而是尝试判断每个动作是否推动了任务进展。RECAP的全称是:RL with Experience and Corrections via Advantage-conditioned Policies,可以理解为:利用自主经验和人工纠正,通过优势条件策略进行强化学习。
二、RECAP的完整训练闭环
完整的RECAP不是一次普通的微调,而是一套可以重复执行的机器人学习流程,如下,
通用VLA预训练 ↓ 目标任务示范微调 ↓ 机器人自主运行 ↓ 收集成功、失败和人工纠正数据 ↓ 训练价值函数 ↓ 计算每个动作的优势 ↓ 使用优势条件重新训练VLA ↓ 重新部署并继续收集数据机器人需要在真实环境中运行,产生新的自主轨迹;但模型参数的更新仍然可以离线完成。它不是让机器人一边执行任务,一边运行PPO更新参数,而是先收集一批数据,再集中训练。RECAP主要使用三类数据,
1、人工示范
人工示范提供任务的基本解法,通常作为高质量动作数据使用。
2、机器人自主轨迹
自主轨迹包括成功和失败两种结果。这些数据最接近模型部署时真正遇到的状态,因此很适合用来修复模型自身的失败模式。
3、人工纠正
机器人自主运行时,操作员可以在关键错误发生前接管控制。例如机器人准备碰倒物体时,人工接管机械臂,将动作修正到安全方向。RECAP默认认为这种纠正动作优于机器人原本准备执行的动作,因此会把人工纠正强制标记为正优势数据。
三类数据不会被简单混成一批普通示范,而是先经过价值函数评价,再用于策略训练。
三、价值函数和动作优势
RECAP需要解决两个问题,1、当前状态距离任务完成还有多远?2、刚才执行的动作有没有让任务变得更容易?第一个问题由价值函数回答,第二个问题由优势回答。
1、从成功标签生成逐帧回报
真实机器人任务通常只有整条轨迹的成功标签。例如一次任务结束后只记录成功或者失败。很少为每一帧动作打分。RECAP使用了一种很简单的奖励设计,
普通步骤:奖励为-1 成功结束:最后一步奖励为0 失败结束:最后一步奖励为一个较大的负数这种设计会让成功轨迹的累计回报近似表示还剩多少步完成任务。例如一条成功轨迹还剩四步结束,从当前帧开始,那么各帧的累计回报依次为 -3、-2、-1、0。数值越接近0,说明越接近任务完成。失败轨迹最后会得到一个较大的负值,因此它的状态价值整体会明显低于成功轨迹。
2、训练价值模型
价值模型接收的输入与VLA类似,主要包括,
- 多视角机器人图像;
- 语言任务指令;
- 与任务有关的文本信息。
但它不生成机器人动作,而是预测当前状态的价值。论文没有直接让模型回归一个浮点数,而是把价值区间切分成201个离散区间,由模型预测价值分布,再计算期望值。这样做的目的不是要求价值模型精确预测还剩xx步,而是让它能够稳定地区分哪些状态更接近成功,哪些状态正在恶化。
论文中的价值模型使用一个比策略模型更小的VLM主干,参数量约为670M。此外,为了减少只在机器人数据上训练导致的过拟合,还混入了少量多模态网页数据。
3、从价值变化计算动作优势
价值只能判断当前状态好不好,优势则判断某个动作是否比参考行为更好。RECAP使用N步估计。为了避免公式过于抽象,可以直接理解为,
动作优势 = 接下来N步实际获得的奖励 + N步之后状态的价值 - 当前状态的价值举一个叠衣服的例子。机器人执行动作前,衣服已经基本铺平,
当前价值V_t = -0.4执行一段动作后,机器人成功折好了一只袖子:
未来价值V_{t+N} = -0.2价值变得更接近0,说明任务取得了进展,这段动作通常会得到较高优势。
另一种情况是,机器人把已经折好的衣服重新碰乱,
当前价值V_t = -0.2 未来价值V_{t+N} = -0.6价值明显下降,这段动作的优势就会较低。
4、优势标签不等于成功标签
RECAP会为每个任务设置一个优势阈值,
A_t > 任务阈值时,Advantage: positive A_t <= 任务阈值时,Advantage: negativenegative不一定表示动作彻底错误,它只表示这个动作没有达到当前任务设定的改进标准。同样,最终成功轨迹中的某些动作也可能被标记为低优势,因为这些动作可能没有推动任务进展,或者执行效率较低。
论文在预训练阶段按任务设置阈值,使用该任务价值预测结果的30%分位点作为参考。这样可以减少不同任务时长、难度和价值范围造成的影响。
四、pi*0.6接入Advantage Conditioning
pi*0.6并没有单独增加一个复杂的强化学习控制器,而是把优势标记转换成文本,直接加入VLA的输入序列。
当动作被判断为高优势动作时,输入中加入Advantage: positive,否则加入Advantage: negative
该文本位于模型预测出的子任务信息之后、动作之前。模型原来的输入可以简化为,
图像 + 任务指令 + 子任务 → 动作加入优势条件后变成,
图像 + 任务指令 + 子任务 + 优势标记 → 动作这样,模型会学习两类动作分布,1、普通情况下,数据中的动作是什么;2、要求生成高优势动作时,动作应该是什么。
适合VLA的原因
pi*0.6的连续动作由Flow Matching Action Expert生成。对于这类模型,直接使用PPO等策略梯度方法并不方便,因为动作模型通常没有容易计算的对数概率。RECAP绕开了这个问题,它先在模型外部训练价值函数并生成优势标签,再把策略优化转换为带条件的监督训练。连续动作部分仍然使用原来的Flow Matching Loss,不需要把整个VLA改造成传统的Actor-Critic结构。
示范和人工纠正处理方法
目标任务最开始进行示范微调时,优势条件固定为正。人工在机器人自主运行过程中提供的纠正动作,也会被强制标记为正。给出原因很直接,人工通常只会在机器人即将犯错时接管,此时纠正动作大概率优于机器人原本准备执行的动作。
推理时价值模型的使用情况
推理时不需要使用价值模型。价值模型主要在训练阶段负责生成优势标签。策略完成训练后,可以直接给pi*0.6输入正优势条件,生成动作。因此,最终部署时不需要每一帧都额外运行价值模型。
与 CFG 的关系
训练过程中,RECAP会随机去掉部分优势条件,让同一个模型同时学会:
不带优势条件的动作预测以及:
带正优势条件的动作预测推理时可以直接使用正优势条件。论文把这种情况对应为引导强度等于 1。
也可以进一步使用类似 Classifier-Free Guidance 的方式加强引导:
最终输出 = 无条件输出 + 引导强度 ×(正优势输出 - 无条件输出)但引导强度不是越大越好。
引导过强可能把动作推到训练分布边缘,使机械臂动作变得过快或过于激进。论文默认主要使用直接的正优势条件,而不是依赖很大的 CFG 系数。
五、RECAP的优势
RECAP最重要的作用不是简单提高成功率,而是让VLA能够使用部署后产生的数据。普通SFT通常面临两个选择,1、保留失败数据,可能学到错误动作;2、删除失败数据,又会丢失大量有效步骤。
RECAP提供了第三种选择,即保留全部数据,但告诉模型哪些动作更值得加强。
因此,一条失败轨迹不再被整体丢弃。轨迹前半段的正确动作仍然可以作为训练数据,导致任务恶化的动作则不会被当作高优势行为。同样,一条成功轨迹也不会被默认视为每一步都最优。动作是否值得加强,由价值变化和优势阈值共同决定。
论文实验覆盖了叠衣服、制作意式咖啡和纸箱组装等长时程任务。在部分难度较高的任务上,RECAP使单位时间内成功完成的任务数量提升到原来的两倍以上,同时把失败率大约降低了一半。
但是,RECAP并不是完全自动解决机器人强化学习问题,它仍然依赖以下前提,
- 任务需要能够判断最终成功或失败;
- 价值模型需要正确理解图像中的任务进度;
- 优势阈值需要与具体任务匹配;
- 部分任务仍需要人工提供纠正数据;
- 错误的价值估计会进一步产生错误的优势标签。
因此,实际训练中最关键的不只是策略模型,还包括价值模型和优势数据的质量。
