Skip to main content
SEEED STUDIO · 论文精读

LingBot-VA:从未来画面到机器人动作的因果世界模型

Causal World Modeling for Robot Control

  • 视频—动作生成
  • 因果历史
  • 真实反馈
  • 异步校正
arXiv阅读论文原文

机器人要拆开一个快递盒。当前相机能看见纸箱和小刀,却不能只凭一张图判断“封口已经划开了吗”“刀片是否推出”“刚才失败后应该重试哪一步”。如果模型只输出下一段手臂动作,视觉变化和动作后果之间的关系就要隐含在策略内部。

LingBot-VA 把这层关系显式放进生成过程:先在压缩的视频空间里预测接下来可能出现的状态,再据此生成动作,执行后用真实画面更新上下文。 困难也随之出现:想象画面可能不准确,视频生成需要时间,而机器人不能一直停下来等模型。本篇沿着“未来如何影响动作—真实反馈怎样纠正预测—计算怎样与执行配合”展开。

预备知识:预测画面与选择动作分别解决什么​

世界模型(world model) 学习环境如何变化。例如,夹爪抬起后,纸箱盖可能跟着移动,也可能因为没有抓牢而停在原处。这里的“世界”限定为相机可见的操作场景,不表示模型拥有完整、精确的物理模拟器。

逆动力学(inverse dynamics) 从状态变化反推动作:如果当前夹爪在箱盖外,而希望下一时刻抓住箱盖,那么应执行怎样的移动与闭合。相应地,前向动力学(forward dynamics) 从当前状态和给定动作预测后果。两者分别回答“怎样做到”和“做了会怎样”。

视频潜变量(video latent) 是视频 VAE 将画面压缩后的表示。模型主要在这种表示中预测,并不要求每次控制前先生成可播放的 RGB 视频。自回归(autoregressive,AR) 则表示后续生成依赖已有历史;本文按块生成连续变量,每块内部还要进行多次流匹配更新,并非像语言模型那样一次选一个离散词。

需要区分三个时间尺度:真实机器人执行时刻、视频/动作块的序号,以及把噪声逐步变成数据的生成时间。多做一次去噪更新不会自动多执行一个机器人动作。

摘要意译与批注​

摘要意译: 作者认为,除视觉语言预训练之外,视频世界建模也可以成为机器人学习的基础。为联合学习未来帧预测与策略执行,论文提出自回归扩散框架 LingBot-VA。其三个设计重点是:通过混合 Transformer 组织视觉与动作 token;用真实观测持续更新闭环 rollout;将动作预测与机器人执行异步配合。作者在仿真与实机任务中检验长程操作、后训练数据效率以及对新配置的泛化,并公开代码与模型。

批注: 第一项关心信息如何交换,第二项关心模型怎样接触真实环境,第三项关心生成耗时怎样进入控制流程。三者需要共同成立:画面预测更好不必然意味着动作更好,保存了历史也不保证能处理扰动,异步运行更不等于可以永远沿用旧预测。后文分别用机制和实验判断这些主张。

引言与相关工作:为什么把视频生成接进控制环​

引言第 1 段先指出一种学习负担:直接由观测预测动作时,场景语义、物理变化和运动控制主要通过同一套示范监督联系起来。作者将其称为表示纠缠,认为显式学习环境演化可能改善样本利用和泛化。这里关注的是动力学监督是否显式进入学习目标;使用历史观测的 VLA 也可以利用时间信息。

接下来的论证转向已有世界模型:交互式神经模拟器可以预测动作后果,视频与动作联合扩散可以利用两类监督,先生成目标画面的路线则可以给策略提供视觉目标。但若一次生成太长、后续不读真实反馈,预测会逐步偏离执行;若各块缺少持续上下文,也容易丢失先前操作状态。由此,作者选择按历史逐块预测,并通过缓存接入真实观测。

论文第 5 节将相关工作进一步分成视觉语言策略与机器人世界模型。后者可预测低维潜状态、三维点云或二维画面;LingBot-VA 属于视频生成路线,但计算在 VAE 潜空间中完成。其贡献不只是给策略增加一个视频辅助损失,而是让预测的未来表示在推理时参与动作生成。

“因果”在这里首先描述时间依赖与注意力可见范围。它让生成过程按可获得的信息组织,并不等价于通过干预实验辨识真实世界的因果关系,也不构成物理正确性的保证。原文第 3.2 节明确允许同一生成块内部使用双向注意力;因果边界主要落在历史与未来块之间。

总体流程:预测未来,再从变化中推断动作​

原论文图 2:视频潜状态、动作预测与真实观测反馈

读图 2 时,先区分上下两排:上排是模型预测的画面和动作,下排在块间提供真实观测与已执行动作。右侧下一轮生成读取更新后的上下文,因此“想象中的箱盖打开”不会自动成为环境里已经发生的事实。

令 oto_t 表示观测,zt=E(ot∣o<t)z_t=E(o_t\mid o_{<t}) 是因果视频编码器得到的潜状态,ata_t 是动作,cc 是语言指令。第 3.2 节式(8)—(9)的条件关系可整理为:

z^t+1:t+K∼pθ(⋅∣z≤t,a<t,c),at:t+K−1∼gψ(⋅∣z^t+1:t+K,z≤t,a<t,c).\hat z_{t+1:t+K}\sim p_\theta(\cdot\mid z_{\le t},a_{<t},c), \qquad a_{t:t+K-1}\sim g_\psi(\cdot\mid \hat z_{t+1:t+K},z_{\le t},a_{<t},c).

第一式预测未来潜状态,第二式据此生成动作;帽子表示预测值。这里按原文的简化索引写出一个未来状态对应一段控制的关系,实际系统采用更稀疏的视频与更密集的动作配对。语言条件在原文部分简写中省略,此处统一写出,避免误认为模型不接收指令。

例如“打开箱盖”的当前表示与预测未来表示共同告诉动作分支:夹爪应到达哪里,箱盖应往哪个方向变化;过去动作和观测还帮助判断箱盖是否已经抓住。动作随后由底层控制接口执行,真实结果重新编码进入历史。这条路径直接根据预测状态生成动作,不包含枚举候选轨迹、再以显式代价函数选择最优轨迹的搜索过程。

中文教学图 1:未来潜状态参与动作推断,真实反馈重新进入闭环

查看原尺寸

教学示意:绿色框是模型预测的潜在表示,底部蓝色框来自实际相机;沿右侧反馈箭头看,下一轮的依据会随真实执行结果更新。

视频和动作怎样进入同一个模型​

压缩画面,并保留不同的采样频率​

论文使用 Wan2.2 因果 VAE,将视频按时间、高度、宽度约 4 × 16 × 16 压缩,再通过空间 2 × 2 patch 化减少 token。多相机编码结果沿宽度拼接。第 4.2 节报告其配置每帧为 192 个空间 token;这个数依赖分辨率与相机布局,不是所有 LeRobot 配置都固定如此。

视频变化通常比控制指令变化慢。第 3.3 节用 τ=4\tau=4 表示每个保留的视频时刻关联 4 个动作:若生成 K=4K=4 个这样的视觉时刻,就对应 4K=164K=16 个动作位置。视频稀疏采样与 VAE 时间压缩是不同步骤;不要将它们混成“机器人只需要每 16 步看一次”。

形状例子: 按 LeRobot 默认 frame_chunk_size=4、action_per_frame=4、action_dim=30,动作流内部噪声可组织为 [1,30,4,4,1],共有 16 个时序位置,每个位置 30 个通道。模型输出后选择有效动作通道,再转换成 [批量,动作步数,机器人动作维度]。这是固定实现的接口示例,不是论文所有平台的统一张量形状。

中文教学图 2:四个视频时间点对应十六步动作,去噪迭代反复更新同一动作块

查看原尺寸

教学示意:上面两排沿机器人时间展开,下面一排沿生成进度展开。每次去噪更新的是同一块动作,不会因此多产生一个执行时刻。

MoT:分别处理,再通过注意力交流​

论文的混合 Transformer(Mixture-of-Transformers,MoT)有两条参数化分支:视频分支从 Wan2.2-5B 初始化,隐藏宽度 3072、30 层;动作分支同样深,但宽度为 768,约增加 350M 参数,总量约 5.3B。高维视觉变化分配更大容量,低维控制保留较小的动作分支(第 4.2 节)。

每层中,视频和动作先用各自投影形成查询、键和值;动作特征再投影到可进行联合注意力的空间,与视觉信息交换后回到动作分支。最终线性头将动作特征还原为控制向量。文本经冻结的 T5 编码器形成条件,通过交叉注意力进入网络。

这里的 MoT 解决“不同模态怎样保留各自处理方式又共享信息”。LingBot-VLA 2.0 的 MoE 则让 token 选择少量前馈专家,解决容量与激活计算量的分配。两种结构名称相近,机制并不相同。

作者还将视频权重插值到动作宽度,并按 α=dv/da\alpha=\sqrt{d_v/d_a} 缩放初始化。代入 3072/768=4,得到 α=2\alpha=2。这是为稳定不同宽度分支的早期输出分布;图 7 比较训练损失、梯度范数及验证损失,支持这种初始化比随机初始化更稳定,但这些曲线本身不是机器人成功率。

当前公开版本与论文结构的边界​

作者发布的检查点采用 shared backbone(共享骨干),LeRobot 接入的也是这一实现。它将视频和动作作为两个生成流处理,用不同输入/输出映射,但共享主要 Transformer 块。论文中的 3072/768 非对称双分支及约 5.3B 总量描述的是另一种参数组织,不能直接用于估计共享骨干检查点的规模与计算量。

怎样训练:两种流匹配目标与历史监督​

从噪声到视频,再从噪声到动作​

按论文第 2 节的时间方向,设真实视频潜变量为 zz、动作数据为 aa,同形状独立高斯噪声分别为 ϵz,ϵa\epsilon_z,\epsilon_a:

z(s)=(1−s)ϵz+sz,a(s)=(1−s)ϵa+sa,s∈[0,1].z^{(s)}=(1-s)\epsilon_z+sz,\qquad a^{(s)}=(1-s)\epsilon_a+sa,\qquad s\in[0,1].

网络分别学习速度目标 z−ϵzz-\epsilon_z、a−ϵaa-\epsilon_a。第 3.3 节式(11)—(12)以“视频潜状态的生成误差”构成 Ldyn\mathcal L_{\rm dyn},以“读取当前与未来视觉表示后的动作生成误差”构成 Linv\mathcal L_{\rm inv},总目标为:

L=Ldyn+λLinv.\mathcal L=\mathcal L_{\rm dyn}+\lambda\mathcal L_{\rm inv}.

论文预训练取 λ=1\lambda=1。二者都是速度场的平方误差,不是把像素差直接加到关节误差上。LeRobot 的实现还按噪声时间加权,并用有效通道掩码约简动作误差;具体数值不能只由上式的系数推断。

教学计算: 将潜状态简化为一个数,真实值为 0.2、噪声为 1.0,则在 s=0.5s=0.5 时输入是 0.6,目标速度为 0.2−1.0=−0.8。若模型准确,Euler 更新 Δs=0.1\Delta s=0.1 得到 0.6+0.1×(−0.8)=0.52,继续积分至 1 才到 0.2。动作流也按自己的条件和噪声学习相应方向。这里的 ss 是生成进度,不是机器人已经执行的时间。

教师强制:训练时哪些历史可以看​

原论文图 3:真实历史与带噪预测分支的注意力可见范围

教师强制(teacher forcing) 指训练时用数据中的真实历史作为条件,而非先把整条模型预测轨迹滚完再训练。图 3 的行是发出查询的 token,列是可读取的键;黄色是视觉,绿色是动作,空白表示不能读取。上半部分组织历史缓存,下半部分组织带噪目标。它不是一张所有 token 都逐个递减的简单下三角矩阵:动作生成需要读取相应未来视觉条件,同块内也允许联合生成。

模型不应把真实未来动作直接当成当前预测条件。通过划定历史与预测块的边界,训练可在一次前向计算中并行处理多个时刻。执行时真实相机反馈会重新进入历史,这使部分训练条件与部署相似;不过,预测的未来潜状态、控制误差和反馈延迟仍然可能造成分布偏移。

中文教学图 3:时间块之间限制未来读取,块内允许双向交流

查看原尺寸

教学示意:先按行找“谁在读取”,再按列找“读取什么”。矩阵只概括时间块的关系;视频与动作两种流的具体可见范围仍以原论文图 3 为准,尤其要保留逆动力学读取相应未来视觉条件的连接。

带噪历史:不等视频完全清晰也能生成动作​

式(10)以 0.5 的概率对视频历史加噪:z~=(1−saug)ϵ+saugz\tilde z=(1-s_{\rm aug})\epsilon+s_{\rm aug}z,其中 saugs_{\rm aug} 在 [0.5,1] 采样;其余情况使用干净历史。这样,动作流学习从仍带噪、但包含任务结构的视觉表示中推断动作。

它支持推理时只对视频做部分去噪,再将计算留给动作。算法 1 用积分至 0.5 说明原理;第 4.2 节实际报告视频 3 步、至 0.6,动作 10 步、至 1.0。这是概念算法与实验设置的区别。LeRobot 当前默认又是视频 20 步、动作 50 步,video_exec_step=-1 不启用提前截断。三组数值不能相互代换,更不能据论文的 3 步设置估计当前默认代码的速度。

闭环执行:缓存要记住什么,异步要纠正什么​

用真实反馈更新 KV 缓存​

Transformer 的 KV 缓存保存历史 token 在各层形成的键和值,避免下一轮重新计算全部历史。算法 1 从初始观测开始,预测未来潜状态和动作,执行当前动作后收集真实观测,再将真实潜状态与已执行动作加入缓存。

缓存保存的是模型内部特征;它提供可用历史,能否利用好这些历史仍由学习结果决定。上下文窗口也有限。当前 LeRobot 使用 attn_window=30 并在新 episode 调用 reset 清空动作队列、Transformer 缓存和流式 VAE 缓存,不能把它理解成无限记忆或跨任务自动保留记忆。

异步不是只把两个线程同时启动​

原论文图 4:同步、简单异步与前向动力学校正

图 4A 的同步流程是“执行—观察—等待生成—继续执行”,红色斜线表示机器人等待计算。图 4B 让机器人执行当前块时,模型提前预测下一块,以重叠执行时间与生成时间。

代价是信息变旧:预测下一块时,当前块还没执行完。若模型只沿用此前想象出的画面,它可能继续相信“箱盖已经抓住”,忽略最近真实观测里夹爪已经滑脱的证据。图 4B-1 展示的正是这种旧预测继续占据上下文的情况。

论文的 FDM 校正 在此插入一次前向动力学计算:从最近真实观测出发,给定正在执行的动作,重新预测它的结果;再使用这个重新对齐的未来状态预测后续视频与动作。它使用模型中的前向预测能力,论文没有要求另部署一个完全独立的模拟器。后训练额外引入式(13)的前向预测损失,算法 2 描述执行分支与推理分支的配合。

中文教学图 4:最新观测与正在执行的动作共同校正下一轮预测起点

查看原尺寸

教学示意:上下两路的区别在于是否用最新反馈重新预测当前动作的后果。下方时间线表示计算与执行重叠,不表示已经直接观测到未来,也不代表固定的时间比例。

时间例子: 假设当前动作块执行需 320 ms,下一块生成需 180 ms。同步节拍约为 320+180=500 ms;若生成可以被执行覆盖,理想流水节拍约为 320 ms,速度比约 500/320=1.56。这是忽略通信、冷启动和反馈等待的教学例子,不是论文实测。异步可以减少等待,但不能把已经过时的观测变成最新观测。

当前 LeRobot 的 select_action 在动作队列耗尽后,才用缓冲的真实关键帧和上一块动作更新缓存,再串行调用视频与动作生成。它实现了块间真实反馈;论文算法 2 还需要执行与预测并行,以及 FDM 对旧预测的校正。

数据、动作表示和训练阶段​

论文第 4.1 节列出 AgiBot、RoboMind、InternData-A1、OXE 的 OpenVLA 子集、UMI 系列(不含 DexUMI)、RoboCOIN 六类来源,并包含内部采集轨迹,总计约 1.6 万小时机器人操作数据;每个数据集按 90%/10% 划分训练与验证。互联网视频知识主要通过 Wan 的预训练初始化引入,不应将这 1.6 万小时全部写成无动作标签的人类视频。

动作规范空间每臂含 7 维末端位姿、最多 7 维关节量与 1 维夹爪,双臂共 2×(7+7+1)=30 维。不存在的关节补齐。末端位姿与关节位置是两种控制表示,不能将全部槽位看成 30 个独立物理自由度。

在当前发布接口中,LIBERO 实际使用 7 个通道表示末端增量和夹爪;RoboTwin 用 16 个通道表示双臂 XYZ+四元数+夹爪,再由 CuRobo 逆运动学转成关节轨迹。虽然 30 维结构预留关节槽位,这两个发布检查点并不直接预测关节位置。接入自己的关节空间数据时,不能只补零就视为已经完成动作适配。

阶段学习/使用的信息需要区分的设置
初始化Wan2.2 视频生成先验,冻结视频 VAE 与文本编码器论文非对称分支与当前共享骨干发布版不同
视频—动作预训练机器人视频、动作、语言;动力学与逆动力学目标论文报告 1.4T token、峰值学习率 1e-4、BF16、λ=1\lambda=1
下游后训练目标平台与任务示范通用适配例子为 1e-5、3K 步;六实机任务另报每任务 50 条、1e-4、500 步
部署指令、初始画面、随后真实反馈及动作历史输出动作;视频解码可用于观察预测,并非每步控制都要运行

论文方法节用 [1,8] 举例说明可变块长,第 4.2 节实际训练范围是 [1,4]。后训练的学习率与步数也随目标平台和实验设置变化。

实验:哪些结果支持方法,哪些条件不能省略​

仿真:先看同一评测内的比较​

RoboTwin 2.0 训练使用 50 个任务的 2,500 条 clean 示范及 25,000 条随机化示范,对应每任务 50 与 500 条。视频从 50 Hz 降采样至 12.5 Hz,动作仍为 50 Hz。Easy 固定初始配置,Hard 随机化物体姿态与场景布局(第 4.3.2 节)。

方法RoboTwin EasyRoboTwin Hard
π0.582.7%76.8%
Motus88.7%87.0%
LingBot-VA92.93%91.55%

表 1 为 50 任务平均成功率。与 Motus 的差异约为 4.2/4.6 个百分点;Horizon=3 任务组差异为 8.2/9.1 个百分点。这里的 horizon 是任务步骤分组,不是生成块长 KK。附录表 S1 也保留弱项:Hanging Mug 仅 40%/28%,Turn Switch 为 44%/45%,都不能被整体均值掩盖。

LIBERO 四套任务各含 10 个任务、每任务 50 条示范;论文对每套报告 3 个随机种子,每种子共 500 次评估,即每套合计 1,500 次。表 2 的结果如下:

方法SpatialObjectGoalLong平均
X-VLA98.298.697.897.698.1
LingBot-VA98.5 ± 0.399.6 ± 0.397.2 ± 0.298.5 ± 0.598.5

单位为成功率 %。Goal 上并未超过 X-VLA;基线数字引用自 X-VLA 文献,训练与实现条件未完全统一。表中保留原论文的 ± 值,原文未明确其是标准差、标准误还是置信区间。高成功率也限定于这些仿真任务与协议。

实机:成功率和进度分会给出不同判断​

原论文图 5:六个实机任务、进度分与成功率

图 5 上半显示做早餐、拆快递、插管、捡螺丝、叠衣服、叠裤子六任务。每任务用 50 条实机示范后训练;附录表 S2—S7 各列出 20 次评估。进度分按子步骤得分除以最大得分计算,成功率由试验的 Success 标签统计,不能机械地由进度分是否满分反推。

任务LingBot-VA 进度分/成功率π0.5 进度分/成功率
做早餐97.0 / 75.073.0 / 70.0
拆快递84.5 / 65.073.0 / 25.0
插管85.8 / 40.079.2 / 30.0
捡螺丝82.5 / 70.074.0 / 50.0
叠衣服48.8 / 35.062.9 / 30.0
叠裤子76.7 / 70.030.0 / 30.0

单位均为 %,按附录表报告值整理。做早餐的成功率为 15/20=75%,即使平均步骤得分已有 97%,仍有四分之一试验没有获得成功标签。叠衣服成功率多 1 次,但平均进度分低 14.1 个百分点,与正文“六任务两项指标都领先”的笼统表述不同,图 5 本身也显示这个反例。

这些任务的平均成功率可按表复算为约 59.2% 与 39.2%,但一次实机试验就对应 5 个百分点。结果支持这组任务中的整体提升,不能单独证明每个组件的因果收益,也不能把 50 条目标任务示范说成从零训练仅用了 50 条数据。

异步与预训练消融:收益伴随代价​

论文表 3 在 RoboTwin Easy 报告:

设置全任务平均成功率Horizon=3
LingBot-VA 基准行92.9%93.2%
FDM 校正异步90.4%85.6%
简单异步74.3%32.9%
从 WAN 初始化后训练80.6%67.6%

FDM 校正比简单异步高 16.1 个百分点,长任务组高 52.7 个百分点,支持“旧预测必须重新对齐反馈”的设计。但它仍低于基准行:整体少 2.5 个百分点,长任务少 7.6 个百分点。作者报告异步约快 2 倍,表中未列出耗时或测试硬件;成功率结果说明,减少等待仍伴随性能代价。这项速度结果也不直接适用于 LeRobot 当前的串行生成路径。

WAN 初始化行与完整预训练行的差异支持机器人视频—动作预训练有价值。该比较改变了预训练经历,不能把全部差距归给一个注意力模块。表 3 没有提供 AR 与双向世界建模的直接对照,尚不能据此单独量化自回归结构的收益。

少样本、记忆与泛化各自说明什么​

原论文图 8:不同示范数量下的后训练进度分

图 8 横轴是目标任务示范数量,纵轴是进度分。右图做早餐用 10 条示范时为 61.1% 与 45.5%,差 15.6 个百分点;50 条时为 97.0% 与 73.0%。左图 RoboTwin Easy 的 10 条结果为 58.2% 与 50.7%,差 7.5 个百分点;正文写成 10.3,而图中 5 条示范才对应 46.6−36.3=10.3。此处以图示对应关系为准。这些结果说明在所测后训练条件下更省示范,不代表预训练数据和计算成本更低。

原论文图 9:擦盘六次与依次搜盒的记忆测试

擦盘要求恰好重复六次;搜盒要求记住刚打开的右盒为空,再去左盒。图 9 右侧柱状图为 LingBot-VA 两项均 100%,π0.5 分别为 47% 与 50%。它们比单帧抓取更能检验时间状态利用,但原文未报告这些柱的试验次数,也未在此单独移除 KV 缓存,不应推断为任何长历史任务都可靠。

图 10 则展示更换物体与扩大物体位置范围的可视化。它提示泛化能力,原文没有给出完整分布外成功率表或样本量,不能据几段成功展示宣称普遍鲁棒。视频外观连续、动作能完成任务、真实物理正确,仍是不同层次的评价。

LeRobot 接入:把论文机制与当前接口连起来​

LeRobot 提供基础模型、LIBERO-Long 与 RoboTwin 后训练检查点。检查点保存主要可训练 Transformer 的权重;冻结 VAE、文本编码器及 tokenizer 在加载时另行取得,因此实际加载还需要这些组件。

相机顺序也是模型输入定义的一部分:LIBERO 先外部视角、再腕部视角,潜变量沿宽度拼接;RoboTwin 为头部、左腕、右腕,使用 robotwin_tshape 布局。交换相机名称而不调整布局,会改变空间含义。动作有效通道、末端位姿约定和归一化统计也需与检查点匹配。

默认 4×4=16 是一般动作块长度;固定源码的首块含初始条件帧,会丢弃该帧对应动作,因此首块实际返回 (4−1)×4=12 步,后续块才返回 16 步。当前接口是在队列耗尽后重新预测,不应将 20/50 次生成更新误称为控制频率。

训练 forward 会编码相机时间窗,并同时计算视频和动作流匹配损失;attn_mode=flex 是块因果训练路径的要求。save_predicted_video 会额外 VAE 解码,适合观察预测的环境变化;评估时应将这段想象视频与真实执行录像对照。

结论​

LingBot-VA 的关键认识是:未来表示可以成为动作的生成条件,但它必须持续接受真实环境的纠正。 视频分支学习变化,动作分支从变化推断控制,历史缓存保留交互上下文;部分去噪和异步执行则处理生成模型进入控制环后的时间成本。

实验支持这条路线在所测仿真、实机与少样本设置中的价值,也留下明确边界:叠衣服进度分退步、简单异步明显退化、FDM 校正仍有成功率代价,且当前公开共享骨干与 LeRobot 接口不等同于论文完整系统。理解这些条件,比仅记住平均成功率更有助于判断方法适合怎样的后续实验。

Loading Comments...