导语:把一个视频骨干的三种模态都做成生成目标:语言和动作在同一次去噪里出来,生成的那句话再被读回下一步当 prompt。这篇论文把这套闭环跑通了,最直接的回报出现在记忆任务上。

一分钟速览

  • 三种模态都是输出:视频、动作、语言各一个 DiT,用统一自注意力共享特征,同一次去噪里同步生成(Sec. 3.1)。
  • 语言从零训练:0.5B 的离散扩散专家,每步 64 个 token,不用预训练语言模型也不用 VLM 初始化。
  • 两个时间尺度:帧级视频损失加任务级语言损失,再由动作损失锚到物理行为(Sec. 3.2)。
  • FMC 零推理开销:训练时学「从扰动点走回来」,推理不改一个字,二维轨迹 Chamfer 改善 4.0%(Table 6)。
  • 仿真操作:MolmoSpaces 五个任务平均比同骨干 FastWAM 高 14.8 个点(Table 1)。
  • 记忆:RMBench M(n) 平均 34.5% 对同骨干 13.3%;真机 Find-the-Item 从 11.1% 到 61.1%(Table 2)。

34.5% 和 13.3%。两个模型的视频骨干都是 Wan2.2,动作专家是同样的规模,输入是同样的图像、同样的指令、同样的本体感觉。差别只有一处:其中一个在生成动作的同一次去噪里,还顺手生成了一句话——下一个子任务是什么,以及到目前为止做过什么。这句话会被读回来,当成下一步的 prompt。

这是 arXiv:2610.28626v1《UniWALM: Unified World Action Language Model for Embodied Robot Control》做的事。作者是 Rahul Sajnani 等十二人,机构包括 Amazon、布朗大学、东北大学、德州大学奥斯汀分校与华盛顿大学,问的问题很直接:如果语言不再只是喂给策略的固定条件,而是和动作一起被生成、再被自己读回去,这个共享表示会不会变强?

我对这个问题的兴趣在于它的「双向性」。过去几年我们习惯了两种拼法:要么把一个 VLM 接到 VLA 上做高层规划,要么把动作头接到视频模型上。前者语言是外部隐状态,后者语言干脆不存在。UniWALM 的做法是把三种模态都做成生成目标,然后用同一个句子把「规划」和「记忆」两件事一次解决(图 1)。真机上的记忆任务从 11.1% 走到 61.1%,数字很漂亮,但我认为更值得看的是它为什么能做到——以及它在哪儿做不到。

图 1
图 1|上半是四种任务下的「视频+动作+子任务」输出,下半是同一骨干里并行的三个 DiT;右侧对比拼接式与统一式:前者多骨干松耦合,后者一个骨干端到端

语言一直是输入,从来不是输出

先把空缺说清楚。现有的机器人基础模型连接视频、语言、动作,但通常只覆盖其中一部分方向。

现有的四种拼法

视觉语言动作模型把语言当固定条件消费,自己不生成语言。推理式的 VLA(Inner Monologue、RT-2 的思维链、ECoT、RT-H、CoT-VLA 这一系)确实在控制步内生成中间语言,但是自回归生成的:动作必须等 token 解码完,而且生成出来的句子不会跨步被重新读入,只在这一步里起作用。世界动作模型(DreamZero、FastWAM)把视频和动作一起建模,语言完全被丢掉。记忆增强的系统则在预训练骨干上外挂检索缓冲或外部规划器,π0.7 就是让高层语义策略出语言、另一个世界模型出子目标图,再去条件化 VLA。

论文点名的三条代价

这一族做法在论文里被统称为「WAM 加 VLM 特征」,作者点了三条共同的代价:用两个为不同目标优化的视觉骨干、彼此只是松耦合;语言被当成外部隐状态而不是生成目标;记忆是另外接上的检索模块,规划与控制异步执行。能力都在,但它们不在同一个表示里。

拆成两个问题

所以论文把问题拆成两问:在视频-动作模型上联合生成语言,会不会让共享表示变强、操作变好?以及,一个策略能不能把自己生成的语言跨步读回去,当成工作记忆?

我认为这两问的分量不一样。第一问是表示学习的问题,第二问是系统设计的问题——而第二问的答案恰好解释了第一问的收益:如果生成的句子在下一步没有用处,它就不可能长期被训练成有用的东西。

图 2
图 2|输入是观测、带记忆的指令、本体感觉与可选锚帧;视频、语言、动作三个 DiT 用统一自注意力共享特征,语言流在同一次去噪里吐出子任务与文本记忆

一次去噪,三种模态,一套注意力

UniWALM 的形式化很短:给定当前观测 O(k 路 RGB,仿真取 2 路、真机与 RMBench 取 3 路)、机器人状态 S、可选的视觉记忆 F(一张或多张帧)、任务提示 T,联合生成未来视频 V、带完成信号的动作块 (A, β) 与语言 L:

V1:H, (A, β)1:N, L := UniWALM(O, S, F, T)

H 是未来帧数,N 是动作块长度,β 是一维任务完成信号。L 是一个紧凑字符串,格式是「子任务 ‖ 文本记忆」,在下一个控制步被重新作为 prompt 读入。训练配置里动作块 N = 32、视频视野 H = 5。

三个 DiT 怎么共享特征

结构上是「视频骨干加两个专家」。作者取 Wan2.2 的视频 DiT 作为底座,复制它的结构(深度对齐 30 层)但收窄隐维,得到 1B 的动作 DiT(hidden 1024)和 0.5B 的语言 DiT(hidden 512),这两个专家的权重从零训练(图 2)。每一层里,三个模态各自做自适应层归一化与 QKV 投影,然后沿 token 维拼起来做一次统一自注意力——这是特征共享发生的唯一位置;之后再做一次交叉注意力,把三个模态的 query 对齐到任务指令与本体感觉上。视频骨干用 rank 256 的 LoRA 微调,只更新低秩子空间。

语言为什么用扩散

语言这一路是我最感兴趣的部分。它没有用自回归解码器,而是一个离散扩散专家:每个训练步按扩散时间步对真值文本做随机替换,得到 Lt := RandomReplace(LGT, t),再让它预测正确的 token 嵌入,用交叉熵监督 Llang := CrossEntropy(L̂, LGT)。这样它天然和视频、动作共享同一套去噪节奏——每步 64 个语言 token,和动作在同一次前向里走完,不需要等一个自回归解码器把句子吐完再生动作。

推理时视频生成被关掉(和 FastWAM 一样),语言 DiT 与动作 DiT 同步跑。作者给了一个未优化的时延:不带语言专家 76 ms,带语言专家 123 ms,都是生成 32 步动作块、10 步去噪的口径。它还留了一个工程上的余地:可以缓存上一步的语言特征,自行选择语言生成的频率。

一处关键掩码

有一处细节我认为是全文最容易被忽略、但最见功力的地方:推理 token 只允许看视觉特征与输入 prompt,而动作 token 允许看语言 token。这个掩码方向选择意味着语言不能从动作里「偷看答案」,动作却可以把语言当作条件。如果反过来放开,语言就会退化成对动作的复述,跨步记忆也就没有信息量了。

训练目标:两个抽象层级并行监督

三个损失这样组织:视频与动作各是一个流匹配损失,用 ℓ1 而不是 ℓ2——作者说学动作时 ℓ1 更稳;语言是离散扩散的交叉熵。合起来是

L := Lvideo + Laction + α·Llang

两个抽象层级

真正值得说的是这三个项在监督什么。作者把它们分成两个抽象层级:Lvideo 是帧级的预测结构,逐帧稠密 RGB,这是 FastWAM、DreamZero 这类世界动作模型已经在用的信号;Llang 是任务级的预测结构——把「下一个子任务」和「任务状态」压成一个短字符串,这是一个更长时程的信号,帧级预测表达不了;而 Laction 把两者都锚到物理行为上。

换句话说,这不是三个任务的简单相加,而是给同一个共享表示加了两个时间尺度上的约束。我认为这是整篇论文在训练侧最核心的一句话:把通常外包给规划器或 VLM 的那层结构,内化进一个端到端策略里。作者自己的表述是「在一个骨干里同时用两个预测层级训练,而不是只用一个,这才让单个端到端策略内化那些通常被外置的结构」。

β 挂在动作向量上

任务完成信号 β 的处理很省事,也很聪明。它是一维标量,直接拼在动作向量后面,在动作块内被监督成一个阶跃函数——子任务完成前为 0,完成时刻及之后为 1。因为它属于动作向量,它就被同一个 Laction 训练,不需要额外的头、也不需要额外的损失项。

联合训练的接口

训练目标的可扩展性也写在结构里:通过在注意力上做掩码,同一个表示可以混着吃异构数据(只有视频、视频加动作、视频加问答、视频加动作加问答)。不过作者明确收窄了范围——他们只在本领域的视频-动作与推理数据上验证过,大规模多源联合训练留给了后续工作。

图 3
图 3|干净动作与被扰动动作在同一步加噪,FMC 要求从扰动点一步回到干净轨迹;只有黄色箭头这一段是新增的监督目标

FMC:让模型学会从被扰动的地方走回来

目标变复杂之后,动作流的可靠性就成了瓶颈。流匹配学的是一个速度场,把样本从高斯先验运到数据分布:训练时把数据线性加噪到 xt = (1−t)x + tε,网络去估计速度 vt = ε − x。问题在于,用这套目标训出来的策略在采样时会积累小的偏差,轨迹就不够准。

FMC 的思路是把「纠偏」直接写进训练目标(图 3)。给定干净动作 x0,先造一个被扰动的版本 x0p := x0 + ε1,用同一份噪声 ε 加噪到时间 t,得到落在正常去噪轨迹之外的点 xtp := (1−t)x0p + tε。如果在这里用标准目标,模型会继续把扰动一起去噪掉;FMC 换了个目标速度,要求从这一点走一步 Δt 就回到正常轨迹上,解出来是

修正速度是怎么解出来的

vcorr := (xtp − xt−Δt) / Δt = (ε − x0) + ((1−t)/Δt)·ε1

这个展开式把机制说得很清楚:它就是标准速度加上一个抵消扰动的修正项,扰动为零时严格退化成标准目标。因此推理完全不用改——不加条件、不加采样步、不加容量,只是在训练时把「被扰到一边之后怎么回来」这件事也教了。

两个实现细节

两个实现细节值得记:修正项随 (1−t)/Δt 放大,所以只在 t ≥ 0.5 时启用修正分支,保证样本靠近噪声流形、修正幅度有界;分支概率 p = 0.5。作者把它和 DAgger 式的残差修正做了区分——FMC 完全在去噪过程里做,不需要专家重标注;也和不一致模型(consistency)做了区分——它的目的不是加速采样,而是从局部扰动中恢复。

二维轨迹上的超参扫描

超参是在一条二维机器人轨迹基准上扫的:七类典型末端轨迹(圆、星、螺旋、线、弧、8 字、方),每类训 200k 步,用对称 Chamfer 距离评估 500 条生成轨迹对 1000 条真值。采用配置(扰动尺度 s=0.4、漂移强度 d=0.3、修正阈值 t≥0.5)在 7 类里赢 5 类、胜率 71.4%,Chamfer 平均改善 4.0%,是整轮扫描里最好的一档(Table 6)。到了下游操作任务上,它在 38K 的 Pick&Place 子集上带来 3.0 个点、9.7% 的相对提升(Table 4)。

图 4
图 4|Press Button 上逐步读回:左键计数 0/3 到 3/3、中键 1/4 到 4/4,直到 confirm;红字是子任务,蓝字是文本记忆

记忆不是外挂:一句话、一张锚帧、一个完成信号

如果说 FMC 是给可靠性打补丁,那记忆这一节才是这篇论文真正的立意所在。它把三种记忆机制直接做进了共享表示里。

文本记忆:被自己读回的那句话

文本记忆就是那个被重新读回的字符串。推理时语言头在同一次去噪里吐出「子任务 ‖ 文本记忆」,下一步把它当 prompt 再喂回去,形成一个语言记忆环。这里没有外部规划器,也没有记忆库。

视觉记忆:一张锚帧加一次 RoPE 平移

视觉记忆解决的是「说不清楚」的那部分状态——精确的物体位置、被遮挡的布局。它接受一张或多张关键帧,实验里只用回合起点的单张锚帧;锚帧走与当前观测相同的 VAE 编码器,按 token 维拼进视频流,于是语言与动作两个专家都能通过统一自注意力看到它。为了避免和当前观测的位置编码撞车,作者把每张记忆帧的 RoPE 坐标整体平移一个帧宽 W,并让第 0 维坐标随视频时间步变化。好处是加删记忆帧不改参数、不改接口,只改被注意到的 token 数。

完成信号:什么时候提交记忆

任务完成信号 β解决的是「什么时候把这句话写进记忆」。如果每个控制步都重写文本记忆,中间过程的推理就会覆盖掉已完成的进度,摘要不再可靠;而语言流本身没有「子任务何时真正完成」的监督。所以作者让 β 来 gates 记忆更新:只在子任务边界推进记忆,而不是每步都推。

把这三件放在一起看,就是三个不同粒度的学习到的抽象:生成的子任务是计划(下一步做什么),生成的文本记忆是滚动摘要(已经做了什么),β 是提交信号(什么时候把某个子任务记为完成)。三者都是同一个骨干的一等输出,不是接在预训练 VLM 或检索缓冲上的模块。

Press Button 这个任务把整条环暴露得最清楚(图 4):目标是用左键 3 次、中键 4 次再确认。每一步模型输出的记忆串里都有「visible 3 4」这样的可见计数,加上「left 0/3 mid 0/4」这样的进度,再接上下一子任务;随着回合推进,左键计数从 0/3 走到 3/3,中键从 1/4 走到 4/4,最后一句变成「confirm. next: done.」。这条计数链是模型自己写、自己读的,没有任何外部状态。

仿真操作:14.8 个点是从哪儿来的

MolmoSpaces 是主战场:221K 条轨迹,五个任务(Pick、Pick-RandCam、Pick&Place、Pick&Place-Color、Pick&Place-NextTo),DROID 风格的 Franka 台面,每个任务 1000 个分布外回合,用 Filament 渲染器。对比对象是 MolmoBot、π0.5 与同骨干的 FastWAM。

方法Pick&PlaceColorNextTo
FastWAM51.154.432.0
MolmoBot-Img62.967.821.0
UniWALM68.070.838.8

五个任务的均值

三个 Pick&Place 变体上 UniWALM 全部最高。把五个任务平均起来,它比同骨干的 FastWAM 高 14.8 个点(Table 1 两行均值 55.6 对 40.8)。这里要强调「同骨干」三个字:FastWAM 与我用同样的 Wan2.2 底座、同样大小的动作专家,差别就是语言流、FMC、LoRA 三件。所以这 14.8 个点可以干净地归给「加了任务级预测结构」这件事。

另一个数字也值得看:按论文自己的口径,UniWALM 在三个 Pick&Place 变体上平均比 MolmoBot 高 7 个点,而 MolmoBot 是带 grounding 与语言预训练的,UniWALM 的语言与动作专家都是从零训练、只有视频骨干是预训练的。这说明增益不是继承来的 VLM 先验,而是统一表示本身带来的。

为什么两个抓取任务没赢

也有没赢的地方:两个短时程纯抓取任务(Pick、Pick-RandCam)上 UniWALM 不如 MolmoBot(49.2 对 61.4、51.0 对 62.1)。作者的解释是这两个任务受 303 步预算约束,更「从容」的轨迹在这个预算下吃亏。我认同这个解释,因为它和另一个观察对得上:增益随着任务组合度上升而变大,最高的正是 NextTo 与 Color 这两个既需要推理又需要放置精度的变体。也就是说,这套表示在「推理与放置精度是瓶颈」的地方贡献最大,在「纯够取速度是瓶颈」的地方帮助有限。

消融:+10.0 个点怎么来的

消融把这些拆得更细。在 38K 轨迹的单个 Pick&Place 切分上,基线(去掉推理、FMC、LoRA,约等于 FastWAM)是 31.0%,加上语言生成到 35.9%,再加 FMC 到 38.9%,再加 LoRA 到 41.0%(Table 4)。语言贡献 4.9 个点(15.8% 相对),FMC 贡献 3.0 个点(9.7% 相对),合计 10.0 个点。作者特意点明:这些增益只来自一个 0.5B 参数的语言专家。

记忆基准:34.5% 对 13.3%,差在语言

RMBench 的 M(n) 子集按「最优决策依赖过去 n 个任务相关观测」来组织任务,四个任务都需要反复尝试或多步跟踪:Press Button(按计数按键再确认)、Blocks Ranking Try(试出目标排列)、Cover Blocks(盖住再按颜色顺序揭开)、Battery Try(试出电池与槽位的组合)。平台是 RoboTwin 2.0 加 SAPIEN,双 AgileX 机械臂,每任务 50 条专家演示训练、100 回合评测。

任务UniWALMFastWAMMem-0
Battery Try251628
Blocks Ranking493718
Cover Blocks13068
Press Button5100
平均34.513.328.5

(Mem-0 一列是它带关键帧的配置;UniWALM 只用一张起始锚帧,不比它多拿每个任务的专用关键帧。)

21.2 个点,语言记忆的功劳

平均 34.5% 对同骨干 FastWAM 的 13.3%,是 +21.2 个点。其余不带关键帧的基线在 4.8% 到 7.3% 之间:DP 5.0%、ACT 4.8%、π0.5 5.5%、X-VLA 7.3%、Mem-0 去掉关键帧后 4.8%。同时它也超过了 Mem-0 带关键帧的 28.5%。

比它分数更高的那个模型

有一个模型分数更高:并行的 WLA-0 是 56.5%。作者对此的说明我觉得是得体的——WLA-0 是预训练 VLM 加预训练图像生成模型、用元查询连起来的流水线,它继承了网络规模的语言与图像生成先验,而这些 UniWALM 一概不用,也不构成统一表示。换句话说,这不是同一类系统之间的比较。

记忆消融:语言 15% 对锚帧 1%

Press Button 这个任务上的记忆消融最能把机制说清楚(Table 5):两者都不要(约等于 FastWAM)在 100k 步是 0%;只要视觉记忆、不要语言生成,在 30k 步只有 1%;只要语言生成、不要视觉记忆,在 30k 步是 15%;两者都要,30k 步 18%,训到 100k 步是 51%。结论很清楚:大部分记忆信号由生成的语言承载,它编码了「该按哪个键」这类符号状态;锚帧的作用是稳住「哪个键还是目标」这类视觉参照。两个都要,但分工不同。

图 5
图 5|真机 Find-the-Item 的三段回合:物品被盖住后,记忆串仍保留 L/M/R 各自对应的物品身份,动作跟着记忆换区

真机:同一份权重,记忆任务从 11.1% 到 61.1%

真机用两条 Flexiv Rizon 机械臂配灵巧手(Sharpa Wave 或 Paxini),三个任务:Cube Pick&Place(简单灵巧,44 自由度)、Empty Container(双臂清空、物品几何各异)、Find the Item(记忆任务,物品在中途被盖住后要被指出位置)。灵巧任务每个 20 回合、记忆任务 18 回合。对比 π0.5、GR00T-N1.7、FastWAM 与 MolmoBot。

方法Cube P&PEmpty ContainerFind the Item
FastWAM70.050.011.1
MolmoBot80.020.033.3
UniWALM95.050.061.1

三个任务的成绩

三个任务的平均是 68.7%,次优的 MolmoBot 是 44.4%。Cube Pick&Place 上 95.0% 对次优 80.0%;Empty Container 上与 FastWAM 并列 50.0%——作者的解释是这项任务不需要任务级推理,所以语言流帮不上忙,这恰好和「推理在需要它的地方才有用」的判断一致。

Find the Item 为什么最有说服力

Find the Item 是最有说服力的一组。物品在中途被盖住,任何从当前帧重新规划的策略都会丢掉它们的身份。作者在这里只启用了文本记忆,没有锚帧、没有完成信号通道,为的是和其他基线(都没有锚帧机制)公平对比——也就是说,整条记忆信号完全来自模型自己生成的、再被自己读回的那串语言。结果是 11.1% 到 61.1%(图 5)。场景只有左、中、右三个区域,论文把 33.3% 当作随机水平的上界,而它的原话是 VLA 与 WAM 基线在这项任务上「在随机水平或以下」。这一组数字最能说明问题:提升来自「生成语言推理」,而不只是「动作更准」。

我认为最有价值的发现

如果只带走一件事,我选这个:任务级的预测目标,是帧级预测目标买不到的长时程监督。视频世界模型已经在用「预测未来帧」来正则表示,但一帧一帧的 RGB 里,任务进度这个东西是非常贵的表达——它散落在几十帧的外观变化里。而「下一个子任务是什么」这一句话,把同样的信息压成了几个 token。用一个 0.5B 的专家去生成它,训练信号就变得又长又便宜。

归因干净比多几个点更值钱

第二件我认可的是归因的干净度。FastWAM 与 UniWALM 共享视频骨干与动作专家规模,所以从 13.3% 到 34.5%、从 31.0% 到 41.0% 这些差值都能落到具体组件上;Table 5 更进一步,把记忆增益拆成「语言 15%」与「锚帧 1%」,让人看清到底是谁在起作用。这种把自己的增益拆到不能再拆的做法,比单纯报一个更高的分数有价值得多。

掩码方向决定语言是推理还是解释

第三件是那个掩码方向。语言不能看动作、动作可以看语言——这一条决定了语言到底是「推理」还是「事后解释」。任何想做「生成式规划」的系统都会遇到这个岔路,而在这篇论文里它只花了半句话就交代清楚了。

还有一点值得做 VLA 的人注意:整个语言专家是从零训练的。没有蒸馏、没有 VLM 初始化、没有在语言语料上预训练。这意味着「让模型生成任务级语言」这件事,并不必然要求先把一个语言模型搬进来——只要监督信号对,扩散头也能学会说这种高度结构化的话(「left 3/3 mid 4/4」「next: confirm」)。

图 6
图 6|失败案例:目标 5-2-1,实际按成 5-3-1;记忆读数 2/2 正确,但完成信号晚一步触发,动作专家多按了一次

失败模式:三种半

作者在附录里列了四类失败,我按严重程度重排一下。

边界误触发:状态对、动作错

第一类是边界误触发。这是最有意思的一种,因为它不是「理解错了」,而是「慢了半步」。记忆环把状态跟得完全正确,但完成信号 β 晚一步(或早一步)触发,动作专家就会在当前子任务上多走一步或少走一步(图 6)。论文给的例子是目标左键 5 次、中键 2 次、确认 1 次,实际按成了 5-3-1:记忆读数一路是 left 5/5、middle 2/2、confirm,next: done,内部计数完全正确,但机械臂多按了一次中键。也就是说,语言这一侧对了,动作这一侧没跟上。

子任务判错与抓取精度

第二类是子任务判错。当两个时刻的观测几乎一样、但底下的记忆状态不同时,语言流偶尔会给出错误的下一子任务。这类错误和第一类正好互补:一个是状态对、动作错,一个是动作还没开始、状态就读错了。

第三类是抓取精度。复杂几何与杂乱场景仍然限制成功率,这一条不是这套架构特有的问题,而是当前灵巧操作共同的天花板。

时延这半类

还有半类:时延。带语言专家时 123 ms 生成 32 步动作块,作者自己说这可能对高频闭环控制来说太慢。这一条严格说是工程约束而非失败模式,但它会直接决定这套方法能不能上更快的控制回路。

适用边界,以及论文没给的量

几条边界我认为读者应该先知道。

真机细节缺了一块

真机的细节缺了一块。正文说真机的 per-task 细节放到附录 B,但附录 B.1 到 B.6 分别是定性结果、RMBench 环境与任务、RMBench 训练配置、记忆结构细节、FMC 的二维消融、Press Button 失败案例,并没有对应的真机小节。因此真机每个任务用了多少条演示、怎么采集、训练多久,论文未给出。

统计口径不齐

统计口径不齐。MolmoSpaces 与真机表都给了 95% 置信区间,RMBench 的四个任务只给了点估计,没有区间也没有显著性检验;FMC 的二维消融只有 Chamfer 的相对变化与胜率,同样没有区间。另外时延 76/123 ms 是在 10 步去噪下测的,而同一节的推理配置行写的是 20 步——引用这两个数时要注意口径,论文没有给 20 步下的时延。

语言通道与联合训练的边界

语言通道很窄。每步 64 个 token,记忆是一个仍在滚动的单串。作者把它列为开放问题:把它和外部回合日志、可学习的选择策略结合起来,才能撑更长的时程与跨回合场景;他们也提到多路条件信号并存时(多关键帧历史、文本记忆、当前观测、本体感觉)需要防止策略抄近路只依赖最有预测力的那一路,显式的流 dropout、掩码课程、信息论正则是候选手段。

FMC 的扰动是合成的。当前用的是高斯噪声 ε1,不是模型自己 rollout 出来的真实误差;作者把「用回放缓冲里的真实错误构造扰动」列为后续工作。所以它对「真实分布偏移」的纠正能力还没有被验证。

联合训练的规模没验证。架构上支持用掩码混吃异构数据,但实验只做了本领域的视频-动作与推理数据;ego 视频、VQA、grounding 的大规模联合训练都还在未来工作里。视觉记忆的接口也支持任意帧数,但实验只用了单张锚帧。

我读完之后的几点提炼

四条可执行的提炼

第一,如果你想给世界动作模型加「思考」,先想清楚这句话下一步有没有用。UniWALM 的收益不是来自「多了个语言头」,而是来自那句语言在下一步被重新读入。没有这个闭环,语言生成很容易退化成一个漂亮的副产品。

第二,把规划信号做成一个短字符串,比做成隐向量划算。它可读、可监督、可审计,还能直接当下一步的 prompt;而且用一个 0.5B 的扩散专家就能生成,不需要搬一个语言模型进来。

第三,记忆要给出「何时提交」的开关。文本记忆每步重写会覆盖进度,这是很多人做记忆时踩过的坑;把完成信号挂到动作向量上、用同一个动作损失监督,是这篇论文里成本最低、收益最直接的一个设计。

第四,纠偏可以只改训练目标。FMC 的价值在于它把「抗扰动」做成了零推理开销的一件事:推理路径一个字没改,只在训练时多算了一条修正速度。如果你在做流匹配策略且动作精度不够,这是可以直接抄的一条。

结语:这篇论文没有提出更强的视频生成器,也没有搬来更大的语言模型。它做的是把「语言」从条件变量变成生成目标,再让生成出来的那句话回到下一步的输入里。三种模态在同一个表示里互相监督,最直接的回报出现在最需要它的地方——记忆任务从 11.1% 到 61.1%,而代价只是一个从零训练的 0.5B 专家,加上 47 毫秒的时延增量(76 到 123 毫秒)。

论文信息与配图说明:本文解读的是 arXiv 预印本《UniWALM: Unified World Action Language Model for Embodied Robot Control》(arXiv:2610.28626v1,2026 年 10 月 20 日公告,25 页),作者为 Rahul Sajnani、Diego Romeres、Mingyuan Zhang、Kai Gao、Carl Qi、Baichuan Huang、Srinath Sridhar、Dylan Randle、Lillian J. Ratliff、Jose Barreiros、Manikantan Nambi、Jeroen Vanbaar,机构为 Brown University、Amazon、Northeastern University、UT Austin 与 University of Washington,原文见 https://arxiv.org/abs/2610.28626v1。该论文以 CC BY-NC-ND 4.0 许可发布:允许署名转载,但限非商业用途,且禁止演绎(不得修改、不得用于改编再发布);本文的引用与转述请一并保留作者署名、许可标识与非商业、禁止演绎这两项限制。文中六张配图取自原文 Figure 1、Figure 2、Figure 3、Figure 7、Figure 9 与 Figure 12,由我渲染整页、按 alpha 通道合成白底、在位图内实测墨迹外接框紧裁,并裁去英文原图注;图注、表格重排与解读文字均为原创。

术语速查

  • WALM:World Action Language Model,把三种模态放进同一个共享表示、每种既是条件又是监督目标的范式(Sec. 1)。
  • MoT(Mixture of Transformers):每个模态一个 transformer 专家,各自的 AdaLN 与 QKV 之后沿 token 维拼起来做一次统一自注意力,特征共享只发生在这里(Fig. 4)。
  • FMC:Flow Matching with Correction,训练时把动作扰到轨迹外再要求一步回到干净轨迹,目标速度是标准速度加一个抵消扰动的修正项(Sec. 3.4)。
  • β(任务完成信号):拼在动作向量后面的一维标量,子任务完成前为 0、完成时刻及之后为 1,用来 gates 文本记忆的更新(Sec. 3.3)。
  • 文本记忆:语言头在同一次去噪里吐出的「子任务 ‖ 记忆」字符串,下一步被重新作为 prompt 读入(Sec. 3.3)。
  • 锚帧(视觉记忆):回合起点的一张关键帧,走同一个 VAE 编码器拼进视频流,RoPE 坐标整体平移一个帧宽以免与当前观测重叠(Appendix B.4)。

工程落地清单

  1. 先确认那句话下一步有没有用。语言生成本身不是收益来源,收益来自它被重新读回当 prompt;没有这个闭环,语言头很容易退化成漂亮的副产品。
  2. 把任务级信号压成短字符串。它可读、可监督、还能直接当下一步的 prompt;一个 0.5B 的扩散专家就够,不必搬语言模型进来。
  3. 给记忆一个「何时提交」的开关。每步重写会覆盖已完成的进度;把完成信号挂到动作向量上、用同一个动作损失监督,是最省的一个设计。
  4. 纠偏只改训练目标。FMC 不碰推理路径,只在训练时多算一条修正速度;若你在训流匹配策略且动作精度不够,这条可以直接抄。
  5. 评测要看同骨干对照。FastWAM 与本方法共享视频骨干与动作专家规模,差值才能落到具体组件上。

常见问题(FAQ)

  • Q1:这和思维链式的 VLA 有什么本质区别? 答:区别有三条:语言与动作在同一次去噪里同步生成,不是先把理由自回归解码完再出动作;生成的句子会在下一个控制步被重新读回,不只在这一步里起作用;它还支持锚帧这种视觉记忆,思维链那一系只用语言侧推理(Appendix A)。
  • Q2:没有一个预训练语言模型,它凭什么会写「left 3/3 mid 4/4」这种话? 答:靠任务级监督。语言头是随机初始化的 0.5B 离散扩散专家,用随机替换加交叉熵训练,监督就是真值的子任务与记忆串;论文报告它在 MolmoSpaces 与真机上都输出这种高度结构化的短句(Sec. 3.1、Fig. 7)。
  • Q3:34.5% 这个成绩算高吗? 答:要分两头看。RMBench M(n) 上不带关键帧的基线都在 4.8%–7.3%,同骨干 FastWAM 是 13.3%,所以 34.5% 是明显跃升;但并行的 WLA-0 带关键帧时拿到 56.5%,它继承了预训练 VLM 与图像生成模型的先验,不是同一类系统(Table 3)。
Logo

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

更多推荐