LingBot-VLA 论文精读:2 万小时真实机器人数据,真的能带来更好的泛化吗?

论文:A Pragmatic VLA Foundation Model

作者:Wei Wu 等

论文版本:arXiv:2601.18692v4

论文地址:arXiv HTML

前言

在这里插入图片描述

机器就应该像机器一样运作

最近在整理 LingBot-VLA 的论文和代码时,我发现这篇工作的题目其实起得很准确: A Pragmatic VLA Foundation Model,中文可以译成“一种务实的 VLA 基础模型”。

它不是那种读完摘要之后,会让人觉得“作者发明了一个特别新、特别复杂的模块”的论文。相反,LingBot-VLA 做的事情比较朴素:收集更多真实机器人数据,把不同机器人放在一起训练,给动作生成加上连续的 Flow Matching,再花力气把训练系统做快。

但机器人学习里面,真正困难的事情往往就是这些看起来不那么“花哨”的事情。

一台机器人在一个桌面上学会抓杯子,不算特别难。难的是:换一台自由度不同、摄像头位置不同的机器人,还能不能抓?换一个杯子、换一个位置、换一种光照,还能不能抓?训练数据从 3,000 小时增加到 20,000 小时之后,性能是不是还会继续涨?

LingBot-VLA 这篇论文,主要就是围绕这些问题展开的。

先把论文自己的话摘出来。作者在摘要中说:

“A capable Vision-Language-Action (VLA) foundation model is expected to faithfully generalize across tasks and platforms while ensuring cost efficiency.”

意思是,一个真正有用的 VLA 基础模型,至少要同时满足两件事:

  1. 能在不同任务、不同机器人平台之间泛化;
  2. 适配成本不能太高,尤其是数据成本和 GPU 训练成本。

这也是本文的主线。后面所有的模型设计、数据设计和工程优化,基本都可以放回这两个问题里理解。

一、先用一句话说清楚 LingBot-VLA

如果只看论文标题,可能会觉得这又是一篇“VLM 加动作头”的 VLA 工作。把论文完整读下来之后,我认为它更准确的定位是:

LingBot-VLA 用大规模跨机器人本体的真实双臂操作数据训练一个 VLM + Action Expert 的 VLA,再通过 Flow Matching 生成连续动作块,并用深度蒸馏补充空间信息。

先把论文的框架总图放在这里。建议先看图,再看后面的文字,很多模块之间的关系会直观不少。

请添加图片描述

图 1:LingBot-VLA 总体框架。左侧是双臂机器人真实数据的采集与标注,中间是预训练和后训练阶段,右侧是 GM-100 真实任务与仿真任务上的评估结果,底部展示了真实世界部署场景。该图片来自论文源码中的 Teaser.pdf,已转换为 PNG 以便 Markdown 平台显示。

这张图可以从左到右看:

  1. 左边先把真实双臂机器人数据切分成任务和子任务,并通过自动标注与人工修正获得训练信号;
  2. 中间的 Understanding Expert 负责视觉语言理解,Action Expert 负责连续动作,深度信息通过 depth query 注入;
  3. 右边给出真实世界和仿真基准上的结果;
  4. 最下面则是模型最终面对的真实机器人操作任务。

它的输入和输出可以先粗略地画成这样:

三路摄像头图像 + 任务指令 + 机器人状态
                         │
                         ▼
                  Qwen2.5-VL
              (视觉语言语义理解)
                         │
                  共享 self-attention
                         │
                         ▼
                   Action Expert
              (连续动作块生成)
                         │
                   Flow Matching
                         ▼
                 机器人执行一段动作

这里先提醒一个容易混淆的地方:LingBot-VLA 不是让 Qwen2.5-VL 像聊天机器人一样直接输出“抓取杯子”这几个字,然后再由另一个完全独立的控制器执行。它是在同一个统一建模过程中,让视觉语言路径和动作路径持续交互,最后由动作专家输出连续的机器人动作。

二、作者为什么要做这件事?

2.1 VLA 的问题,从来不只是“看懂指令”

现在很多 VLA 模型都能把“把红色杯子放到盘子里”理解得不错。但如果机器人真的要执行这句话,它还需要解决很多论文摘要里不太容易体现的问题:

  • 红色杯子在图像中的哪个位置?
  • 杯子的朝向是什么?
  • 夹爪应该从正面还是侧面接近?
  • 夹住杯子以后,手臂需要走怎样的一段连续轨迹?
  • 如果杯子被放偏了,下一步应该怎么补救?

所以,VLA 其实同时面对三类问题:

  1. 语义问题: 机器人是否理解任务指令和场景中的物体?
  2. 空间问题: 机器人是否知道物体的位置、距离和几何关系?
  3. 控制问题: 机器人能否把理解结果变成平滑、连续、可执行的动作?

LingBot-VLA 并没有试图用一个单独的技巧解决所有问题,而是把这三类能力拆开处理,再放进一个统一的训练框架里。

2.2 论文真正想回答的问题是“数据继续增加还有没有用”

论文引言里有一个很关键的问题:

“How do VLA models truly scale with massive real-world robot data?”

翻译成更直白的话就是:VLA 模型面对越来越多的真实机器人数据时,到底会怎么扩展?

这个问题看起来有点像在问“数据越多是不是越好”,但其实没有那么简单。

语言模型里的数据虽然也很杂,但最终都可以转化成文本 token。机器人数据就麻烦得多:不同机器人有不同的关节数、不同的夹爪、不同的摄像头、不同的动作空间,甚至相同的“抓取”任务,动作轨迹也会完全不同。

因此,增加数据的同时,模型还得学会区分哪些差异只是机器人本体不同,哪些差异才是真正与任务相关的差异。比如:

  • 机械臂长度不同,是本体差异;
  • 杯子在桌面左边还是右边,是场景差异;
  • “把杯子放进盒子里”,才是任务语义。

这也就是跨具身形态(cross-embodiment)学习要解决的问题。

三、预训练数据:不是一台机器人拍 2 万小时视频

3.1 9 种双臂机器人配置

论文说,LingBot-VLA 使用了来自 9 种双臂机器人配置、约 20,000 小时的真实世界数据

这 9 种配置包括 AgiBot G1、AgileX、Galaxea R1Lite、Galaxea R1Pro、Realman Rs-02、Leju KUAVO 4 Pro、Qinglong、ARX Lift2 和 Bimanual Franka。

它们的差别不只是名字不同。有些机器人有两个 6 自由度机械臂,有些是两个 7 自由度机械臂;有些使用头部和腕部摄像头,有些使用 RGB-D 或双目摄像头;还有的机器人是轮式平台,有的是双足人形平台。

换句话说,模型看到的不是“同一台机器人重复做了很多次动作”,而是很多不同的机器人在做操作任务。

这对泛化很重要。假设模型只在一种机械臂上训练,那么它很可能会把“机械臂当前的外观”和“任务本身”混在一起。加入更多机器人本体之后,模型不得不学习更加抽象的关系:目标在哪里、手应该怎样靠近、接触后动作如何变化。

3.2 为什么要把视频切成原子动作?

论文的数据标注分成两个步骤。

第一步是视频分段。人类标注员根据预定义的原子动作,把多视角机器人视频切成多个片段,并删除视频开始和结束位置的静态帧。

第二步是语言标注。论文使用 Qwen3-VL-235B-A22B,为完整轨迹和原子动作片段生成任务指令与子任务指令。

“原子动作”这个概念很值得解释一下。

比如,一条完整轨迹的任务是:

“把桌面上的餐具整理好。”

它可能被拆成:

  1. 找到盘子;
  2. 拿起盘子;
  3. 移动到指定位置;
  4. 放下盘子;
  5. 再处理下一个物体。

完整任务告诉模型“最终要做什么”,原子动作则告诉模型“当前这小段动作正在做什么”。这样做的好处是,模型不必把十几秒甚至几分钟的轨迹当成一个不可解释的整体,而是可以建立高层任务和低层动作之间的对应关系。

3.3 预训练数据究竟在学什么?

这里容易产生一个误解:既然最后要输出连续动作,为什么还需要语言标注?

原因是,VLA 的输入不是单纯图像,输出也不是单纯动作。任务指令本身就是一种重要的条件信息。更进一步,语言标签可以帮助模型把长任务拆成更容易学习的语义片段。

论文中关于架构的原话是:

“Multi-view operational images and the related task instruction are uniformly encoded through a VLM to establish multimodal conditioning for subsequent action generation.”

这里的 multimodal conditioning 可以理解为“多模态条件”。也就是,动作专家在生成动作之前,并不是只看某一帧图像,而是同时参考多路图像、任务指令和机器人状态。

四、模型结构:为什么需要 VLM 和 Action Expert 两条路径?

4.1 VLM 擅长理解,但不一定擅长直接控制机器人

LingBot-VLA 使用 Qwen2.5-VL 作为视觉语言骨干,同时引入一个动作生成模块,作者称之为 Action Expert

论文对这件事的描述是:

“LingBot-VLA integrates the pre-trained VLM, namely Qwen2.5-VL, with an initialized action generation module called the ‘action expert’.”

为什么不直接让 Qwen2.5-VL 输出动作?可以从动作的性质看出来。

语言是离散的。模型可以输出“抓住”“抬起”“放下”这些 token。机器人动作却通常是连续数值,例如关节角、末端位置、夹爪开合量和底盘速度,而且这些数值之间还要保持时间上的平滑。

如果简单地把动作也离散化成语言 token,确实可以借用语言模型成熟的 next-token prediction 训练方式,但动作的精细性和连续性可能会受到限制。

所以 LingBot-VLA 采用了一个折中的办法:

  • VLM 路径负责吸收图像和语言中的语义信息;
  • Action Expert 路径负责处理状态和动作块,专门学习连续动作生成;
  • 两条路径通过共享自注意力进行交互。

4.2 MoT 到底是什么?

这篇论文把两条路径组织成 Mixture-of-Transformers,简称 MoT

“Mixture-of-Transformers”不要简单理解成“两个 Transformer 串起来”。如果只是把 VLM 输出接到一个动作头上,那么信息通常只在某一个位置传递一次。MoT 的关键是:

视觉语言模态和动作模态使用不同的 Transformer 路径处理,但通过共享的 self-attention 机制进行逐层交互。

因此,在每一层里,VLM 路径都能给动作路径提供语义条件;动作路径也保留自己的参数和处理方式,不必强行让同一套网络同时承担语义理解和连续控制两种差异很大的任务。

论文认为,这样做有两个效果:

  1. VLM 的高层语义先验可以在多层网络中持续指导动作生成;
  2. 保留模态专属路径,可以减轻视觉语言建模和动作建模之间的相互干扰。

可以把它类比成两个人一起做事:一个人负责“看懂任务和场景”,另一个人负责“把任务变成具体动作”。他们每一步都交换信息,但不需要把两个人训练成完全一样的角色。

五、把论文中的公式逐个拆开

这一节比较重要。论文里的公式不算复杂,但如果只看公式本身,容易不知道每个符号到底对应机器人系统中的什么东西。

5.1 观测条件 O t \mathbf{O}_t Ot

论文把时刻 t t t 的观测写成:

O t = [ I t 1 , I t 2 , I t 3 , T t , s t ] \mathbf{O}_t=[\mathbf{I}_t^1,\mathbf{I}_t^2,\mathbf{I}_t^3,\mathbf{T}_t,\mathbf{s}_t] Ot=[It1,It2,It3,Tt,st]

逐个解释:

  • t t t:当前时间步;
  • I t 1 , I t 2 , I t 3 \mathbf{I}_t^1,\mathbf{I}_t^2,\mathbf{I}_t^3 It1,It2,It3:三个摄像头在时刻 t t t 看到的图像,经过视觉编码器后变成图像 token;
  • T t \mathbf{T}_t Tt:任务指令,例如“把红色杯子放到托盘里”;
  • s t \mathbf{s}_t st:机器人状态,也就是本体感知信息,例如关节状态、末端状态或动作空间中使用的状态变量;
  • O t \mathbf{O}_t Ot:把这些信息合在一起之后,模型在时刻 t t t 对环境和机器人的完整观测。

这里的 s t \mathbf{s}_t st 不是场景图像,而是机器人自身的状态。机器人“看见杯子”属于图像信息;机器人“自己的手臂当前弯曲到什么位置”,属于本体感知信息。两者缺一不可。

5.2 动作块 A t \mathbf{A}_t At

对应的动作序列写成:

A t = [ a t , a t + 1 , … , a t + T − 1 ] \mathbf{A}_t=[\mathbf{a}_t,\mathbf{a}_{t+1},\dots,\mathbf{a}_{t+T-1}] At=[at,at+1,,at+T1]

这里:

  • a t \mathbf{a}_t at:时刻 t t t 的单步动作向量;
  • T T T:动作块长度,也就是一次生成多少个连续时间步;
  • A t \mathbf{A}_t At:从 t t t 开始的一整段动作轨迹;
  • 论文预训练阶段设置 T = 50 T=50 T=50

为什么要输出动作块,而不是只输出一个动作?

因为机器人动作本来就具有时间连续性。单步预测很容易让相邻时刻的动作变化不够平滑;输出一段动作,可以让模型在生成时同时考虑这一小段轨迹的整体形状。

但要注意,“输出动作块”不等于机器人一次性盲目执行 50 步。实际系统通常会执行其中一部分,然后重新读取图像和状态,再滚动预测下一段动作。这就是常说的 receding-horizon 或滚动控制思想。

5.3 Flow Matching 中的中间动作

LingBot-VLA 用 Flow Matching 建模 p ( A t ∣ O t ) p(\mathbf{A}_t\mid\mathbf{O}_t) p(AtOt)。训练时,论文从高斯噪声 ϵ \epsilon ϵ 和真实动作 A t \mathbf{A}_t At 之间做线性插值:

A t , s = s A t + ( 1 − s ) ϵ , s ∈ [ 0 , 1 ] \mathbf{A}_{t,s}=s\mathbf{A}_t+(1-s)\epsilon,\quad s\in[0,1] At,s=sAt+(1s)ϵ,s[0,1]

这里的 s s s流时间步,不要和上面机器人状态里的 s t \mathbf{s}_t st 混淆。为了避免符号混乱,也可以把它理解成一个从 0 走到 1 的进度条:

  • s = 0 s=0 s=0 时, A t , s = ϵ \mathbf{A}_{t,s}=\epsilon At,s=ϵ,基本是噪声;
  • s = 1 s=1 s=1 时, A t , s = A t \mathbf{A}_{t,s}=\mathbf{A}_t At,s=At,就是目标动作;
  • 中间的 s s s 表示当前动作处在“从噪声走向真实轨迹”的哪个阶段。

动作专家 v θ v_\theta vθ 要学的是:给定当前这份带噪动作、观测条件和流时间步,下一步应该往哪个方向移动。

因此,论文使用如下 Flow Matching 损失:

L F M = E s , A t , ϵ ∥ v θ ( A t , s , O t , s ) − ( A t − ϵ ) ∥ 2 \mathcal{L}_{\mathrm{FM}}= \mathbb{E}_{s,\mathbf{A}_t,\epsilon} \left\|v_\theta(\mathbf{A}_{t,s},\mathbf{O}_t,s)- (\mathbf{A}_t-\epsilon)\right\|^2 LFM=Es,At,ϵvθ(At,s,Ot,s)(Atϵ)2

逐项解释:

  • L F M \mathcal{L}_{\mathrm{FM}} LFM:Flow Matching 的训练损失;
  • v θ ( ⋅ ) v_\theta(\cdot) vθ():参数为 θ \theta θ 的动作专家,输出一个向量场;
  • A t , s \mathbf{A}_{t,s} At,s:当前带噪动作;
  • O t \mathbf{O}_t Ot:当前图像、指令和机器人状态;
  • s s s:当前流时间步;
  • A t − ϵ \mathbf{A}_t-\epsilon Atϵ:理想的移动方向,也就是从噪声指向真实动作的方向;
  • ∥ ⋅ ∥ 2 \|\cdot\|^2 2:预测方向和目标方向之间的平方误差。

这条公式说白了就是:给动作专家一份不完整、不干净的动作轨迹,让它学会判断“应该朝哪个方向修正”,最后把噪声一步步变成可执行动作。

5.4 为什么 Flow Matching 适合机器人?

机器人动作通常不是几个离散选项,而是连续变化的轨迹。比如机械臂从桌面右侧移动到杯子上方,轨迹中每一个时间点的位置都可能不同。

Flow Matching 建模的是一条连续的生成过程,最后得到的也是连续动作块。它并不要求模型把动作硬切成“向左一点”“向右一点”这样的离散类别,所以更适合表达细粒度的空间运动和速度变化。

六、注意力掩码:看起来是细节,实际上决定信息怎么流

LingBot-VLA 遵循 π₀ 的设计,使用分块因果注意力。联合序列大致分为三个块:

Block 1: [三个视角的图像 token + 任务指令]
Block 2: [机器人状态]
Block 3: [动作块]

分块之后,注意力规则是:同一块内部可以双向关注;后面的块可以关注前面的块;前面的块不能反过来偷看后面的动作。

为什么不能让所有 token 随便互相看?

因为如果观测 token 能够看到未来动作,训练时就可能发生信息泄漏:模型不是根据图像和状态推断动作,而是直接从动作答案里“抄答案”。这种模型离开训练数据之后,通常会表现得很差。

反过来,动作专家必须能够看到完整的观测信息。它只有知道任务指令、场景图像和机器人当前状态,才可能生成正确动作。

七、空间蒸馏:VLA 为什么还需要另一个深度模型?

7.1 RGB 图像能看懂物体,但不一定能精确判断距离

语言和 RGB 图像很擅长告诉我们“这是什么”。但机器人操作还需要更精确的几何信息。

比如,“把方块放到盒子里”这句话里面,真正决定成功率的是:

  • 方块离夹爪还有多少距离;
  • 夹爪和方块的相对方向;
  • 盒子的开口高度;
  • 放下时是否已经对齐。

这些信息和深度、空间关系密切相关。

所以 LingBot-VLA 引入 LingBot-Depth 的深度表征,并通过可学习查询进行空间蒸馏。

7.2 查询式深度蒸馏怎么做?

对三个视角分别设置可学习查询:

[ Q t 1 , Q t 2 , Q t 3 ] [\mathbf{Q}_t^1,\mathbf{Q}_t^2,\mathbf{Q}_t^3] [Qt1,Qt2,Qt3]

这些查询先经过 VLM,再与 LingBot-Depth 输出的深度 token 对齐:

[ D t 1 , D t 2 , D t 3 ] [\mathbf{D}_t^1,\mathbf{D}_t^2,\mathbf{D}_t^3] [Dt1,Dt2,Dt3]

论文给出的蒸馏损失是:

L d i s t i l l = E Q t ∣ Proj ⁡ ( Q t ) − D t ∣ \mathcal{L}_{\mathrm{distill}} =\mathbb{E}_{\mathbf{Q}_t} \left|\operatorname{Proj}(\mathbf{Q}_t)-\mathbf{D}_t\right| Ldistill=EQtProj(Qt)Dt

这里的变量含义是:

  • Q t \mathbf{Q}_t Qt:VLA 中可学习的视觉查询;
  • D t \mathbf{D}_t Dt:LingBot-Depth 提供的深度 token;
  • Proj ⁡ ( ⋅ ) \operatorname{Proj}(\cdot) Proj():投影层,用于把两边的特征映射到可以比较的维度;
  • L d i s t i l l \mathcal{L}_{\mathrm{distill}} Ldistill:让 VLA 查询表征接近深度模型表征的蒸馏损失。

这并不是把一张深度图粗暴地拼到 RGB 图像后面。更准确地说,是让 VLA 的视觉查询学会携带深度模型中的空间先验。

八、训练系统:大规模机器人学习首先也是一个工程问题

论文的训练效率部分容易被忽略,但其实它说明了 LingBot-VLA 的目标并不只是“在一个小数据集上证明模型有效”。作者希望这套模型能在大规模真实机器人数据上持续训练,因此必须把系统做得足够快。

8.1 分布式训练和混合精度

LingBot-VLA 使用 FSDP 对优化器状态、模型参数和梯度进行分片,减少每张 GPU 需要保存的数据量。

论文还为 Action Expert 构建了专门的 shard group。这里的考虑是:如果所有参数都采用同样的分片方式,虽然显存可能降下来了,但通信开销可能变得很大。对动作专家单独组织分片组,可以在显存和通信之间做更合适的权衡。

精度方面,存储和通信使用 bfloat16,归约操作使用 float32。简单说就是:大部分地方用更省显存、更快的格式,涉及聚合和数值稳定性的地方仍然使用更高精度。

8.2 FlexAttention 和 torch.compile

视觉、语言、动作一起建模时,注意力并不是完全稠密的。前面讲到的分块因果注意力,本身就意味着不同 token 之间的连接存在结构。

因此,作者使用 FlexAttention 优化注意力计算,并使用 torch.compile 做算子融合,减少 kernel 启动开销。

论文报告的结果是:在 8 张 GPU 的设置下,代码库达到 261 samples/s 的训练吞吐量;根据基础 VLM 不同,相比其他 VLA 代码库,速度提升约 1.5–2.8 倍。

这里的意义不只是“训练快了一个百分比”。如果模型要从 3,000 小时扩展到 20,000 小时,训练系统效率会直接影响研究者是否有能力做更多组实验。

九、实验评估:作者是怎么证明模型有效的?

9.1 先看真实世界 GM-100

论文使用 GM-100 进行大规模真实机器人评估。正文 5.1 节给出的实验设置是:

  • 4 个机器人平台;
  • 25 台实体机器人;
  • 100 个操作任务;
  • 39,000 条专家示范;
  • 22,500 次受控试验。

四个平台是 AgileX、Agibot G1、Galaxea R1Pro 和 Leju KUAVO 4 Pro。它们都采用双臂配置和并联夹爪,并配备头部与腕部摄像头。

这里有一个值得说明的小细节:论文摘要和图 1 的文字说明里出现过“三种具身形态”的说法,但正文实验设置和表 1 实际报告的是四个平台。下面的结果按照正文 5.1 和表 1 的四平台口径整理。

9.2 为什么每个任务要收集 150 条、最后只保留 130 条?

每个 GM-100 任务先采集 150 条原始轨迹,再根据任务完成度、运动平滑性和协议遵循程度排序,保留质量最高的 130 条用于训练。

这一步看起来很“工程”,其实关系到比较是否公平。如果一个模型使用质量很差的示范训练,最后的性能差异就不一定来自模型结构,也可能只是训练数据不一致。

作者还随机化每条轨迹中的物体位置和朝向,并对数据进行自动筛选和人工复核,排除技术异常、额外物体和不符合任务协议的回合。

9.3 SR 和 PS 分别代表什么?

论文使用两个指标。

成功率 SR(Success Rate):在 3 分钟时间限制内完成任务全部步骤的试验比例。

进度得分 PS(Progress Score):按照任务中的子任务检查点,统计机器人在终止之前完成了多少比例的步骤。

举个论文中的类似例子。假设“堆叠碗”由 6 个步骤组成,机器人完成了前 4 步,在第 5 步失败,那么:

P S = 4 6 ≈ 0.67 \mathrm{PS}=\frac{4}{6}\approx0.67 PS=640.67

这时 SR 是 0,但 PS 不是 0。

这两个指标要一起看。SR 更像“最终有没有交付”;PS 更像“失败之前已经走了多远”。对长时序机器人任务而言,只看 SR 会丢掉很多有价值的信息。

9.4 GM-100 的结果

论文报告的平均结果如下:

方法成功率 SR进度得分 PS
WALL-OSS3.85%10.70%
GR00T N1.67.31%16.66%
π₀.₅13.00%27.32%
LingBot-VLA(无深度)16.20%34.32%
LingBot-VLA(有深度)16.87%35.16%

在这里插入图片描述

图:GM-100 上不同方法的成功率与进度得分对比。

从表面上看,LingBot-VLA 有深度版本相比 π₀.₅ 的平均 SR 提高了 3.87 个百分点,PS 提高了 7.84 个百分点。论文另外按照三种具身形态统计时,报告的平均提升为 SR 4.28%、PS 7.76%。这里两个数字的统计口径不同,不能直接混用。

深度信息的作用也不是“所有任务都一定提升”。从逐任务结果看,有些任务无深度版本更好,有些任务加入深度后提升明显。比较合理的理解是:深度信息主要帮助那些对距离、位置和接触关系更敏感的操作任务。

9.5 仿真结果:随机场景中差距更明显

在 RoboTwin 2.0 上,作者测试了 50 个代表性双臂操作任务,并设置了干净场景和高度随机化场景。

场景π₀.₅LingBot-VLA 无深度LingBot-VLA 有深度
干净场景82.74%86.50%88.56%
随机场景76.76%85.34%86.68%

随机化包括背景、桌面杂物、桌面高度和光照。可以看到,π₀.₅ 从干净场景到随机场景下降了 5.98 个百分点,而 LingBot-VLA 有深度版本下降了 1.88 个百分点。

这不是说仿真就等同于真实世界,而是说明:当环境外观和空间条件发生变化时,跨本体数据和空间表征可能确实帮助模型学到更稳定的任务相关特征。

十、扩展实验:20,000 小时是不是已经够多了?

论文从预训练数据中选取 25 个代表性任务,把预训练数据规模从 3,000 小时逐渐增加到 20,000 小时。

在这里插入图片描述

图:随着预训练数据规模扩大,成功率整体持续上升。

作者观察到,成功率和进度得分都随着数据规模扩大而持续上升,即使到了 20,000 小时也没有看到明显饱和。

这条结论很重要,但也应该谨慎理解。它并不是说“只要无限加数据,性能就一定无限提升”,而是在论文测试到的 3,000–20,000 小时范围内,暂时还没有看到收益停止。

此外,Agibot G1、AgileX 和 Galaxea R1Pro 三种机器人上的趋势总体一致,所以作者认为这不是某一个机器人平台的偶然现象。

十一、数据效率:预训练的价值,是让后训练少用一点数据

基础模型的价值,不能只看它在预训练数据覆盖过的任务上能不能做得好,更要看它换到下游任务时需要多少示范。

作者在 Agibot G1 上选取 GM-100 的 8 个任务进行后训练数据效率实验。结果显示:LingBot-VLA 每个任务只使用 80 条示范,就超过了使用完整 130 条示范训练的 π₀.₅。

这个结果可以换一种说法:LingBot-VLA 的预训练不是把所有任务都记住,而是让模型学到了一些能够迁移到下游的表征,因此后续适配新任务时,不必从头收集那么多数据。

十二、我认为这篇论文最值得记住的地方

12.1 它把“跨本体”真正当成了数据问题和系统问题

很多论文会在模型结构里讨论跨机器人泛化,但 LingBot-VLA 的做法很直接:先用 9 种机器人采集大量真实数据,再想办法让模型在统一动作建模框架下处理这些差异。

这条路线不一定最“新颖”,却非常符合真实机器人项目的情况:模型再漂亮,没有足够多、足够干净、足够多样的数据,最后还是很难工作。

12.2 它没有把连续动作强行塞进语言 token

语言模型的 next-token prediction 很强大,但机器人动作的连续性和几何约束不能被忽略。LingBot-VLA 在预训练表示和连续动作生成之间使用 Action Expert + Flow Matching,实际上是在承认一个事实:语义 token 和控制轨迹不是同一种东西。

12.3 它把空间感知放到了表征学习里

深度信息不是简单拼接到输入末尾,而是通过 learnable query 和 distillation loss 对齐到 VLA 的视觉表示中。

这样做的关键思想是:不单独训练一个“看到深度才会控制”的模块,而是让视觉语言模型的查询本身具备更多空间含义。

12.4 它把 PS 作为一个重要指标

机器人任务经常不是“全对”或者“全错”。如果一个模型已经完成了 80% 的任务,只是最后一步没有放稳,那么把它和第一步就失败的模型都记作 0,会损失很多信息。

SR 适合衡量最终可交付性,PS 适合分析策略在长链路中的失败位置。两者一起报告,比只报成功率更适合真实机器人评测。

十三、局限和需要继续追问的问题

这篇论文的实验规模已经很大,但仍然有几个问题值得保留:

  1. 主要评估仍然是桌面双臂操作,机器人底盘和腰部固定,距离真正开放环境中的移动操作还有差距。
  2. 9 种机器人配置虽然丰富,但不同平台上的数据量和任务分布并不完全相同,跨本体收益可能会受到数据比例影响。
  3. 深度信息在平均指标上带来了提升,但并不是每一个任务都提升,空间蒸馏的收益仍然依赖任务类型。
  4. RoboTwin 2.0 的仿真结果很高,不能直接当成真实世界成功率;真实部署还要面对传感器噪声、控制延迟、标定误差和安全约束。
  5. 论文展示了 20,000 小时范围内的持续收益,但更大规模数据是否继续保持同样趋势,还需要后续实验验证。

所以,比较稳妥的总结不是“LingBot-VLA 已经解决了通用机器人问题”,而是:

这篇工作说明,大规模真实数据、跨机器人训练、连续动作生成和空间先验结合起来,确实能够让 VLA 更接近可迁移、可部署的基础模型;但它距离开放世界里的通用机器人,仍然有很长的路。

十四、最后总结

LingBot-VLA 先收集了 9 种双臂机器人约 20,000 小时的真实操作数据,试着让模型不要只记住某一台机器人的动作方式。模型内部使用 Qwen2.5-VL 负责视觉和语言语义,使用 Action Expert 负责连续动作生成,两个部分通过 MoT 结构逐层交互。动作生成部分采用 Flow Matching,把噪声逐步变成一段可执行的连续动作轨迹。为了让机器人更会判断距离和空间关系,作者又从 LingBot-Depth 中蒸馏深度表征。最后,再通过 FSDP、混合精度、FlexAttention 和算子融合,把大规模训练的成本压下来。

论文给出的实验结论是:在 GM-100 真实世界基准和 RoboTwin 2.0 仿真基准上,LingBot-VLA 整体优于对比方法;预训练数据从 3,000 小时增加到 20,000 小时,性能仍然持续提升;下游后训练也表现出更好的数据效率。

这篇论文真正有价值的地方,可能就在于它没有只回答“这个模型结构能不能工作”,而是进一步追问:

数据再多一点会怎样?换机器人会怎样?空间信息加进来会怎样?训练速度能不能支撑下一轮扩展?

对于现在仍然处在快速发展阶段的 VLA 领域来说,这些问题或许比再增加一个模型模块更值得长期关注。

参考资料

说明:本文中的实验数字、公式和模型设置整理自论文及项目材料;文中的解释、类比和变量说明是为了帮助读者读懂原论文,不替代论文中的完整定义、实验协议和附录结果。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐