一句话定位

DexVLA 给 VLA 挂一个独立可插拔、规模达到 10 亿参数的扩散动作专家(ScaleDP),配上三阶段”具身课程学习”(先纯扩散专家的跨具身预训练、再单具身对齐、最后任务级精调)和逐子步骤(sub-step)推理标注,让一个只有 2B 参数的 VLM 骨干,在仅 100 小时预训练数据下就能完成折衣服这类耗时 2 分钟以上的长时程灵巧任务,且不依赖 π0 那种外部高层策略(SayCan)做任务分解。论文已被 CoRL 2025 接收。

背景与定位

范式:这是对”扩大 VLM 骨干”这条主流 VLA 路线的反向操作——把参数预算从 VLM 移到动作专家上。论文开篇指出两个瓶颈:(1) 数据稀缺,OpenVLA/octo 依赖 open-x-embodiment 的 4000 小时数据,pi0 用了万小时级私有数据;(2) “架构失衡”,OpenVLA 用 7B VLM、π0 用 3B VLM,但动作表示本身仍是薄弱环节(OpenVLA 微调阶段的动作头/离散化本身没有被重点扩大)。DexVLA 反其道而行:VLM 骨干缩到 Qwen2-VL-2B,动作专家扩到 1B 参数的扩散 Transformer。

该工作直接建立在同一团队(Midea Group + 华东师范大学)此前的 diffusion-vla(UNet 扩散头、无三阶段课程)与 ScaleDP(把 diffusion-policy 缩放到 10 亿参数 Transformer 变体的独立工作,arXiv:2409.14411)之上,三者共享作者与架构谱系。对比基线为 openvla(7B,open-x-embodiment 预训练)、octo(93M,扩散策略头)、diffusion-policy;论文明确指出 pi0rt-2 因闭源实现与私有训练数据,无法直接实验对比。此前同团队的 tinyvla 走的是”小 VLM+小扩散头”的极简路线,DexVLA 则是”中等 VLM+超大扩散头”的另一端探索,两者共享”扩散头替代自回归离散动作 token”的判断,但参数预算分配思路相反。

模型架构

整体结构:Transformer 语言模型骨干(VLM)+ 独立扩散动作专家,两者用投影层连接,属于 late-fusion VLM 常规做法的机器人化扩展。

  • VLM 骨干Qwen2-VL-2B,官方权重直接复用,VLM 本身不做任何额外预训练。
  • 图像编码器把机器人多路相机观测(最多 3 路视角)投影到与语言 token 相同的嵌入空间,多路视觉 token 直接拼接。
  • VLM 输出两类 token:推理 token(reasoning tokens,自回归生成的子步骤语言描述)与动作 token(action tokens)。
  • 动作 token 经过一个投影模块(两层 Linear + LayerNorm,类比 LLaVA 的 connector)对齐到扩散专家的输入空间;推理 token 则通过 FiLM 层注入扩散专家(对投影层做 scale/shift),使模型能”自己生成推理链、再用这条推理链去指导动作生成”。

扩散动作专家(ACTION 头)= ScaleDP,Diffusion Policy 的 Transformer 变体,扩散 + 连续动作(非离散 token / 非 flow-matching)

  • 采用 ScaleDP(同团队 arXiv:2409.14411 提出的 Diffusion Policy Transformer 变体),最大版本 1B 参数;论文附录给出具体配置:32 层,hidden size 1280,16 个注意力头
  • 原始 ScaleDP 不支持跨具身预训练,DexVLA 设计多头(multi-head)输出:每个机器人构型(embodiment)对应一个独立 MLP 头,与 octo 的做法类似。
  • 训练目标为扩散损失 L_diff(去噪匹配)+ 语言侧的下一 token 预测损失 L_ntp 的加权和:L = L_diff + α·L_ntp,α 凭经验设为 1(未加 Stage 1 预热时 L_ntp 量级比 L_diff 小一个数量级;加了 Stage 1 预热后二者量级接近,故取 α=1)。

Stage 1(纯扩散专家预训练)阶段的视觉/语言编码器——原文表述存在内部不一致:正文 III-B-1 节称”由于 VLM 内的视觉编码器通常用 Transformer 架构,为便于后续阶段对齐,我们采用 ViT 结构做视觉编码”;但附录 E(More Implementation Details)明确写”Stage 1 阶段我们只用随机初始化的 ResNet-50 处理图像、外挂现成的 DistilBERT 编码语言指令”。这两处表述互相矛盾(ViT vs. ResNet-50),本页如实标注,未替作者判断取舍。语言嵌入(无论来自何种编码器)都通过 FiLM 层注入扩散专家(沿用 RT-1 的 FiLM 初始化策略)。

数据

  • 预训练总量:约 100 小时演示数据,覆盖 91 个不同任务。数据量按小时(而非轨迹条数)统计,理由与 π0 一致——任务时长差异极大(如叠衣服远长于其他任务)。
  • 平台构成(图 4,仅披露两项占比):AgileX(ARX 机械臂)42.7%、单臂 Franka Emika 34.7%;文中另提到 “PIPER arm” 是与 ARX 臂同为 6 自由度但运动学结构不同的第二种臂型,具体占比原文未给出数字。
  • 4 种评测具身配置(10 个任务):
    • Franka + 二指夹爪:7 自由度 Franka Emika + Robotiq 平行夹爪,15 Hz 采集。
    • Franka + 灵巧手:Franka Emika 装配灵巧手(原文写作 “Inspired Dexterous Hand”,推测指 Inspire 品牌灵巧手,措辞按原文照录),12 维配置(SE(3) 末端位姿 6 维 + 6 维手指关节),15 Hz。
    • 双臂 UR5e:2 台 UR5e + Robotiq 夹爪 + 腕部相机,加一个居中俯视相机,共 3 路视角,14 维配置/动作空间,10 Hz。
    • 双臂 AgileX:2 条 6-DoF AgileX 臂,每臂腕部相机 + 底座相机,共 3 路视角,14 维配置/动作空间,10 Hz(移动 AgileX 平台还有一路前视相机,训练/推理均未使用)。
  • 相机硬件:两台 Franka 统一用 ZED 2 双目(左右各一)+ ZED Mini 腕部相机;UR5e 用 1 台顶置 RealSense L515 + 2 台腕部 RealSense 435i;AgileX 用 2 台腕部 RealSense 435i + 1 台顶置 RealSense 457。
  • 子步骤(sub-step)推理标注:长时程任务(如叠衣服、清桌)按约每 5 秒一个节点标注子步骤语言描述。标注流程分两类:
    • 物体级任务(拣选/分拣/清桌):用 Grounding-DINO + DINOv2 标注物体和夹爪的 bounding box,再算夹爪-物体 IoU 判定抓取是否成功;
    • 单物体长时程任务(如叠一件衣服):先人工列出该任务的完整子步骤候选列表,再用 Google Gemini 2.0 对视频做分段并从候选列表里挑选匹配的子步骤描述;
    • Stage 3 的训练数据做了人工复核(因为该阶段对标注质量要求更高),Stage 1/2 数据未人工复核。
  • 各阶段数据切分:Stage 1 用全部 100 小时跨具身数据(不含 VLM);Stage 2 过滤为仅含单一目标具身的数据;Stage 3 仅对明确需要精调的任务做选择性后训练(如 drink pouring 100 条演示、packing 100 条演示、sorting 200 条演示)。
  • 无仿真数据、无 sim-to-real,全部为真实机器人遥操作采集;未提及数据增强。

训练方法

三阶段”具身课程学习”(Embodied Curriculum Learning),类比人类”先学粗粒度动作、再适应自己身体、最后精修任务”:

  1. Stage 1:跨具身预训练(Cross-Embodiment Pre-training)——只训练扩散专家,完全不涉及 VLM,用全部 100 小时跨具身数据学习”具身无关”的低层运动技能;多头结构使每个具身用独立 MLP 头学习。
  2. Stage 2:具身特定对齐(Embodied-Specific Alignment)——把数据过滤为单一目标具身,联合训练 VLM、投影层与扩散专家,但冻结 VLM 视觉编码器;类比 LLaVA 的对齐阶段。这一阶段结束后模型已能完成折衣服、清桌等域内任务。
  3. Stage 3:任务特定适配(Task-Specific Adaptation)——类比 LLM 的后训练阶段,只对需要精细、依赖场景的复杂任务做少量演示的精调(如 100~200 条)。Stage 2/3 都用了子步骤标注数据,但不是把子步骤当输入指令,而是当作模型需要自己生成的中间语言输出——这是 DexVLA 能不依赖外部高层策略(π0 用 SayCan 每 2 秒更新一次指令)就完成长时程任务的关键设计。

关键超参(Table I)

超参Stage 1Stage 2Stage 3
学习率1e-42e-52e-5
LR schedulerConstantConstantCosine
Weight decay0.00.00.0
OptimizerAdamW(β₁=0.9, β₂=0.95),三阶段一致
训练 epoch555

Infra(训练 / 推理工程)

  • 训练成本对比实验(附录 B):在 8 张 Nvidia H100 GPU 上、相同 batch size 下对比”只训练扩散专家”与”训练整个 VLA”,前者 0.89 epoch/hour,后者 0.32 epoch/hour,即只训扩散专家比训完整 VLA 快 2.78 倍(原文表述为”训练成本”实验,未确认是否等同主训练流程使用的 GPU 数)。
  • 与正文表述的不一致:引言部分另称”扩散专家预训练比完整 VLA 预训练快 5 倍”,与附录 B 实测的 2.78 倍不一致——这是原文自身的数字矛盾,本页如实标注两处数字,未替作者取舍统一。
  • 推理:论文摘要/引言明确给出——DexVLA 在单张 Nvidia A6000 GPU 上运行,控制频率达 60 Hz。未披露端到端延迟(ms)或量化/压缩细节。
  • 显存/单卡调试参考(来自 GitHub README 而非论文正文):单张 A6000(46G)、batch size 2 时,全参训练 1.1s/iter、38G 显存;用 DeepSpeed ZeRO-2 CPU offload 可降到 20–29G(但耗时增至 6.56s/iter);LoRA 微调 VLM 骨干可降到 24G、1.09s/iter;换用 410M 更小的 ScaleDP(ScaleDP-L)可降到 33G、1.01s/iter。

评测 benchmark

论文用归一化分数(10 次试验取均值,标准延续 π0 的评分口径,评分细则见附录 D)评测,基线为 octo(93M,OXE 预训练开源权重)、openvla(7B,OXE 预训练开源权重)与 diffusion-policy(对新具身任务从零训练)。注意:三张主对比图(Figure 6/8/9)均为柱状图,原文未在正文给出基线的具体数值,只有 DexVLA 自身分数与定性描述(“baseline 几乎无法完成任何步骤”)被写成文字,故下表只能列出 DexVLA 自身可核实的数字。

无任务特定适配(仅 Stage 2)

  • 叠衬衫(双臂 AgileX,含中号黄衫/大号蓝衫两件):DexVLA 0.92 分(满分附近);基线(“包括 OpenVLA、Octo、Diffusion Policy”)据原文描述”struggled to complete any steps”(几乎无法完成任何步骤),具体分值未披露。
  • 拣选简单版(Franka+夹爪)、清桌简单版(双臂 AgileX):同样”DexVLA 显著优于所有基线”,具体基线分值未披露。

新具身少样本学习(均 100 条演示)

  • 灵巧手倒饮料(Franka+灵巧手)+ 双臂 UR5e 打包(packing):DexVLA 两任务平均 0.90 分;OpenVLA/Octo”表现挣扎”,Diffusion Policy(从零训练)被”显著超越”,具体基线分值未披露。

Stage 3 任务特定精调后的长时程任务

  • 烘干机取衣(dryer unloading,双臂 AgileX):DexVLA 0.8 分。
  • 叠皱皱巴巴的衣服(laundry folding,双臂 AgileX,论文承认是最难任务):DexVLA 0.4 分。
  • 分拣(sorting,不在预训练数据中,200 条演示)、拣选困难版、清桌困难版:文中仅描述”DexVLA 持续超过 OpenVLA 与 Octo 两个基线”,具体分值未披露。

视觉泛化(Table II,附录 A,每设置 3 次试验均值)

任务具身未见物体未见场景未见物体+场景
叠衬衫双臂 AgileX0.780.780.56
倒饮料灵巧手0.830.670.67

消融:动作头架构(Table IV,叠衬衫任务单任务分数)

模型动作头分数
DexVLA(UNet)UNet(93M)0.17
DexVLAScaleDP(1B)0.92

作者观察到 UNet 版本动作抖动明显更大,推测是参数量太小导致不同动作在参数空间中相互干扰。

消融:子步骤推理(Table V,叠衬衫任务,✓ 表示该阶段训练数据含子步骤标注)

Stage 1 含子步骤Stage 2 含子步骤分数
0.07
0
0.92

去掉子步骤标注(单阶段或两阶段都去掉)会导致分数从 0.92 掉到 0~0.07,证明子步骤标注是长时程任务成败的关键。

消融:Stage 1 预训练必要性(Table VI,叠衬衫+拣选简单版+清桌简单版三任务平均分)

变体Stage 1Stage 2分数
DexVLA(仅 Stage2)0
DexVLA(Stage1+2 合并,即不单独预训练扩散专家、整个 VLA 一起在跨具身数据上预训练再精调)0
DexVLA(完整方法)✗(原表格勾选如此)0.92

:原文 Table VI 中”DexVLA”(完整方法)一行的 Stage 1 复选框在原始 HTML/PDF 中为空、仅 Stage 2 打勾,这与”完整方法应同时经过 Stage1 和 Stage2”的逻辑定义不一致,应为原论文排版/勾选疏漏;本页如实按原表标注,未代为修正。两个失败变体(仅 Stage2、以及”整个 VLA 一起在跨具身数据预训练”的 Stage1+2 合并版)均为 0 分,说明”先单独预训练扩散专家、再对齐”这一具体设计本身(而不只是”是否见过跨具身数据”)才是关键。

创新点与影响

  • 参数预算反向分配:把动作表示能力(扩散专家)做到 1B 参数,VLM 骨干反而只用 2B(Qwen2-VL),挑战了”VLA 性能靠堆大 VLM”的主流假设。
  • 子步骤推理作为中间生成目标而非输入指令:让模型自己在推理时生成”熨平褶皱→对齐袖子→固定折痕”这类子步骤语言,并用这条自生成推理链去 FiLM 调制扩散专家,从而不需要 π0/SayCan 式外部高层策略做任务分解即可完成叠衣服等 2 分钟以上的长时程任务。
  • 多头扩散专家 + 三阶段课程,使跨具身预训练所需数据量比端到端训练减少约 60%(正文 III-B 节直接给出的数字)。
  • 作者自陈局限(Conclusion 节):(1) 未观察到”其他具身数据向目标具身的显著迁移”——跨具身预训练带来的收益主要来自”热身”扩散专家参数,而非具身间知识直接迁移;(2) 叠皱衣服等复杂任务强依赖”动作纠错”与”物体状态识别”能力,π0 靠 SayCan 外部高层策略频繁重新评估物体状态来解决,DexVLA 仅靠 VLM 自身推理在这方面”表现挣扎”,作者提出未来加入显式状态检测机制作为解法;(3) 与 π0 观察一致,经过 Stage 3 精调的模型跨任务泛化能力比只训练到 Stage 1+2 的模型更弱,任务专精与泛化能力之间存在权衡。

原始链接

一手源存档(sources/)