X-VLA:用「软提示」把跨机体异构数据驯服成一台通用 VLA
🎯 为什么重要:异构数据是 VLA 的「真正暗礁」
VLA 想成为通用机器人基础模型,必须吃下「跨机体大数据」。但数据一混进来就出问题:每个机器人都有自己的动作空间、相机视角、控制频率、任务分布,简单一锅炖会让模型 confused。论文把现有方案的盲点列得很清楚:
作者把这个问题抽象成「如何把硬件配置 $h_i$ 注入模型」,并对比了四种方案(论文 Fig.2)。结论:只有Soft Prompt 既不破坏预训练表征,也不需要人工标注。
💡 核心思想:硬件配置 → 一组可学习 token,端到端学出来
形式化地,每个数据源 $i$ 配一组可学习 embedding $p_i \in \mathbb{R}^k$,满足 $p_i \approx \Phi(h_i)$,其中 $\Phi: \mathcal{H} \to \mathbb{R}^k$ 不是人工定义的(区别于方案 c),而是随机初始化 + 端到端学出来。推理时按 dataset ID 查表得到 $p_i$,作为额外 token 拼进序列。
🛠️ 让 0.9B 的小模型跑赢 7B 的四个工程设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 双流视觉编码 | 固定视角+语言喂 Florence VLM;wrist 视角单独走共享 ViT | wrist 视角「噪声大、变化快」,硬塞进 VLM 会污染语义推理;分两条流既保高层理解又保精细操控 |
| ② 统一 EEF 动作空间 | 所有机体动作统一成「EEF xyz + Rotate6D 旋转 + 二值 gripper」 | 避免欧拉角/四元数的不连续性;不同机体的动作头被拉到同一语义层,软提示才能聚焦于「硬件差异」本身 |
| ③ Intention Abstraction(意图下采样) | 预训练时不预测每帧 EEF,而是预测「未来 4 秒的 30 个锚点」 | 原始轨迹太细碎、含人类抖动噪声;下采样后的「意图序列」更适合让 VLM 学到高层规划 |
| ④ 两步适配(warm-up + joint) | 新机体 $h_{new}$:先冻主干只训新 $p_{new}$,再解冻联合微调(可叠 LoRA) | 第一步把新提示「对齐到」预训练的机体无关流形上,给联合训练一个好起点——这步是从 LLM→VLM 适配借鉴的 |
动作头只在「最后一公里」分流——但机体差异在「输入端」就已经分裂了(wrist 相机视角、控制频率、任务先验都不同)。软提示 token 进了每一层自注意力,等于给整个网络戴了一副「机体有色眼镜」,让所有推理都带着「我现在在哪台机器人上」的觉知。这就是为什么 Fig.4 里只有 Soft Prompt 的训练曲线稳定收敛。
📊 关键结果:0.9B 在 6 仿真 + 3 真机上拿到 5 项 SOTA
| 评估 | 数字(原文溯源) |
|---|---|
| 主干规模 | X-VLA-0.9B(hidden 1024,24 层 Transformer),预训练 290K episodes / 7 数据源 / 5 种机械臂 |
| 预训练数据混合 | AGIBOT 48.8% · Franka-Droid 15.8%(左视角)+ 15.8%(右视角)· UR-5 8.7% · Franka-RoboMind 6.7% · Agilex 3.7% · Dual-Franka 0.8% |
| Libero(4 任务集平均) | 98.1%(SOTA,超过此前 97.1%) |
| Simpler-WidowX | 95.8%(远超此前 SOTA 71.9%) |
| RoboTwin-2.0 PS | 70.0(超过 π0 的 46.4) |
| VLABench PDMS | 39.0(超过 π0 的 16.4) |
| NAVSIM(自动驾驶 PDMS) | 87.3(超过 UniVLA 9B 的 81.7) |
| 真机叠布任务 | 1200 段演示微调 → ~100% 成功率,33 折/小时,可比闭源 π0-folding |
| PEFT(LoRA, 9M 参数 ≈ 1%) | Libero 93% / Simpler-WidowX 54%;π0 全参微调(3B)为 94.2% / 55.7%——用 1/300 的参数追平 |
🌐 在领域中的位置
X-VLA 在 T06 VLA 五阶段 里属于「跨机体基础模型」阶段的代表作。它把 NLP 里的 prompt-learning 思想干净地搬到了机器人上,用「最小可学参数」解决异构性——避免了 HPT 那种观察投影对 VLM 表征的破坏。后续像 UniVLA、BeyondMimic 等都开始吸收这套设计哲学。
❓ 常见误区
软提示和「专属动作头」是不是一回事?
不是。专属动作头只在最后输出层分流(解决动作维度不同);软提示是每个数据源一组 token,从输入自注意力就注入,影响整条推理链。前者只解决「动作异构」,后者还吃下了「视觉/相机/任务分布」的异构。论文 Fig.4 显示前者训练会发散,后者稳定。
0.9B 凭什么打 7B?是不是 cherry-pick?
作者的解释很直接:(1) 软提示让小模型也能高效吃下异构数据;(2) flow-matching + 标准 Transformer 比 DiT-style decoder 更稳;(3) 预训练验证误差与下游成功率强相关(Tab.1)——所以小模型只要训练 recipe 好,验证误差降下来,下游就能赢。但作者也承认在最大规模上仍未饱和(Fig.5),更大模型还会更好。
「Intention Abstraction」为什么不是 lossy 压缩?
只在预训练阶段下采样到 30 个锚点;下游适配时还会回到原始分辨率。这其实是「粗粒度预训练 + 细粒度微调」的经典套路——粗粒度让 VLM 学到任务意图,细粒度让 decoder 学到精确执行。
跨机体能不能不靠 dataset ID?
不能直接绕开——软提示是按 dataset ID 查表的。但 Fig.9 的实验显示,把别的单臂机体的预训练软提示迁移到 WidowX(预训练没见过)也能加速收敛,说明 $p_i$ 学到了「单臂 vs 双臂」「视角配置」等可迁移特征,未来可以做成「机体画像 → 提示初始化」的 zero-shot 推理。