一句话定位
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;论文明确指出 pi0 和 rt-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),类比人类”先学粗粒度动作、再适应自己身体、最后精修任务”:
- Stage 1:跨具身预训练(Cross-Embodiment Pre-training)——只训练扩散专家,完全不涉及 VLM,用全部 100 小时跨具身数据学习”具身无关”的低层运动技能;多头结构使每个具身用独立 MLP 头学习。
- Stage 2:具身特定对齐(Embodied-Specific Alignment)——把数据过滤为单一目标具身,联合训练 VLM、投影层与扩散专家,但冻结 VLM 视觉编码器;类比 LLaVA 的对齐阶段。这一阶段结束后模型已能完成折衣服、清桌等域内任务。
- Stage 3:任务特定适配(Task-Specific Adaptation)——类比 LLM 的后训练阶段,只对需要精细、依赖场景的复杂任务做少量演示的精调(如 100~200 条)。Stage 2/3 都用了子步骤标注数据,但不是把子步骤当输入指令,而是当作模型需要自己生成的中间语言输出——这是 DexVLA 能不依赖外部高层策略(π0 用 SayCan 每 2 秒更新一次指令)就完成长时程任务的关键设计。
关键超参(Table I):
| 超参 | Stage 1 | Stage 2 | Stage 3 |
|---|---|---|---|
| 学习率 | 1e-4 | 2e-5 | 2e-5 |
| LR scheduler | Constant | Constant | Cosine |
| Weight decay | 0.0 | 0.0 | 0.0 |
| Optimizer | AdamW(β₁=0.9, β₂=0.95),三阶段一致 | ||
| 训练 epoch | 5 | 5 | 5 |
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 次试验均值):
| 任务 | 具身 | 未见物体 | 未见场景 | 未见物体+场景 |
|---|---|---|---|---|
| 叠衬衫 | 双臂 AgileX | 0.78 | 0.78 | 0.56 |
| 倒饮料 | 灵巧手 | 0.83 | 0.67 | 0.67 |
消融:动作头架构(Table IV,叠衬衫任务单任务分数):
| 模型 | 动作头 | 分数 |
|---|---|---|
| DexVLA(UNet) | UNet(93M) | 0.17 |
| DexVLA | ScaleDP(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 1 | Stage 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 的模型更弱,任务专精与泛化能力之间存在权衡。
原始链接
- arXiv: https://arxiv.org/abs/2502.05855
- PDF: https://arxiv.org/pdf/2502.05855
- 项目主页: https://dex-vla.github.io/
- GitHub: https://github.com/juruobenruo/DexVLA
- HF(Stage 1 预训练 ScaleDP-H 权重,约 1B): https://huggingface.co/lesjie/scale_dp_h
- HF(ScaleDP-L,约 400M): https://huggingface.co/lesjie/scale_dp_l
- HF(示例数据集): https://huggingface.co/datasets/lesjie/dexvla_example_data
- 相关: ScaleDP 论文(arXiv:2409.14411)、[diffusion-vla]
一手源存档(sources/)
- dexvla—project-page — 项目主页文本快照(摘要 + 作者信息 + CoRL 2025 接收信息),https://dex-vla.github.io/
- dexvla—github-readme — GitHub README(安装/数据格式/训练脚本/权重下载表/故障排查),https://github.com/juruobenruo/DexVLA
- arXiv 全文 PDF(2502.05855,arXiv 原文 PDF,不入 git):https://arxiv.org/pdf/2502.05855