X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
Paper: arXiv:2510.10274
Code: 2toinf/X-VLA
Code reference:main@ccd1992f(2026-05-07)
1. Motivation (研究动机)
这篇论文要解决的核心问题不是“再做一个机器人 VLA 模型”,而是如何让一个 VLA 模型真正吃下跨机器人平台、跨数据源、跨相机设置、跨动作空间的大规模异构数据。已有通用机器人策略通常依赖 VLM 作为感知与语言理解骨干,然后在机器人数据上做行为克隆或流匹配式动作生成;但是机器人数据不像图文语料那样天然同构:不同数据集可能来自 Franka、UR、AgileX、Droid、AGIBOT、WidowX 等不同硬件,拥有不同自由度、不同末端执行器、不同相机视角、不同采样频率、不同动作标注约定和不同任务分布。直接把这些数据混在一起训练,会让模型同时面对语义空间、状态空间和动作空间的多重不一致,最终可能学到“平均化但不可部署”的动作表示。
论文用一个很关键的负例说明了这个动机:仅把异构数据做预训练并不自动带来增益。表 1 的消融路径中,使用 Florence-base + 标准 DiT-base 且不预训练时,Simpler-WidowX 适配准确率只有 4.1;加入自定义学习率但仍不预训练后提升到 39.6;然而直接加入异构预训练后,验证误差为 0.11,适配准确率反而降到 25.0。这说明瓶颈不只是“数据量不够”,而是异构性本身会破坏策略学习。如果没有专门的跨 embodiment 建模机制,大数据混合甚至可能比单域训练更差。
已有处理方式大致有三类局限。第一类是把不同机器人硬压到同一动作表示或同一投影空间,优点是接口统一,缺点是会丢掉平台特有结构;第二类是 HPT-style projection 这类硬编码/投影模块,能缓解维度不一致,但需要显式设计,扩展到新平台时不够轻量;第三类是自然语言 prompt,把硬件信息写成“单臂 Franka、左相机、15Hz”之类描述交给 VLM 理解,但语言描述和实际控制差异之间并没有可靠的连续映射,而且文本模板会把机器人几何、控制频率、动作噪声等低层因素压成离散描述。X-VLA 的动机是:能不能像 NLP/VLM 里的 prompt learning 一样,为每个数据源学习一小组连续向量,让这些向量自动吸收硬件与数据分布差异,而主干模型保持共享、简洁、可扩展?
这件事值得研究,因为跨 embodiment 数据是机器人 foundation model 继续 scaling 的必要条件。单个实验室或单个平台的数据规模有限,而互联网级 VLA 能力需要汇集大量机器人演示;但机器人数据的“语料混合”比文本复杂得多。如果一个模型能稳定地从 AGIBOT、RoboMind、Droid 等多源数据中学习共享动作先验,又能通过少量可学习 prompt 快速适配到 WidowX、AIRBOT、AgileX 等新平台,就能把 VLA 的扩展路径从“每个平台单独训练一个专家”转向“共享 backbone + 少量 embodiment 条件化参数”。论文最终想证明:soft prompt 不是装饰性 token,而是跨 embodiment 训练能够从负迁移变成正迁移的关键接口。
Figure 1 解读:这张总览图把 X-VLA 的三件事放在一起:左侧是异构机器人数据,中间是 soft-prompted Transformer,右侧是仿真与真实机器人评测。关键点在于每个数据源都有自己的 learnable soft prompt,但主体网络仍然由共享 Transformer block 组成,因此它不是为每个机器人复制一套模型,而是用很少的 domain-specific embedding 给共享主干提供条件。
2. Idea (核心思想)
核心洞察可以压缩成一句话:把“机器人 embodiment / 数据源差异”当作一种需要被学习的连续任务条件,而不是靠人工模板、硬编码 projection 或完全共享动作空间去隐式忍受它。X-VLA 为每个数据源分配一组可学习 embedding,记作 ,其中 近似某个硬件配置 在 latent prompt space 中的表示,即 。这里的 不是人工定义的语言模板,而是在端到端行为克隆/流匹配训练中被优化出来的隐变量。
这和传统 VLA 的根本差异在于条件化位置与参数效率。OpenVLA、、GR00T-N1、Octo 等通用或半通用模型通常更强调大 VLM backbone、动作专家或统一动作 token;X-VLA 关注的是异构数据进入动作生成 Transformer 的早期融合阶段时,模型如何知道“当前样本来自哪个硬件和数据协议”。soft prompt 被注入到动作生成 Transformer 的 token 序列中,和动作噪声 token、proprioception token、VLM feature token 一起参与自注意力。这样一来,Transformer 不需要为每种 embodiment 维护独立专家,也不需要把全部差异写进自然语言;它可以在共享注意力里学习“哪些差异应该共享,哪些差异应该分开”。
第二个思想是把结构做得尽量简单。论文没有设计复杂的跨模态 decoder,而是将高维观察流和低维控制流先分别编码,再交给标准 Transformer encoder 堆叠。高维流用 Florence-Large 处理主视角图像和语言指令,用共享视觉 backbone 处理辅助视角;低维流把 noisy action、proprioception 和时间 embedding 拼在一起,通过 domain-aware 线性层映射成 action tokens。soft prompt 和 position embedding 提供 domain 与时序条件,最后只解码 action token 段。这个“先对齐、后堆标准 Transformer”的设计,使得 X-VLA 的 scaling 主要沿模型深度、宽度、数据源数量和数据量展开,而不是依赖大量手工模块。
Figure 2 解读:论文比较了共享表示、HPT-style projection、language prompt 和 soft prompt 四种处理异构性的方式。soft prompt 的优势在于它既不像纯共享表示那样忽略硬件差异,也不像语言 prompt 那样依赖人工描述是否充分,而是把硬件差异变成端到端学习的连续参数。
Figure 3 解读:预训练数据混合来自 AGIBOT-beta、RoboMind、Droid 等高质量机器人数据源,覆盖 7 个数据源、约 290K episodes 和五类机械臂配置。图中真正重要的是“混合数据不是均匀拼接”,而是需要为不同来源设计采样权重和 shuffle pipeline,否则大域会支配梯度,小域的 embodiment 信息会被覆盖。
3. Method (方法)
3.1 问题设定与 flow-matching 动作生成
论文沿用 VLA 的行为克隆设定:数据集由轨迹 组成,每条轨迹包含多模态观察 和专家动作 。策略不是只预测单步动作,而是预测动作块 ,这样可以把短时意图和连续控制放进同一个输出序列。普通行为克隆的目标可写成
X-VLA 使用 flow-matching 式策略来描述从随机噪声到专家动作块的传输过程。给定噪声 、专家动作块 和连续时间 ,论文使用 OT path:
并学习速度场 ,使其接近 :
直观上,这让策略学习“从噪声动作逐步移动到专家动作”的条件向量场,而不是一次性回归动作。发布代码在 models/modeling_xvla.py 中实现了一个更工程化的 denoising 过程:训练时构造 action_noisy = randn_like(action) * t + action * (1 - t),将 noisy action、观察特征、domain id 和 proprioception 输入 Transformer,再对输出动作和 ground-truth action 计算 action-space loss;推理时从高斯动作开始,按线性 schedule 多步更新动作。这和论文公式的 velocity-field 表述在数学目标上有差异,笔记复现时应以论文公式理解方法,以当前代码理解 released implementation。
3.2 Soft prompt 如何建模 heterogeneity
X-VLA 的 heterogeneity 学习分成四个候选方向,最终采用 soft prompt。设硬件或数据源配置为 ,对应 prompt 为 ,模型希望 prompt 空间能隐式表达硬件结构、相机配置、频率和数据协议。具体做法是:每个 domain_id 查询一组长度为 len_soft_prompts 的 embedding;这些 embedding 不替换观察或动作 token,而是作为额外 token 拼到 Transformer token 序列里。这样,prompt 可以通过 self-attention 同时影响动作 token 如何读取 VLM feature、如何解释 proprioception、以及输出线性层如何生成动作。
为什么这能工作?因为异构性对策略的影响不是单一维度。例如同样的“pick up cup”在 WidowX 和 Franka 上的动作尺度、末端空间、可达范围、相机视角都不同;如果模型只看到语言和图片,它可能把视觉目标定位学对,却把控制分布学错。soft prompt 给模型一个低成本的 domain latent,使得同一语义任务在不同 embodiment 中可以拥有不同的控制先验。更重要的是 prompt 是连续向量,能表达相似机器人之间的相似性。论文的 T-SNE 分析显示,Droid 左/右视角的两个 Franka 设置并没有被完全分开,而是形成相互靠近或交错的结构,说明 prompt 没有粗暴地把每个数据源当成无关任务,而是在学习 hardware similarity。
3.3 X-VLA 架构:高维观察流、低维动作流、标准 Transformer
X-VLA-0.9B 采用 Florence-Large 作为视觉-语言编码器,动作生成主干是 24 层、hidden size 1024 的标准 Transformer,配置文件 models/configuration_xvla.py 中默认 num_domains=30、len_soft_prompts=32、dim_time=32、num_actions=30、max_action_dim=20、action_mode="ee6d"。论文附录 C 强调,大多数参数跨 embodiment 共享,只有 soft prompt 和 action-related token 的输入/输出线性投影等少量参数不共享,这部分仅约 0.04% 参数。
高维观察流负责图像和语言。主视角图像和语言指令输入 Florence-Large VLM encoder;辅助视角例如 wrist view 不经过完整 VLM,而是只通过共享视觉 encoder,得到 auxiliary visual tokens。这样做的直觉是:主视角更适合和语言共同进行场景级语义 grounding,而 wrist/辅助视角更多提供局部几何与接触信息,不必让所有视角都承担同样的 language-conditioned reasoning。
低维控制流负责 proprioception、动作和时间。对于每个样本,模型将 noisy action token、proprio token 和 timestep embedding 拼接,再通过 action encoder 投影到 hidden size;然后把 action tokens、VLM tokens、aux visual tokens 拼成一个 token 序列,加上 position embedding;最后按 domain_id 取出 soft prompts 并追加到序列后。所有 token 进入标准 Transformer blocks,输出时只取最前面的 action token 段,经 action decoder 映射回动作维度。
Figure 10 解读:这张详细结构图显示了 X-VLA 的“共享主干 + 少量 domain-specific 参数”模式。图像和语言先进入 VLM/vision encoder;noisy action、proprioception 和 time embedding 进入 action encoder;soft prompt 与这些 token 一起进入 Transformer。注意 prompt 不是放在输入文本里,而是在动作生成模块内部作为可学习 token 参与注意力。
3.4 训练 recipe:预训练、两阶段适配、动作对齐和采样
训练分为两个阶段。Phase I 是跨 embodiment 预训练,联合优化 backbone 与各数据源 soft prompt,目标是学到 embodiment-agnostic foundation。论文使用约 290K episodes、7 个数据源进行预训练,覆盖单臂、双臂和不同相机配置。附录 G 给出的 X-VLA-0.9B 预训练配置是:64 张 NVIDIA A100,global batch size 1024,训练约 4 天,200K iterations,AdamW,、,learning rate ,weight decay 0.01,bfloat16,图像 resize 到 ,并使用轻量 ColorJitter。
Phase II 是目标域适配。对新硬件 ,先引入新的 learnable prompt 。第一步是 prompt warm-up:冻结预训练权重,只更新新 prompt,让它对齐已有 embodiment-agnostic feature space;第二步是 joint policy adaptation:再联合优化 backbone 和 warmed-up prompt,使策略专门适配目标平台。这个流程的直觉类似 LLM 到 VLM 适配中先学接口再联合微调:先让新 domain 找到主干特征的入口,再让主干细调到新任务。
论文还强调三个稳定训练细节。第一,soft prompt 和视觉-语言模块使用较小学习率,以降低 catastrophic forgetting 风险;代码 train.py 中也把参数分成 vlm、transformer_core、soft_prompts、action_heads 等组,并给 vlm 和 soft_prompts 乘以 learning_coef。第二,动作空间统一成 end-effector 表示:Cartesian EEF xyz、Rotate6D 绝对旋转和二值夹爪;位置和旋转用 MSE,夹爪用 BCE。第三,做 intention abstraction:预训练时不是预测每个原始控制频率下的密集动作,而是下采样成未来 4 秒的 30 个 anchor points,使模型更关注高层轨迹意图,减少人类演示随机抖动的影响。代码 models/action_hub.py 中的 EE6DActionSpace、JointActionSpace、AGIBOTEE6DActionSpace 和 AutoActionSpace 对应这些动作接口和 loss/postprocess 逻辑。
下游 finetuning 配置在附录表 9 中给出:CALVIN-ABC、LIBERO、RoboTwin-2.0、VLA-Bench、BridgeData 多数使用 Abs EEF、batch size 128、60K steps;FactalData 使用 Rel XYZ + Abs Rotation、batch size 256、50K steps;SoftFold 使用 Abs EEF、batch size 256、400K steps;PEFT experiments 使用 Abs EEF、batch size 128、40K steps。这个配置说明 X-VLA 不是只靠 prompt 零样本迁移,而是把 prompt 当作高效适配入口,再配合 benchmark-specific finetuning。
3.5 代码映射与伪代码
Code reference:
main@ccd1992f(2026-05-07)
| Paper Concept | Source File | Key Class/Function |
|---|---|---|
| X-VLA HuggingFace policy wrapper | models/modeling_xvla.py | XVLA, forward_vlm, forward, generate_actions, _build_app |
| Soft-prompted Transformer | models/transformer.py | SoftPromptedTransformer, soft_prompt_hub, DomainAwareLinear |
| Action-space alignment and losses | models/action_hub.py | build_action_space, EE6DActionSpace, JointActionSpace, AGIBOTEE6DActionSpace, AutoActionSpace |
| Model configuration | models/configuration_xvla.py | XVLAConfig defaults: 24 layers, hidden 1024, 32 soft prompts, 30 action chunks |
| Full finetuning recipe | train.py | build_optimizer, LR groups, freeze/warmup/cosine scheduler, create_dataloader |
| PEFT/LoRA adaptation | peft_train.py | LoraConfig(r=8, lora_alpha=16, target_modules="all-linear") |
| Dataset/domain routing | datasets/dataset.py, datasets/domain_config.py | InfiniteDataReader, DATA_DOMAIN_ID, DATA_WEIGHTS |
训练伪代码(根据 models/modeling_xvla.py 与 models/transformer.py):
def train_step(batch):
# batch: input_ids, image_input, image_mask, domain_id, proprio, action
enc = forward_vlm(batch.input_ids, batch.image_input, batch.image_mask)
B = batch.input_ids.shape[0]
t = stratified_uniform_time(B)
action_noisy = randn_like(batch.action) * t[:, None, None] + batch.action * (1 - t)[:, None, None]
proprio_m, action_noisy_m = action_space.preprocess(batch.proprio, action_noisy)
pred_action = transformer(
domain_id=batch.domain_id,
action_with_noise=action_noisy_m,
t=t,
proprio=proprio_m,
vlm_features=enc["vlm_features"],
aux_visual_inputs=enc["aux_visual_inputs"],
)
return action_space.compute_loss(pred_action, batch.action)Transformer 前向伪代码(根据 SoftPromptedTransformer.forward):
def soft_prompted_transformer(domain_id, vlm_features, aux_visual_inputs, action_with_noise, proprio, t):
time_tokens = timestep_embedding(t).repeat_for_each_action()
proprio_tokens = proprio.repeat_for_each_action()
action_tokens = concat(action_with_noise, proprio_tokens, time_tokens)
x_action = action_encoder(action_tokens, domain_id)
x_vlm = vlm_proj(vlm_features, domain_id) # or shared linear if not hetero projection
x_aux = aux_visual_proj(aux_visual_inputs, domain_id)
x = concat(x_action, x_vlm, x_aux)
x = x + pos_emb[:x.length]
soft_prompts = soft_prompt_hub(domain_id).reshape(B, len_soft_prompts, hidden_size)
x = concat(x, soft_prompts)
for block in transformer_blocks:
x = block(x)
return action_decoder(norm(x[:, :num_actions]), domain_id)推理伪代码(根据 XVLA.generate_actions):
def generate_actions(obs, steps=10):
enc = forward_vlm(obs.input_ids, obs.image_input, obs.image_mask)
x1 = randn(B, num_actions, dim_action)
action = zeros_like(x1)
for i in range(steps, 0, -1):
t = full(B, i / steps)
x_t = x1 * t[:, None, None] + action * (1 - t)[:, None, None]
proprio_m, x_t_m = action_space.preprocess(obs.proprio, x_t)
action = transformer(obs.domain_id, enc["vlm_features"], enc["aux_visual_inputs"], x_t_m, proprio_m, t)
return action_space.postprocess(action)这段代码验证了论文方法的工程落点:soft prompt 通过 domain_id 查询,不依赖语言 prompt;动作生成主干是标准 self-attention block;动作接口由 action space 模块统一处理。需要注意的是,当前开源实现还包含 FastAPI /act 服务、LeRobot/Hugging Face 模型加载和 LoRA finetuning 支持,说明论文方法已经被包装成可部署策略而不仅是实验代码。
4. Experimental Setup (实验设置)
4.1 数据与训练规模
预训练数据来自 AGIBOT-beta、RoboMind、Droid 等公开或整理后的高质量机器人数据源,覆盖 7 个数据源、约 290K episodes、五类机械臂配置。论文强调这些数据源不仅规模不同,质量、相机布局、动作频率和动作空间也不同,因此采用 weighted sampling 与双层 shuffle:既跨 domain 混合,也在每个 domain 内跨轨迹打乱,避免训练 batch 被某个大数据源支配。代码 datasets/domain_config.py 中也能看到具体 domain 权重和 domain id,例如 robomind-franka、robomind-ur、Droid-Left、Droid-Right、AGIBOT、robomind-agilex、robomind-franka-dual 等预训练数据源。
预训练硬件和超参为:X-VLA-0.9B 在 64 张 A100 上训练约 4 天,global batch size 1024,200K iterations,AdamW,,learning rate ,weight decay 0.01,bfloat16,图像 ,ColorJitter。下游 benchmark 的大多数 full finetuning 使用 batch size 128、60K steps;SoftFold 因任务复杂和数据设置不同使用 batch size 256、400K steps;PEFT 使用 batch size 128、40K steps。开源 train.py 默认参数包含 batch_size=16、learning_rate=1e-4、freeze_steps=1000、warmup_steps=2000,但技能要求训练配置不能只看默认值;因此论文正文/附录的 benchmark 表是本笔记记录的主依据。
4.2 评测任务、baselines 与指标
仿真评测覆盖 6 个 benchmark:LIBERO、Simpler、VLABench、RoboTwin-2.0、CALVIN 和 NAVSIM。它们分别测试不同能力轴:LIBERO 测语言指令和任务泛化,Simpler 测真实机器人数据到仿真的视觉/动作泛化,VLABench 和 RoboTwin-2.0 测更复杂的具身任务和双臂/多任务设置,CALVIN 用 ABC→D 长程操作成功步数衡量跨环境泛化,NAVSIM 则把 VLA 框架扩展到自动驾驶规划指标。真实世界评测覆盖 3 个平台:WidowX 真实 pick-and-place,AgileX 双臂 cloth folding,AIRBOT 上的快速 PEFT 适配。
主要 baselines 非常广:LBP、MoDE、SuSIE、GHIL-Glue、SpatialVLA、TraceVLA、ThinkAct、FPC-VLA、MemoryVLA、Octo、GR-1、Seer、UniAct、RDT、FLOWER、SmolVLA、GR00T-N1、、+FAST、OpenVLA、OpenVLA-OFT、DD-VLA、UniVLA 等。论文还把“专用模型”和“通用模型”放在同一张表里,目的不是只对比参数规模,而是说明 0.9B 的 X-VLA 能在多种 benchmark 上同时达到或超过更大模型的强项。
指标方面,Simpler 报 VM、VA 和 WidowX success;LIBERO 报 Spatial、Object、Goal、Long 和平均成功率;CALVIN 报 ABC→D 平均完成任务数;RoboTwin-2.0 报 Easy/Hard 成功率;VLABench 报 Avg. PS;NAVSIM 报 PDMS,并在附录中列出 NC、DAC、EP、TTC、C 等分项。PEFT 评测则关注用 9M 可训练参数时是否接近 full finetuning 或 的表现;data-efficient adaptation 评测 10 demos 与 50 demos 的差距。
Figure 6 解读:这张图汇总了适配实验涉及的 benchmark 和平台,是论文实验覆盖面的核心证据。X-VLA 不只在一个机器人或一个仿真环境上调参,而是在单臂、双臂、自动驾驶、真实 cloth folding 与真实 pick-and-place 上做系统评估。
Figure 14 解读:真实机器人设置包括 WidowX、AgileX、AIRBOT 等不同硬件和相机配置。这个图和 soft prompt 的主题直接相关:如果每个机器人外观、控制接口、相机位置都不同,那么 prompt 需要表达的不是抽象任务名,而是硬件与数据分布的组合。
5. Experimental Results (实验结果)
5.1 主结果:0.9B 模型在多数 benchmark 上达到 SOTA
主表显示 X-VLA-0.9B 在多个轴上显著领先。Simpler 上,X-VLA 达到 VM 80.4、VA 75.7、WidowX 95.8;表中既有 SOTA 最高值分别为 78.0、72.7、71.9,因此 WidowX 维度提升尤其大。LIBERO 上,X-VLA 分别为 Spatial 98.2、Object 98.6、Goal 97.8、Long 97.6、Avg 98.1;虽然 Object 的单项最高为 98.8,Goal 单项最高为 97.9,但 X-VLA 的 Long 与 Avg 是表中最强,说明它不是只提升短任务,而是在长程设置上也有效。RoboTwin-2.0 上,Easy 70.0、Hard 39.0,显著超过既有最高 46.4/16.4;VLABench Avg. PS 51.1 超过既有最高 39.7;NAVSIM PDMS 87.3 超过 UniVLA 的 81.7 和既有最高 81.7。
并非所有指标都第一:CALVIN ABC→D 上 X-VLA 为 4.43,而 FLOWER 报 4.53,Seer 报 4.28,说明 X-VLA 在 CALVIN 上很强但不是最高。这个细节很重要,因为论文的优势不是“每列无条件第一”,而是“在非常宽的 benchmark 组合上,用 0.9B 模型同时取得最均衡的高分”。相较 7B OpenVLA-OFT、7B DD-VLA、9B UniVLA、3B 等更大模型,X-VLA 的参数规模更小,但跨任务覆盖更全面。
5.2 消融:直接异构预训练会失败,soft prompt 与编码 pipeline 是关键
表 1 是理解论文贡献的关键。基础模型不预训练只有 4.1;加入自定义学习率后 39.6,说明优化 recipe 已经很重要。但加入异构预训练后反而降到 25.0,验证误差 0.11,说明“heterogeneous PT”本身会引入负迁移。接下来动作对齐、意图抽象和 balanced sampling 把验证误差降到 0.077,适配准确率升到 50.0;这说明数据处理是让多源数据可学的第一道门槛。
架构消融进一步说明 X-VLA 不是只靠数据处理。将 DiT 换成 Transformer encoder 后适配为 47.9,略降;但加入完整 encoding pipeline 后验证误差降到 0.053,适配升到 64.6,说明高维/低维流的分离编码比单纯替换 backbone 更关键。加入 soft prompt 后验证误差 0.041、适配 73.8,提升 +9.2;最后扩大模型与数据规模后验证误差 0.032、适配 89.6,再配合两阶段适配达到 95.8。这个路径清楚说明:X-VLA 的收益来自“训练 recipe + 数据处理 + 编码 pipeline + soft prompt + scaling”的组合,但 soft prompt 是把异构信息显式交给共享主干的关键增量。
Figure 5 解读:scaling 曲线显示模型容量、数据多样性和数据量增加时,预训练验证动作误差持续下降,且最大设置 0.9B、290K episodes、7 data sources 尚未饱和。论文用这个结果支持“VLA 也存在可扩展路径”,但前提是先处理好异构性;否则 scaling 可能只是放大负迁移。
5.3 PEFT 与 data-efficient adaptation
论文的 PEFT 结果说明预训练 backbone 学到了可迁移的 embodiment-agnostic 表示。只训练约 9M 参数(约全模型 1%)时,Ours-LoRA 在 LIBERO 上达到 Spatial 95.4、Object 96.6、Goal 96.0、Long 84.2,在 Simpler-WidowX 上达到 54.2。对应 3B 模型为 96.8、98.8、95.8、85.2 和 55.7;换句话说,X-VLA 的 LoRA 适配在多数指标上接近 3B 级模型 full/official setup,而可训练参数约少 300 倍。这里的意义不是 PEFT 绝对超过所有 full finetuning,而是说明 soft prompt 预训练出的 backbone 让少量参数足以找到新 domain。
data-efficient adaptation 更进一步:LIBERO 上 50 demos 的平均为 92.8,10 demos 仍有 91.1;具体为 Spatial 96.6→95.2、Object 95.4→94.2、Goal 95.0→93.6、Long 84.2→81.5。10 demos 只比 full/default 少 1.7 平均点,说明模型在少样本目标域上并不是从零学动作,而是在利用预训练动作先验和 prompt 条件化。
Figure 8 解读:T-SNE 可视化显示 soft prompts 按硬件/数据源形成有结构的聚类;Droid 左/右视角的 Franka 设置没有被完全割裂,说明 prompt 捕获的是 embodiment 与数据协议的相似性,而不只是 domain id 的 one-hot 记忆。

Figure 9 解读:prompt comparison 说明随机冻结 prompt、预训练冻结 prompt、两阶段适配 prompt 的收敛和最终性能不同。论文的结论是:预训练 prompt 本身已经提供有用初始化,而 warm-up + joint adaptation 能进一步把 prompt 对齐到目标机器人。
5.4 真实机器人与 Soft-Fold
真实世界实验覆盖五类能力轴,并在 WidowX pick-and-place、AgileX cloth folding 和 AIRBOT 快速适配上展示跨 embodiment 能力。论文特别强调 Soft-Fold:作者构建了 1,200 条高质量 cloth-folding trajectories,用于双臂 AgileX 的复杂柔性物体操作;X-VLA-0.9B 在该任务中达到接近 100% 的成功率,并能平均在两分钟内折好一块布。这个结果的重要性在于 cloth folding 同时需要视觉局部几何、接触时序、双臂协调和长程动作计划,单纯图像语言理解不足以完成;X-VLA 的动作 chunk、意图抽象和 embodiment prompt 在这里共同发挥作用。
Figure 7 解读:真实世界结果图把简单 manipulation、dexterous manipulation 和 PEFT 快速适配放在一起。它支撑论文的核心主张:X-VLA 不是只在离线 benchmark 上降低误差,而是能通过共享 backbone 和 prompt/LoRA 适配落到真实机器人任务。
5.5 局限与可复现注意点
作者承认 X-VLA-0.9B 相对语言和视觉 foundation model 仍然很小,受限于算力和高质量机器人数据规模。当前机器人数据的多样性、覆盖的交互物体、任务语义和失败案例远不如文本/图像语料,因此 scaling trend 没饱和并不等于简单扩大模型就能解决所有问题;更大模型还需要更广泛、更干净、更均衡的机器人数据。另一个局限是低维动作标签的信息量有限。即使动作空间对齐为 EEF xyz、Rotate6D 和 gripper,它仍然只记录专家“怎么动”,而没有充分表达任务因果结构、接触约束、失败恢复和安全边界。未来可能需要结合更丰富的监督,例如视觉状态预测、接触/力觉、语言解释、轨迹偏好或自动评估信号。
复现时要注意三点。第一,代码已经开源并接入 Hugging Face/LeRobot,但 released code 的训练目标实现与论文 flow-matching 公式并非逐项同构;代码更像多步 denoising 到 action target,需以具体 commit 为准。第二,训练稳定性高度依赖数据处理、采样和 LR group;只把 models/transformer.py 的 soft prompt 复制到其他 VLA 代码中,未必能复现表 1 的增益。第三,benchmark 数字跨论文比较时存在 evaluation protocol 差异,尤其真实世界结果和 Simpler/VLABench 细节需要严格对齐任务、demo 数、控制接口、图像预处理和 action postprocess。
总体结论:X-VLA 的主要贡献是把跨 embodiment VLA 的异构性问题具体化,并给出一个参数极小、位置明确、可随数据规模扩展的 soft prompt 条件化方案。它的价值不只是某个 benchmark 的 SOTA,而是证明机器人数据混合训练需要显式的 domain/embodiment latent;一旦这个 latent 与标准 Transformer、动作对齐和两阶段适配结合,0.9B 级模型就能在 6 个仿真 benchmark 和 3 个真实机器人平台上获得相当均衡的泛化能力。