A Pragmatic VLA Foundation Model

Paper: arXiv:2601.18692 Code: Robbyant/lingbot-vla Code reference: main @ 46690e3a (2026-05-12)

1. Motivation (研究动机)

VLA 在真实机器人 manipulation 上的核心难点有两类:一是能力层面,模型要能跨任务、跨平台泛化,而不是只在某个数据量充足的机器人上工作;二是工程层面,大规模真实机器人数据昂贵,训练吞吐低会直接限制 scaling study 和实际迭代速度。论文指出,社区缺少对“真实机器人数据规模增大时 VLA 是否持续变好”的系统实证,也缺少能高效训练这些模型的 open codebase。 本文要解决的具体问题是:在 9 种主流双臂机器人配置、约 20,000 小时真实数据上训练一个可实用 post-training 的 VLA foundation model,并用 GM-100/RoboTwin 等严格协议评估其跨平台表现、data scaling、data efficiency 和 training throughput。作者把 LingBot-VLA 定位为 pragmatic:不仅要 benchmark 分数高,还要 post-training 成本低、代码高效、权重/数据/benchmark 可用。 这个问题值得研究,因为真实机器人部署经常受制于 post-training data budget。若一个 base VLA 在 130 条/任务甚至 80 条/任务的少量数据下就能比强 baseline 更好,那么它能显著降低新机器人/新任务落地成本。

1.1 读这篇论文时的三个问题

真实数据是否真的 scale:论文不是只报告一个 final SOTA,而是把 pre-training data scale 与 post-training data scale 分开测,试图回答真实机器人数据从小到大是否仍有可预测收益。 foundation model 是否能降低迁移成本:GM-100 中每个任务只给 130 条 filtered trajectories,RoboTwin 中甚至强调 80 条/任务,这使评测更接近“拿已有 base model 快速适配新场景”的需求。 开源系统是否足够可复现:作者同时给出模型、训练脚本、post-training configs、RoboTwin evaluation、norm stats 和 deployment wrapper,因此这篇 note 需要把 paper claim 与 released code 对齐,而不是只复述论文图表。

1.2 与常见 VLA 论文的不同切入点

许多 VLA 工作强调“更强 VLM backbone + action head”,但 LingBot-VLA 更强调 data/program/benchmark 的组合:同一套真实双臂数据、同一 post-training budget、同一评测顺序,才能判断 base model 是否真的更好。 论文的 pragmatic 含义不是“架构保守”,而是把可部署性作为约束:训练吞吐要支撑 20,000 小时数据,action space 要覆盖多平台,depth 设计不能让部署依赖昂贵深度传感器。 对 physical AI 方向来说,这个 work 的价值在于把 VLA scaling 从 web-scale multimodal pretraining 的叙事拉回 robot data:机器人数据更贵、更窄、更受平台限制,因此每个 benchmark gain 都要结合数据预算解释。

Figure 1 解读:总览图展示了 LingBot-VLA 的完整闭环:真实双臂机器人数据采集、automatic annotation + human refinement、Unified Action Space、可选 depth query、Understanding Expert 与 Action Expert,以及跨 Agibot G1 / AgileX / Galaxea R1Pro 的 real-world deployment。该图的重点是“pragmatic”:模型、数据、训练系统、benchmark 同时设计,而不是只提出新 architecture。

2. Idea (核心思想)

核心 insight:真实 VLA scaling 不能只看模型结构,还要把 data scale、post-training protocol、robot platform consistency 和 training throughput 作为同一个系统优化。LingBot-VLA 的贡献是用 20,000 小时真实双臂数据训练 Qwen2.5-VL based MoT policy,再用统一评测协议证明数据规模和 depth distillation 都能稳定提升下游性能。

关键创新可以概括为:大规模真实双臂数据 + conditional flow matching action expert + depth token distillation + 高吞吐 FSDP2/FlexAttention 训练栈。depth 不是直接把深度图作为输入通道,而是用 learnable queries 与 LingBot-Depth token 对齐,把空间几何信息蒸馏进 VLM representation。

、GR00T N1.6、WALL-OSS 相比,LingBot-VLA 的主要差别不是单一模块更复杂,而是评测和训练协议更接近真实应用:所有模型都用同样 130 filtered trajectories per task、batch size 256、20 epochs 进行 post-training,并在同一 robot-task pair 上随机顺序评测。

2.1 核心 insight 的展开

Action as continuous generation:模型不是把 action 离散化成 token 后做 next-token prediction,而是让 action expert 学习 continuous action chunk 的 velocity field;这更适合高维双臂状态、末端位姿和夹爪控制。 Geometry as representation supervision:depth 版本没有要求 inference 时额外输入 depth map,而是在训练期用 LingBot-Depth token 约束 learnable image queries;这让 depth signal 更像 representation shaping,而不是换传感器假设。 Benchmark as system audit:GM-100、RoboTwin、data scaling 和 throughput scaling 分别检查不同 failure mode:真实部署、仿真泛化、数据效率、系统吞吐。四者一起才支持“foundation model”这个称呼。

2.2 论文贡献可以分成四层

  1. Data layer:约 20,000 小时真实 dual-arm manipulation,覆盖 9 种主流双臂机器人配置,并通过 automatic annotation + human refinement 获得语言任务描述。
  2. Model layer:Qwen2.5-VL representation + action expert 的 MoT-style shared attention,用 conditional flow matching 预测 future action chunk。
  3. Auxiliary supervision layer:depth-distilled variant 通过 learnable queries 对齐 LingBot-Depth tokens,把空间几何信息注入 policy representation。
  4. Engineering layer:released training stack 用 FSDP2、module FSDP、Torch Compile、FlexAttention 等实现高吞吐 post-training,并给出真实和仿真 configs。

3. Method (方法)

3.1 Overall framework

LingBot-VLA 基于 Qwen2.5-VL 的视觉语言表示,加入 action expert,以 Mixture-of-Transformers 风格让 VLM 与 action module 在 shared self-attention 中交互。每个时间步 的输入由三视角图像、语言任务、机器人状态组成,输出为未来 action chunk。模型有 depth-free 与 depth-distilled 两个版本;后者额外使用 LingBot-Depth 的 token 作为空间教师信号。

Figure 2 解读:该图展示预训练数据的机器人平台、视角与任务分布。LingBot-VLA 的数据不是 simulation,而是约 20,000 小时真实 dual-arm manipulation,来自 9 种机器人配置。对论文结论最关键的是这些数据覆盖 Agibot G1、AgileX、Galaxea R1Pro 等后续评测平台,因此模型能同时测试 cross-task 与 cross-platform generalization。

Figure 3 解读:数据标注流程先由人类把多视角视频切成 atomic action clips,去掉冗余静止片段,再用 Qwen3-VL-235B-A22B 生成 task/sub-task instructions,最后由人工 refinement 校验。这个流程让大规模真实数据获得可用于 VLA post-training 的语言监督。

3.1.1 Data and action representation details

论文的 observation 不是单视角图像,而是三路 operational images;这对应真实双臂平台常见的外参/遮挡问题:单一视角可能看不到另一只手、目标物背面或桌面接触关系。 State vector 与 future action chunk 共同进入模型:state 给出当前机器人构型,action chunk 则要求模型一次生成一段未来轨迹,而不是逐控制周期自回归输出一个动作。 Unified Action Space 的作用是把不同机器人平台的动作维度、关节/末端表示和夹爪状态映射到统一上限;released config 中 max_action_dim=75max_state_dim=75 体现了这个实现约束。 数据标注中的 atomic action clips 很关键:如果用长视频直接配粗粒度 instruction,action expert 会看到大量静止/过渡片段,flow matching 会把“保持不动”学成主要模式;clip 过滤让训练目标更接近真实操作 primitive。 自动生成 instruction 后再人工 refinement,是为了避免 VLM annotation 把“正在做什么”说得太泛。VLA post-training 需要 task/sub-task 与动作片段严格对齐,否则语言条件会变成弱噪声。

3.1.2 Released code 对应的输入路径

lingbotvla/data/vla_data/base_dataset.py 负责把 LeRobot-style dataset 接到训练管线,并结合 robot config 与 normalization statistics。 lingbotvla/data/vla_data/transform.py 对 state/action 做 meanstdbounds_99 或 identity 归一化;这解释了为什么配置中的 data_name 必须和计算 norm stats 的 robot config 文件一致。 lingbotvla/data/data_transform.py 的 collator 明确包含 stateimageslang_tokenslang_masksactionsaction_is_pad 等字段;这些字段正好对应论文中的 observation/action sequence。 tasks/vla/train_lingbotvla.py 在 dataset 构造时把 use_depth_align 传入 VLADataset,因此 depth 版本不是单纯换模型权重,而是训练 loop、dataset 与 model forward 同时启用 depth alignment。

3.2 Joint sequence and flow matching objective

论文把 observation context 写为: 其中三路 是 dual-arm robot 的 operational images, 是 task instruction, 是 robot state。对应 action chunk 为: 预训练阶段 。对 flow timestep 、噪声 ,论文定义: Action expert 的 Flow Matching loss 为: Blockwise causal attention 把 joint sequence 划分为 image/text block、state block 和 action block。同一 block 内双向 attention,不同 block 只能看当前与之前 block,从而允许 action expert 利用 observation knowledge,同时防止 future action token 泄漏到当前 observation representation。

3.2.1 为什么用 flow matching

Action chunk 是连续控制向量,直接分类会引入离散化误差;flow matching 把真实 action 与 Gaussian noise 之间的路径建模为 velocity prediction,天然适合连续 action。 与纯 diffusion sampling 相比,flow matching 训练目标可以写成简单的 MSE velocity loss;released code 中 predict_velocityget_action 的 Euler integration 对应 paper 中的 action expert velocity field。 训练时 sampled timestep 让模型看到从 pure noise 到 near-action 的不同噪声强度;这避免模型只学局部回归,也让 inference 可以从随机 action 初始化逐步积分到 action chunk。 action_is_pad 的存在说明 action chunk 有 padding/mask 处理:不同样本的有效 action horizon 或维度可能不完全一致,loss 需要只在有效动作上计算。

3.2.2 Attention mask 的作用

Image/text block 提供语义和视觉 grounding;state block 提供机器人当前构型;action block 预测未来轨迹。三者共享 attention,但 mask 让信息流保持因果结构。 同一 block 内允许 bidirectional attention,适合多视角图像 patch、语言 token 或 action chunk 内部的相互协调;不同 block 只能看过去,避免 action target 泄漏回 observation。 这个设计比“VLM embedding 后接 MLP action head”更强:action expert 可以在 transformer 内部反复读取视觉语言 token,而不是只拿一个 pooled representation。 代码里的 make_att_2d_masksembed_prefixembed_suffixfill_kv_cache=True 正对应这种 prefix/suffix 分离:inference 时 prefix cache 只算一次,action suffix 在 Euler steps 中反复更新。

3.3 Depth distillation

Depth 版本使用 learnable queries 对应三视角图像,并与 LingBot-Depth 的 depth tokens 对齐。蒸馏目标为: 其中 使用 cross-attention 做维度对齐。这个设计的直觉是:机器人 manipulation 的失败常来自空间关系不准,例如抓取深度、遮挡、左右手相对位置;depth teacher 提供 geometry prior,但部署时仍由 VLA 的 learned query representation 使用这些信息。

3.3.1 Depth supervision 的训练路径

Released training loop 中,align_params 非空时启用 use_depth_align,并通过 build_depth_model 构建 MoGe/MoRGBD depth teacher。 每个 micro-batch 会从原始 PIL images 中调用 get_depth_target 得到 depth_targets 与 image-level token,然后把这些 targets 传入 model(..., depth_targets=depth_targets)。 模型 forward 返回 loss, vla_loss, depth_loss, loss_log, depth_preds;训练 loop 会分别 all-reduce total_vla_losstotal_depth_loss,并写入 TensorBoard scalar。 Config 中 depth 版本的 depth_loss_weight=0.004,说明 depth 是辅助正则项而不是主目标;过大可能让 representation 过分追逐 depth teacher,过小则几何信息不足。

3.3.2 直觉与风险

直觉上,depth distillation 对遮挡、堆叠、双臂相对位置更有帮助;这些 case 中 RGB VLM 可能知道“拿杯子”,但不知道末端该沿哪个深度方向接近。 由于 depth target 来自 teacher model,收益取决于 teacher 对真实机器人相机域的泛化;若相机畸变、反光物体或透明物体导致 depth 错误,distillation 也会把偏差注入 policy。 论文把 depth 设计成可选版本是合理的:deployment 可以先用 depth-free base 做低成本适配,再在空间敏感任务上测试 depth-distilled checkpoint。

3.4 Efficient training stack

论文强调 codebase 吞吐:8-GPU setup 达到 261 samples/s,相比已有 VLA codebase 有 1.5–2.8× speedup。released config 使用 FSDP2、module FSDP、Torch Compile,并在 Qwen2.5-VL-3B- 与 PaliGemma-3B-pt-224- 两类模型上比较 8/16/32/128/256 GPUs 的 scaling。

Figure 4a 解读:该图展示 Qwen2.5-VL-3B- setting 下不同 GPU 数的 training throughput。曲线接近 theoretical linear scaling,说明作者的系统贡献不是附属项,而是支撑 20,000 小时真实数据 scaling 的必要条件。

3.4.1 系统实现要点

configs/vla/real_load20000h.yaml 使用 data_parallel_mode: fsdp2module_fsdp_enable: truemicro_batch_size: 32gradient_accumulation_steps: 1,8 GPU 时对应 global batch size 256。 Real post-training config 设置 lr=5e-5max_steps=40000;RoboTwin config 设置 lr=1e-4max_steps=20000,说明仿真任务 post-training 更短、更偏快速适配。 train.sh 通过 torchrun 启动多卡训练,并根据 GPU 数设置分布式参数;这也是 codebase 能作为用户复现实验入口的原因。 Training throughput 不是单纯工程指标:如果一个方法每次 ablation 都要极高成本,data scaling 和 post-training data efficiency 的结论就很难被社区验证。

3.5 Pseudocode (based on released code)

论文公式与 released code 实现差异:论文公式使用 、target ;released code modeling_lingbot_vla.py 使用 x_t = time * noise + (1 - time) * actionsu_t = noise - actions,推理时 dt=-1/num_stepstime=1 的 noise 积分到 action。两者是时间方向相反的等价约定,但符号看起来相反,笔记中不能静默对齐。

import torch
 
def lingbot_flow_matching_loss(model, images, img_masks, state, lang_tokens, lang_masks, actions):
    """Mirrors QwenvlWithExpertModel.forward in released LingBot-VLA code."""
    noise = torch.randn_like(actions)
    time = model.sample_time(actions.size(0), actions.device).to(actions.dtype)
    time_expanded = time[:, None, None]
 
    # Code convention: time=1 is noise, time=0 is data.
    x_t = time_expanded * noise + (1.0 - time_expanded) * actions
    u_t = noise - actions
 
    prefix_embs, prefix_pad_masks, prefix_att_masks = model.embed_prefix(
        images, img_masks, lang_tokens, lang_masks, vlm_causal=False, label=None
    )
    time_embs, suffix_embs, suffix_pad_masks, suffix_att_masks = model.embed_suffix(state, x_t, time)
    outputs, suffix_out = model.qwenvl_with_expert.forward(
        inputs_embeds=[prefix_embs, suffix_embs],
        attention_mask=model.make_blockwise_mask(prefix_pad_masks, suffix_pad_masks),
        position_ids=model.make_position_ids(prefix_pad_masks, suffix_pad_masks),
        ada_cond=time_embs if model.config.adanorm_time else None,
    )
    pred = model.action_out_proj(suffix_out[:, -model.config.n_action_steps:])
    return ((pred - u_t) ** 2).mean()
import torch
 
def lingbot_depth_distill_loss(model, outputs_embeds, depth_targets, img_masks):
    """Reflects depth_emb_forward + align_params['depth_loss_weight']."""
    depth_loss, depth_preds = model.depth_emb_forward(outputs_embeds, depth_targets, img_masks)
    return depth_loss * model.config.align_params["depth_loss_weight"], depth_preds
import torch
 
@torch.no_grad()
def lingbot_euler_inference(model, images, img_masks, lang_tokens, lang_masks, state, num_steps=None):
    """Mirrors get_action: cache prefix once, integrate suffix velocity backward in time."""
    bsize = state.shape[0]
    num_steps = num_steps or model.config.num_steps
    x_t = torch.randn(bsize, model.config.n_action_steps, model.config.max_action_dim, device=state.device)
    prefix_embs, prefix_pad_masks, prefix_att_masks = model.embed_prefix(images, img_masks, lang_tokens, lang_masks, False)
    _, kv_cache = model.qwenvl_with_expert.forward(
        inputs_embeds=[prefix_embs, None],
        attention_mask=model.make_att_2d_masks(prefix_pad_masks, prefix_att_masks),
        fill_kv_cache=True,
        use_cache=True,
    )
    dt = torch.tensor(-1.0 / num_steps, device=state.device, dtype=state.dtype)
    time = torch.tensor(1.0, device=state.device, dtype=state.dtype)
    while time >= -dt / 2:
        v_t = model.predict_velocity(state, prefix_pad_masks, kv_cache, x_t, time.expand(bsize))
        x_t = x_t + dt * v_t
        time = time + dt
    return x_t

Code reference: main @ 46690e3a (2026-05-12) — pseudocode and mapping based on this commit

Paper ConceptSource FileKey Class/Function
Qwen2.5-VL + action expert MoTlingbotvla/models/vla/pi0/modeling_lingbot_vla.pyQwenvlWithExpertModel, QwenvlWithExpertConfig
Flow Matching action losslingbotvla/models/vla/pi0/modeling_lingbot_vla.pyforward, predict_velocity, get_action
Depth distillationlingbotvla/models/vla/pi0/modeling_lingbot_vla.py, tasks/vla/train_lingbotvla.pydepth_emb_forward, build_depth_model, align_params
Post-training configsconfigs/vla/real_load20000h.yaml, configs/vla/real_load20000h_depth.yamllr=5e-5, max_steps=40000, depth_loss_weight=0.004
RoboTwin configsconfigs/vla/robotwin_load20000h.yaml, configs/vla/robotwin_load20000h_depth.yamlloss_type=L1_fm, lr=1e-4, max_steps=20000
Data loadinglingbotvla/data/vla_data/base_dataset.pyLeRobotDataset, VLADataset
Launch wrappertrain.shtorchrun, GPU count from nvidia-smi / CUDA_VISIBLE_DEVICES

3.6 Code search notes

Code URL verified: https://github.com/Robbyant/lingbot-vla resolves to the same repository as the note’s lowercase link; default branch is main. github_ref verified against GitHub API and local shallow clone: main@46690e3a, full SHA 46690e3abfbc612fc1d0322ba7dc883a1081fe01, commit date 2026-05-12.

Key model file for this note is lingbotvla/models/vla/pi0/modeling_lingbot_vla.py; it defines QwenVLA_Config, QwenVLA, FlowMatching, QwenvlWithExpertModel, and the forward path returning VLA loss plus optional depth loss.

lingbotvla/schedulers/flow_match.py exposes the generic FlowMatchScheduler, but the VLA model’s training loss is implemented directly in the model forward path rather than only through the scheduler class.

tasks/vla/train_lingbotvla.py is the best entry point for reproduction because it wires together processor/model loading, dataset construction, depth teacher creation, gradient accumulation, all-reduce logging, checkpointing and TensorBoard metrics.

The config files are part of the paper claim: real_load20000h*.yaml and robotwin_load20000h*.yaml pin the learning rate, max steps, FSDP2 mode, max action/state dimension and optional depth alignment parameters used in the reported setup.

4. Experimental Setup (实验设置)

Datasets

Pre-training data:约 20,000 hours real-world dual-arm manipulation data,来自 9 popular dual-arm robot configurations。 GM-100 real-world benchmark:3 robotic platforms(Agibot G1、AgileX、Galaxea R1Pro),每个平台 100 tasks;post-training 使用每 task 130 filtered trajectories;evaluation 每 model 在同一 hardware-task pair 上随机顺序测试,每 task-robot pair 15 trials,时间限制 3 minutes。 RoboTwin 2.0 simulation:50 representative manipulation tasks;clean scenes 用 2,500 demonstrations(50/task),randomized scenes 用 25,000 demonstrations(500/task),包含背景、桌面杂物、桌高、光照变化。

Baselines

Real-world GM-100 对比 WALL-OSS、GR00T N1.6、、LingBot-VLA w/o depth、LingBot-VLA w/ depth。Simulation RoboTwin 2.0 对比 与 LingBot-VLA 两个版本。

Metrics

Success Rate (SR):3 分钟内完成全部 task steps 的 trial 比例。 Progress Score (PS):按 sequential subtask checkpoints 计算部分完成度;例如 6-step task 完成 4 步得 Training throughput:samples/s,用于比较 codebase scaling efficiency。

Training config

论文评测协议:所有 real-world baselines 都从公开 pretrained checkpoints 出发,使用相同 post-training pipeline;GM-100 使用 130 filtered trajectories per task,batch size 256,epochs 20。

Released config anchor:

LingBot-VLA real robot post-training

Config pathconfigs/vla/real_load20000h.yaml Modelrobbyant/lingbot-vla-4b,tokenizer Qwen/Qwen2.5-VL-3B-Instruct Data:3 cameras(camera_top, camera_wrist_left, camera_wrist_right),joints: arm.position:14, effector.position:2norm_type=meanstd Optimization:FSDP2,use_compile=truelr=5.0e-5,constant LR,micro_batch_size=32gradient_accumulation_steps=1,8 GPUs 时 global batch size 256,max_steps=40000save_steps=10000 Action/statemax_action_dim=75max_state_dim=75tokenizer_max_length=72,action expert enable_fp32=true

LingBot-VLA depth version

Config pathconfigs/vla/real_load20000h_depth.yaml Depth teachermoge_path=morgbd/moge2-vitb-normal.ptmorgbd_path=lingbot_depth/model_mdm_pre.pt Alignmentmode=querynum_task_tokens=8use_image_tokens=Trueuse_contrastive=Truecontrastive_loss_weight=0.3depth_loss_weight=0.004

RoboTwin post-training

Config pathsconfigs/vla/robotwin_load20000h.yamlconfigs/vla/robotwin_load20000h_depth.yaml Differencesloss_type=L1_fmlr=1.0e-4max_steps=20000norm_type=bounds_99norm_stats_file=assets/norm_stats/robotwin_50.json

5. Experimental Results (实验结果)

Real-world GM-100

PlatformWALL-OSS SR/PSGR00T N1.6 SR/PS SR/PSOurs w/o depth SR/PSOurs w/ depth SR/PS
Agibot G12.99 / 8.755.23 / 12.637.77 / 21.9812.82 / 30.0411.98 / 30.47
AgileX2.26 / 8.163.26 / 10.5217.20 / 34.8215.50 / 36.3118.93 / 40.36
Galaxea R1Pro6.89 / 14.1314.29 / 24.8314.10 / 26.1418.89 / 34.7120.98 / 35.40
Average4.05 / 10.357.59 / 15.9913.02 / 27.6515.74 / 33.6917.30 / 35.41

LingBot-VLA w/ depth 在平均 SR 上比 高 4.28 个百分点,PS 高 7.76 个百分点;w/o depth 也明显优于 WALL-OSS 与 GR00T N1.6。Galaxea R1Pro 上 GR00T N1.6 接近 ,论文解释为其 pre-training 中包含较多 Galaxea R1Pro data,说明结构相似的数据预训练对下游表现很关键。

Figure GM-100 解读:该图用双轴展示 real-world SR/PS,对应表 1 的核心结论。Depth 版整体最好,但不同平台上 depth 的收益不完全一致:Agibot G1 SR 略低于 w/o depth,PS 略高;AgileX 与 Galaxea R1Pro 上 depth 同时提升 SR/PS。

RoboTwin 2.0 simulation

Setting Avg. SROurs w/o depth Avg. SROurs w/ depth Avg. SR
Clean scenes82.74%86.50%88.56%
Randomized scenes76.76%85.34%86.68%

Clean scenes 中 depth version 比 高 5.82 个百分点;randomized scenes 中高 9.92 个百分点。w/o depth 也分别高 3.76 与 8.58 个百分点,说明模型本身的 pretraining/action expert 已经有效,depth distillation 进一步增强空间 robustness。

Figure RoboTwin 解读:图中 clean/randomized 两组结果都显示 LingBot-VLA 优于 ,且 randomized 场景提升更明显。这说明 depth/query alignment 对背景、杂物、桌高、光照变化带来的空间不确定性更有帮助。

Scaling and data efficiency

Figure 5 解读:预训练数据从 3,000 小时增加到 20,000 小时时,SR 持续上升,且 Agibot G1、AgileX、Galaxea R1Pro 的趋势大体一致。论文强调 20,000 小时处尚未看到明显饱和,这支持继续扩大 real-world robot data 的 scaling hypothesis。

Figure 6 解读:在 GM-100 中选 8 个任务、Agibot G1 平台上做 data-efficient post-training。论文文字指出:只用 80 demonstrations/task 时,LingBot-VLA 已经在 PS 与 SR 上超过使用 full 130 demonstrations 的 ;随着 post-training 数据增加,LingBot-VLA 与 的差距继续扩大。

Limitations

作者明确把 future research 指向更广泛的机器人形态:当前数据和评测主要集中在 dual-arm manipulation,后续需要整合 single-arm 和 mobile robotic data。另一个实际限制是,20,000 小时真实数据与 GM-100 评测虽然显著推进了真实机器人 VLA,但 SR 绝对值仍不高:最佳平均 SR 为 17.30%,说明在 100 个真实任务上的可靠完成率距离生产级部署仍有很大差距。