VLAC:统一 Actor-Critic 的视觉-语言-动作模型——真实世界机器人 RL 自改进框架
论文:A Vision-Language-Action-Critic Model for Robotic Real-World Reinforcement Learning
机构:上海人工智能实验室(Shanghai AI Lab)
发布时间:2025年9月
🔗 arXiv
一句话总结
VLAC 基于 InternVL 构建统一的 Vision-Language-Action-Critic 模型,用 pairwise progress delta 提供稠密过程奖励,消除逐任务奖励工程,同时兼任策略(actor);配合异步真实世界 RL 框架和分级人机协作协议,在四个真实操作任务上 200 个 episode 内将成功率从 ~30% 提升至 ~90%,人机协作后最高达 100%。
一、论文要解决什么问题?
1.1 VLA 模仿学习的天花板
当前 VLA 模型主要靠模仿学习训练,依赖大量人类专家演示数据。问题在于:
- 数据收集成本极高且主要聚焦实验室定制场景
- 数据质量参差不齐,难以覆盖真实世界的多样性
- 训练出的模型面对分布外场景和任务时泛化能力有限
因此,让机器人在真实世界中通过 RL 自主交互、自我改进成为自然的解决路线。
1.2 真实世界 RL 的奖励工程瓶颈
真实世界 RL 面临的核心瓶颈不是算法本身,而是奖励信号:
- 稀疏奖励:大多数方法只在任务完成/失败时给出二值信号,中间过程完全无反馈,导致信用分配困难
- 任务特定奖励工程:每个新任务都需要手工设计 reward shaping 或训练 done 分类器,工程开销巨大
- 已有通用奖励方案的局限:
- 直接查询 VLM(如 Gemini)做打分:空间精度差、时序不稳定、对失败轨迹判别力弱
- CLIP 语义嵌入距离:对几何变化不敏感
- 时间对比学习(如 VIP、LIV):信号更平滑但跨任务泛化差
- 目标图像合成/编辑:依赖额外生成模型,误差累积
本文的目标:构建一个通用的过程奖励模型,能够零样本或一样本迁移到未见过的任务和环境,提供稠密、有方向的进度信号。
1.3 Actor-Critic 分离的低效
传统做法中,策略(actor)和奖励/价值(critic)是分离的模块。VLAC 的核心 insight 是:对任务进度的理解能力和动作生成能力本质上共享同一套视觉-语言表征。理解"当前做到了哪一步"的能力反过来能增强"下一步该做什么"的决策。因此,VLAC 用一个统一的多模态自回归模型,通过不同的 prompt 在 critic 模式和 actor 模式之间切换。
二、预备知识
2.1 Pairwise Progress Delta
与传统的绝对价值函数不同,VLAC 输出的是相对进度增量:给定两帧图像
:第二帧比第一帧更接近任务完成(正向进展) :第二帧反而倒退了(负向进展,即"坏动作") :两帧处于相同进度(无变化或无关任务)
这个 delta 值天然可以作为 TD 风格的奖励信号 用于 RL。
2.2 为什么用 Pairwise 而非绝对值?
关键优势:与轨迹起点无关。不管数据从哪个中间状态开始采集,pairwise delta 只衡量局部窗口内两帧之间的相对变化。这使得模型可以:
- 兼容不同采集策略和起点
- 同时利用有动作标注的机器人数据和无动作标注的人类视频数据
- 天然构造正负样本(交换帧顺序即可得到反向样本)
2.3 PPO 基础
VLAC 的 RL 部分使用标准 PPO。核心目标函数:
其中
三、核心方法
3.1 VLAC Critic 学习
3.1.1 进度标注方式
核心假设:在成功的演示轨迹中,任务进度与时间正相关。一条长度为
用大白话说:如果一条轨迹还剩
3.1.2 四种数据增强策略
策略 1:像素差异过滤
当两帧几乎没有视觉变化时(如机器人静止不动),强行标注正进度会引入噪声。因此设定阈值
策略 2:联合采样(Joint Sampling)
对每个采样对
确保正/负、局部/全局样本的平衡。
策略 3:任务完成判断联合采样
每次采样一对数据:一个来自完成状态(
策略 4:跨任务描述交叉采样
以 5% 概率将当前轨迹的任务描述替换为不相关的任务描述,并强制标注
3.1.3 任务描述估计
除了进度预测,还构建了一个辅助任务——从起始帧和终止帧推断任务描述:
其中
3.1.4 In-Context Learning 增强泛化
为提升跨场景、跨任务的迁移能力,VLAC 支持 one-shot in-context 进度理解:
其中
3.2 VLAC Actor 学习
动作表示为 delta End-Effector (EEF) 位姿——一个 7 维向量
关键设计:动作以语义空间中的数字字符串生成,例如:
"x: -47mm, y: 19mm, z: 66mm, roll: 14 degrees, pitch: 10 degrees, yaw: 15 degrees, open: 0"利用结构化模板,非数值部分(如 "x:"、"degrees")直接从模板读取,模型只需要从词表中选择数值对应的 token。这样做的好处:
- 大幅减少自回归生成所需的 token 数量
- 充分利用预训练多模态模型的语义生成能力
- 生成的动作可以在合理范围内多样采样,有利于探索
3.3 视觉-语言感知学习
为增强多模态理解能力,训练数据中混合了四类 VQA 数据集:
- 通用对话:LLaVA(保持基本对话能力)
- 机器人理解:RoboVQA(机器人场景多模态理解)
- 空间推理:SpatialVQA(深度、检测、空间关系)
- 图像差异:Spot-the-diff、InstructPix2Pix(细粒度图像对比)
3.4 数据规模
| 数据源 | 规模 | 用途 | 混合权重 |
|---|---|---|---|
| Ego4D HOD | 157M 样本 / 3000h | 任务进度理解 | 14.6% |
| Droid | 40M / 741h | 进度理解 + 动作 | 30.0% |
| RoboSet | 4M / 130h | 进度理解 + 动作 | 17.4% |
| FMB | 2M / 144h | 进度理解 + 动作 | 9.7% |
| Bridge | 2M / 135h | 进度理解 + 动作 | 9.1% |
| SpatialQA | 781k | 通用视觉语言 | 5.8% |
| LLaVA | 633k | 通用视觉语言 | 4.7% |
| 自采集数据 | 946k / 18h | 进度理解 + 动作 | 4.4% |
| AGIBOT | 8M / 73h | 进度 + 语言 + 动作 | 3.0% |
总计约 4000 小时操作数据 + 多种 VQA 数据,采样 4000 万数据点训练。
3.5 统一架构:Prompt 控制模式切换
一个 VLAC 模型通过不同 prompt 切换两种模式:
Critic 模式(进度评估):
- 奖励 prompt:
"Image-1: <image> Image-2: <image> Compare two images and evaluate whether the second image is closer to achieving task objectives... The target task is: <task> <score>" - Done 判断 prompt:
"<image> The 1 means yes, the 0 means no. Check if the robot has completed its task: <task>"
- 奖励 prompt:
Actor 模式(动作生成):接收观测图像、机器人状态、任务指令和历史动作,输出结构化动作字符串
实验中使用 2B VLAC 作为 actor,8B VLAC 作为 critic。
3.6 PPO 训练与 Value Head
在 VLAC 的自回归架构上集成 PPO 的方式:
- 模型先生成 reward tokens(critic 输出),再生成 action tokens
- action token 的 logits 记录下来,用于计算似然比
- 在最后一个 token 生成后的 hidden state 上接一个线性 value head,输出
用于 GAE 计算 - Value head 在少量演示和早期探索轨迹上轻量预训练,减少初始优势方差
一个重要的工程发现:vLLM 和 PyTorch 原生推理的结果存在显著差异。在相同参数和样本下,两者计算的 importance ratio 在 0.4 到 1.8 之间波动,导致约 60% 的数据触发 PPO 的裁剪机制而被浪费。因此使用 vLLM 推理时,训练阶段必须用 PyTorch 重新计算 action 概率。
3.7 真实世界 RL 基础设施
异步执行架构
- 机器人异步执行:上传观测和执行动作独立进行,不需要等待动作完成才上传新观测
- 动态推理服务器分配:确保所有机器人观测在 0.1 秒内分配到空闲 VLA 副本进行推理
- 动作时间戳滞后调整:训练时将 action timestamp 延后一段由 VLA 推理时间决定的 duration,使下一个动作恰好在上一个执行完毕时到达
框架基于 Ray 构建,组件包括:推理 worker、训练 trainer、数据服务器、日志服务器、rollout worker(机器人通信)。通信使用 ZeroMQ。
3.8 分级人机协作(Human-in-the-Loop)
VLAC 设计了三个层次的人机协作策略,逐步递增干预强度:
Level 1:Offline Demonstration Replay
预先收集人类操作数据填充 replay buffer,训练时周期性采样,用 NLL 损失更新模型:
关键是遥操作员先观察策略执行一段时间,然后针对性地补充策略成功率低的场景的演示数据。
Level 2:Return and Explore
遥操作员观察策略频繁失败的状态(如碗的特定初始位置),手动将机器人和物体重置到这些困难状态开始探索。本质上是针对性重置到高失败率区域。
Level 3:Human Guided Explore
当策略即使从正确的起点也无法探索出正确行为轨迹时,遥操作员直接提供示范数据并加入 replay buffer。这是最强的干预手段,直接提供"怎么做"的信号。
四、实验结果
4.1 Critic 性能:跨实体、跨场景、跨任务泛化
使用 VOC-F1(Value-Order Correlation 的正反序 F1)评估进度理解能力。在 8 个数据集上的表现:
| 数据集 | 类型 | GVL (Gemini-1.5-Pro) | VLAC-8B (zero-shot) | VLAC-8B (one-shot) |
|---|---|---|---|---|
| Bridge | 训练集内 | 0.51 | 0.97/0.99 | 1.00/1.00 |
| Droid | 训练集内 | -0.01 | 0.92/0.94 | 0.93/0.95 |
| RT1 | OOD | 0.74 | 0.71/0.72 | 0.91/0.95 |
| RoboNet | OOD(无语言) | -0.85 | NAN | 0.59/0.76 |
| Dobb-E | OOD(夹爪视角) | 0.53 | 0.47/0.55 | 0.74/0.78 |
| RH20T | OOD | - | 0.17/0.34 | 0.64/0.77 |
| EgoDex | OOD(人手) | - | 0.05/0.48 | 0.44/0.78 |
| RoboFAC-success | OOD | - | 0.76/0.59 | 0.83/0.95 |
| RoboFAC-fail | OOD | - | 0.30/-0.06 | 0.41/0.47 |
(表中数值为 VOC/VROC)
关键发现:
- In-context learning 效果显著:RT1 上 zero-shot VOC 0.71 → one-shot 0.91
- 正确依赖语言指令:RoboNet 无语言标注,zero-shot 时 VOC-F1=0,说明模型不会瞎打分
- 区分成功/失败轨迹:RoboFAC 成功视频 VOC-F1=0.89 vs 失败 0.44,差距明显
- 人类视频数据有益:加入 Ego4D 训练后,成功/失败轨迹的区分度进一步拉大
4.2 Actor 性能
在 5 个真实任务上评估,每个任务收集 100 个样本训练 8B VLAC:
| 方法 | 开盖 | 放碗 | 铺垫 | 扫桌 | 盛饭 | 平均成功率 |
|---|---|---|---|---|---|---|
| Pi0 | 85% | 40% | 0% | 10% | 30% | 27% |
| VLAC w/o pretrain | 50% | 0% | 0% | 0% | 30% | 16% |
| VLAC | 90% | 85% | 85% | 40% | 75% | 75% |
| VLAC + 光照迁移 | 85% | 65% | 60% | 25% | 50% | 57% |
| VLAC + 场景迁移 | 90% | 65% | 70% | 40% | 50% | 63% |
关键发现:
- 进度预训练至关重要:去掉进度理解预训练后成功率从 75% 降至 16%。模型不是不会动,而是无法判断当前任务状态——例如没抓到碗就开始放置
- 泛化能力强:在极端光照变化和场景迁移下仍能合理生成动作
- Pi0 在光照迁移下几乎完全失败(3%),VLAC 仍保持 57%
4.3 真实世界 RL 自改进
四个任务上的最终成功率(200 episode 训练后):
| 任务 | Baseline | Return & Explore | Human Guided | Offline Demo Replay |
|---|---|---|---|---|
| 扫桌清理 | 90% | 100% | 100% | 100% |
| 放碗 | 80% | 90% | 100% | 100% |
| 铺垫 | 80% | 90% | 90% | 100% |
| 盛饭转移 | 100% | 80% | 100% | 70% |
| 平均 | 88% | 95% | 98% | 93% |
- Baseline(纯 PPO + VLAC critic)已经很强,200 episode 内从 ~30% 升至 88%
- Human Guided Explore 和 Offline Demo Replay 均能在部分任务达到 100%
- Return and Explore 效果相对有限,因为选择好的重置点本身很困难
4.4 多机器人扩展规律
在 Pick-and-Place Bowl 任务上测试 1/2/4/8 机器人并行训练:
| 机器人数 | 达到 80% 成功率所需 episode/robot | 总时间 |
|---|---|---|
| 8 | 64 | ~24.6 分钟 |
| 4 | 147 | — |
| 2 | 325 | ~2 小时 |
| 1 | 137 | — |
- 从 2→4→8,每增加一倍机器人约减半每 robot 所需 episode,呈现 scaling law
- 单 robot 异常低是因为单一静态背景更容易拟合
- 多 robot 训练需要动态采样策略:增加学得慢的 robot 的采样频率
五、局限性与未来方向
- 人机协作的启发式依赖:干预时机、重置状态选择、演示策划仍依赖操作员经验,缺乏量化触发器(如能力饱和检测器、失败模式覆盖指标)
- RL 方案与离散动作头的耦合:当前 PPO + 自回归 tokenized delta-EEF 不能直接推广到 diffusion/flow-matching 等连续迭代解码器
- 多任务在线 RL 不稳定:同时训练多个任务时存在奖励尺度漂移、负信号密度不均、梯度干扰和遗忘,尚未集成任务自适应归一化或梯度冲突缓解机制
六、个人思考
6.1 与项目中其他论文的联系
- vs RISE/WMPO/WoVR(世界模型 RL):这些方法在想象空间做 RL 来避免真实交互成本,而 VLAC 直接在真实世界做 RL。VLAC 的关键贡献是用 VLM 提供通用稠密奖励解决了真实世界 RL 的奖励信号问题,两条路线互补
- vs VLA-RL/RLVLA(在线 PPO 微调 VLA):VLA-RL 提出 Robotic PRM 解决稀疏奖励,RLVLA 系统性比较了 PPO/DPO/GRPO。VLAC 的独特之处在于 critic 和 actor 共享一个模型,且 critic 的训练数据远超任务特定数据(4000h 多源数据),泛化能力更强
- vs TGRPO(LLM 生成稠密奖励):TGRPO 用 LLM 自动设计奖励函数,VLAC 用 VLM 直接视觉对比打分。VLAC 的方式更"端到端",不需要语言层面的奖励函数设计
- vs RLinf-USER(真实世界 RL 基础设施):两者都关注真实世界 RL 的工程基础设施,但设计哲学不同——RLinf-USER 强调统一硬件抽象和云-边协同,VLAC 的 Ray+ZeroMQ 方案更轻量
- vs π₀.₆*(优势条件化离线 RL):π₀.₆* 用 RECAP 将 rollout + 专家数据统一为离线 RL,VLAC 用在线 PPO + 人机协作。两者都认识到"探索"是关键瓶颈,但解法不同
- vs SC-VLA(内生奖励):SC-VLA 用稀疏世界想象产生内生密集奖励,VLAC 用 pairwise progress prediction 产生外部密集奖励。SC-VLA 的奖励与策略深度耦合,VLAC 的奖励模型可独立迁移
6.2 关键 insight
"理解进度"比"执行动作"更容易泛化——这是 VLAC 最核心的 insight。人类面对新任务时,执行能力可能很差,但判断"这一步做得好不好"的能力是通用的。VLAC 把这个认知科学观察工程化了:用 4000 小时的多源数据训练通用进度理解能力,然后用它来指导在线 RL。实验证据(VLAC w/o pretrain 16% vs VLAC 75%)有力地支持了这一点。
6.3 vLLM vs PyTorch 推理差异
这是一个非常有实用价值的工程发现。importance ratio 在 0.4–1.8 之间波动,60% 数据被浪费——这意味着在生产级 VLA RL 系统中,推理引擎的数值一致性是不可忽视的问题。
参考
- VIP / LIV:基于时间对比/语义嵌入的通用视觉奖励函数,VLAC 的 critic 学习方案可视为其进化版
- GVL(Ma et al., 2024):VLM 作为 in-context value learner,VLAC 的 VOC 评测指标和 in-context 思路受其启发
- VLA-RL(2025):在线 PPO 微调自回归 VLA + Robotic PRM,与 VLAC 的在线 RL 路线最为接近
- π₀ / π₀.₅:VLAC actor 部分的动作表征设计(delta EEF)与 π₀ 的 flow matching 不同,采用纯自回归语义生成
- SERL(Luo et al., 2024):真实世界 RL 的 sample-efficient 软件套件,VLAC 的 RL 基础设施设计可参考