一句话定位

在 1200 万条第一人称人类操作视频上做生成式预训练(预测未来帧 + 人手关键点轨迹),再迁移到真实机械臂控制;用 ActionVAE 把动作 chunk 压缩成连续隐向量,作为 Chameleon 自回归 Transformer 的额外预测目标,在同一 LeRobot SO100 数据上微调后成功率显著超过 Pi0 与 GR00T N1.5。

背景与定位

VLA 模型的规模化受限于机器人遥操作数据的稀缺——不像 LLM/VLM/生成模型能吃到海量网络数据。论文把已有解法归纳为两条路线:一是扩大机器人数据集本身(open-x-embodiment、BridgeData、DROID 等),二是借用预训练生成模型或 VLM 的先验来缓解数据稀缺,例如把动作离散化接入 LLM 骨干的 rt-2、扩展预训练规模的 openvla,以及把 VLM 与连续动作头解耦的双系统范式(如 pi0groot-n1-5)。

论文进一步把”未来预测用于机器人学习”的研究细分成三种范式:(1) 显式生成未来目标帧再条件化策略(SuSIE、UniPi、GEVRM、dreamgen-groot-dreams);(2) 未来预测与动作生成融合进单一架构、互相促进(PAD、WorldVLA);(3) 把未来视频预测仅当作预训练目标用于表征学习,而不在推理时使用(bytedance-gr-2、VPP)。RynnVLA-001 属于第三种范式,但在其上叠加了一条渐进式课程:先在海量第一人称视频上学视觉动力学,再引入人体关键点轨迹预测作为视觉-动作的桥接阶段,最后才微调到具体机器人本体——这是本文相对于 GR-2/VPP 的主要方法论增量。

模型架构

Backbone:自回归(AR)Transformer,扩展自 AR 图像生成模型 Chameleon-7B(Meta,7B 参数),沿用其 VQGAN 离散视觉 tokenizer(原生分辨率 512×512)与文本 tokenizer;代码基于 Lumina-mGPT 与 facebookresearch/chameleon 重构。选择 AR 而非扩散/流匹配的原因是”缺少可用的 AR 视频生成框架”,因此把 Chameleon 从图像扩展到 I2V。

训练三阶段(同一套骨干逐阶段续训):

  1. Ego-Centric Video Generative Pretraining:输入初始帧 + 语言指令,预测未来视频帧(I2V)。序列格式为交替排列 [语言token, 视觉token_t, 语言token, 视觉token_{t+1}, ...](语言指令在每一步都重复给出,而非只给一次,目的是对齐 VLA 推理时”每步动作都同时条件化视觉+语言”的形式)。仅用交叉熵监督离散视觉/语言 token。
  2. Human-Centric Trajectory-Aware Video Modeling:在阶段 1 权重上继续训练,序列变为 [语言, 视觉token_t, 状态嵌入_t, <ACTION_PLACEHOLDER>, ...]。状态嵌入是人体手腕关键点位置(线性层投影后插入序列);新增的动作头是单层线性层,把 <ACTION_PLACEHOLDER> 位置的最后隐状态映射到连续动作嵌入空间,用 L1 loss 监督(仅在 placeholder 位置计算),视觉 token 预测目标不变。
  3. Robot-Centric Vision-Language-Action Modeling:丢弃阶段 2 的动作头,重新初始化一个新的单层线性动作头;视觉输入从单目变成双目(前视角 + 手腕视角);状态嵌入换成机器人关节状态;同时优化两个目标——机器人动作嵌入的 L1 loss(对应 ActionVAE 解码出的动作 chunk)+ 未来帧预测的交叉熵 loss(作为正则化辅助任务)。

ActionVAE:编码器-解码器结构,把一个动作 chunk 压缩成紧凑连续隐向量;人类轨迹和机器人动作运动学空间不同,故训练两个领域专属 ActionVAE(阶段2用人类轨迹 VAE,阶段3用机器人动作 VAE);训练好后可直接对同一本体的未见任务提取动作嵌入而无需重训(论文脚注举例:ActionVAE 从未在”Tower of Hanoi with two disks”等任务上训练过,但提取的嵌入仍可用于下游 VLA 训练)。仓库释出的 ActionVAE 配置(LeRobot 版):backbone=ResNet18,hidden_dim=512,dim_feedforward=3200,encoder 4 层/decoder 7 层,8 head,动作 chunk 长度(num_queries)20,state_dim=6,KL 权重 1e-4,sine 位置编码,单相机(top)。

推理:仅预测动作嵌入、丢弃未来视觉帧生成(帧预测在训练中是有效的正则化辅助任务,但推理时计算昂贵且非必需),预测出的嵌入经 ActionVAE 解码器还原成一段可执行动作 chunk,机器人执行完整 chunk 后采集新观测,闭环重复。

分辨率消融(Calvin 上):384×384 显著优于 256×256——因为 VQGAN 只在 512×512 上预训练,384×384 是重建保真度与算力开销之间的折中;256×256 下 VQGAN 重建质量下降导致视觉 token 失真。

数据

  • 阶段1 预训练视频:从网络来源筛选出 11.93M(约1200万)条第一人称(ego-centric)人类操作视频(来源包括 Ego4D、HowTo100M、EPIC-KITCHENS、Something-Something 等),额外从开源机器人数据集(RT-1、BridgeData、Open X-Embodiment、DROID)过滤出 244K 条机器人操作视频一并用于预训练。该阶段刻意不使用任何动作标签(关节状态/末端位姿),强迫模型仅从像素学习隐式物理动力学。
  • 数据清洗管线(第4节):① 用姿态估计模型逐帧提取人体关键点(面部、躯干、手部);② Ego-centric 过滤——出现面部关键点的视频(第三人称视角特征)直接丢弃,只保留手腕/手部关键点可见的帧;③ 用 Qwen2-VL-7B 为每条视频生成简短文本描述(刻意仿照机器人指令风格,如”put the bottle in the box”),构成文本-视频监督对。
  • 阶段2 轨迹数据:采用 egodex 数据集(Apple Vision Pro 采集的全部上肢关节轨迹),仅取手腕关键点作为末端执行器的近似。
  • 阶段3 机器人数据(自采):LeRobot SO100 机械臂遥操作采集,3 类任务——① 捡放绿色方块 248 条演示;② 捡放草莓 249 条;③ 抓笔插入笔筒 301 条。用 3 台不同 SO100 机械臂、不同光照/环境采集;场景从”仅目标物体”到”含干扰物”复杂度递增。
  • 消融用基准:Calvin(ABC→D 任务设置)用于模型设计消融(分辨率、动作表示、动作头深度)。

训练方法

三阶段 curriculum:I2V 生成预训练(交叉熵)→ 人体轨迹感知联合建模(视觉交叉熵 + 轨迹嵌入 L1)→ 机器人 VLA 微调(视觉交叉熵 + 机器人动作嵌入 L1,双目标联合优化)。动作以 ActionVAE 隐向量形式作为回归目标,而非直接预测原始动作序列或离散 token。

仓库释出的两份训练配置(均为 GitHub 公开发布的示例/复现配置,供用户在自己 LeRobot 数据上微调,并非论文主结果训练所用的确切超参——论文正文未披露预训练/主结果训练的具体 epoch 数、学习率、GPU 数):

  • ActionVAE 训练(README 明确写出):在自采数据上训练 300,000 迭代,batch size = 16 × 8(GPU 数);配置文件另给出 lr=1e-5(backbone 同)、weight decay=1e-4、KL 权重 1e-4、bf16 混合精度、梯度检查点开启。
  • Stage 3(机器人 VLA)微调示例配置:batch_size=4,lr=2e-5(几乎无衰减,warmup_epochs=0.01),weight decay=0.1,梯度裁剪 4,bf16 精度(梯度 fp32),FSDP 数据并行,model_parallel_size=1,max_seq_len=16384,7B 模型规模,动作 chunk 长度 20、动作维度 6,图像分辨率 384×384,仅条件化 1 帧观测(condition_frame_num=1)。

消融结论(Calvin,简化 epoch 数、仅作相对比较,详细数字见下方”评测 benchmark”表格):

  • 预测 ActionVAE 隐向量(完整模型)优于直接预测原始动作序列(Avg. Len 4.161 vs 4.019)。
  • 动作头从单层线性换成 5 层 MLP 反而降低性能(Avg. Len 3.323,低于两个单层线性头变体),论文将其归因于”Transformer 最后隐状态已足够线性可分,加深头部反而引入噪声/过拟合”;注意原文行文中把该降幅描述为”from 4.019 to 3.323”,但按表格该消融的直接对照组应为完整模型的 4.161,此处为原文表述本身的口径,如实转述、不代为修正。

Infra(训练 / 推理工程)

  • 训练硬件:论文正文未披露主训练(阶段1/2/3 完整规模)所用 GPU 型号、总 GPU 数与总训练时长。唯一披露的具体资源数字来自 GitHub README 的 ActionVAE 训练脚本说明——batch size 16 × 8 GPUs、300,000 迭代(GPU 型号未披露)。
  • 并行与精度:Stage 3 微调示例配置采用 FSDP 数据并行(model_parallel_size=1)、bf16 训练精度(梯度 fp32)、梯度检查点。
  • 推理速度:论文未给出具体 FPS / 控制频率 / 端到端延迟数字;只定性说明”推理时丢弃未来视觉 token 生成、仅预测动作嵌入”以降低计算开销、提升实时性。未披露具体硬件与延迟测量。

评测 benchmark

真实机械臂(LeRobot SO100,3 任务 × 3 场景设置,每模型 60 次试验,2 台机械臂各 30 次)

方法捡放绿色方块捡放草莓抓笔插筒平均SR@1
GR00T N1.565.053.348.355.637.2
Pi075.671.164.470.456.3
RynnVLA-00190.091.790.090.656.7

按场景设置拆分(单目标 / 多目标 / 含干扰物指令跟随):

方法单目标多目标含干扰物
GR00T N1.563.346.756.7
Pi080.071.160.0
RynnVLA-00193.386.791.7

预训练消融(不同初始化权重,SO100 上,SR@1 一栏 Scratch 仅评测 5 次/任务/场景,其余模型 60 次):

初始化平均成功率SR@1
Scratch(随机初始化)4.40
Chameleon-T2I 权重直接初始化50.022.8
RynnVLA-001-Video(仅阶段1预训练)84.449.4
RynnVLA-001(阶段1+2完整预训练)90.656.7

Calvin ABC→D 消融(简化 epoch,相对比较,Avg. Len 为连续完成子任务数):

变体子任务12345Avg. Len
256×256 分辨率92.783.773.562.153.23.652
直接预测原始动作(不用VAE)93.886.580.474.267.04.019
更深动作头(5层MLP)90.277.965.354.644.33.323
完整模型(384×384 + ActionVAE + 单层线性头)95.488.282.278.272.14.161

其他定性/半定量分析:① 训练数据不含干扰物时,“pick up the strawberry”在有干扰物场景下成功率 0%(0/10,其中5次误抓干扰物),而完整模型(训练数据含干扰物)达 90%(9/10),验证了干扰物数据对指令跟随鲁棒性的关键作用;② 遮挡前视摄像头:目标在腕部摄像头初始视野内时仍可成功,视野外时成功率从 80%(4/5)跌至 0%,右侧目标从 100%(5/5)微降到 80%(4/5),说明前视摄像头主要承担粗定位;③ 抬高前视摄像头改变投影几何后,插笔任务由成功变为失败,说明模型依赖前视摄像头提供的 3D 投影信息做精细空间推理。

创新点与影响

  • 把”视频生成式预训练”与”机器人动作预测”统一进同一个 AR Transformer(Chameleon 骨干),并用一个中间阶段(人体关键点轨迹联合预测)显式桥接”纯视觉预测”与”动作预测”之间的鸿沟,区别于 GR-2/VPP 只做纯视觉预训练、或 PAD/WorldVLA 单阶段联合训练的路线。
  • 提出 ActionVAE:用领域专属(人类 / 机器人分开训练)的 VAE 把动作 chunk 压缩为连续隐向量作为预测目标,消融显示优于直接回归原始动作序列,且预训练好的 VAE 可直接迁移到未见任务提取动作嵌入而无需重训。
  • 反直觉的消融结论:动作头用单层线性层优于 5 层 MLP(更深的头反而带来噪声/过拟合),支持”解码阶段应保持简单,复杂度应留给上游 Transformer 表征”的设计取向。
  • 论文自陈的局限:仅在单一机器人本体(LeRobot SO100 机械臂)和与训练场景高度相似的评测环境中验证;前视摄像头固定安装位置未变化。后续工作计划:扩展到更多样的机械臂本体、更多样/非结构化环境、多样化摄像头视角。

原始链接

一手源存档(sources/)