零基础理解 WAM 世界动作模型
统计 阅读时间大约10分钟(3687字)

2小时前 零基础理解 WAM 世界动作模型

来源:机器人技术笔记
从机械臂抓杯子的场景切入,拆开WAM的世界表征、世界规律学习和动作生成三件事。

出品:机器人技术笔记

现在我们想让机械臂自主把桌上的杯子夹起来。它看见了杯子,也规划了一条靠近路线,但夹爪一碰到杯子,杯子就被轻轻碰歪了,下一步到底该继续夹,还是先退回来重新调整,这种物理接触发生之后的规划问题往往很难决策。

这些问题只看当前这一帧机器人相机获得的画面,很难回答。机器人需要在动作发生前,先对世界做一次短暂的预演:如果我这样动,下一刻会变成什么样。WAM 的核心就落在这里。

WAM,全称 World Action Model,可以翻译成世界动作模型。它要处理的核心,是让机器人把世界会怎么变和自己该怎么动放在同一条链路里学。用最简单的话说,VLA 更像是看见当前画面、听到任务指令,然后直接输出下一步动作;WAM 则会多想一步:它会结合刚才发生过什么,先预测下一刻世界可能怎么变,再生成能让世界朝这个方向变化的动作。

d02e9c8c6a0c16b537844032ae449225.png

换成工程语言,它同时看当前观察、历史观察、历史动作和任务指令,然后做两件事:先预测下一刻世界可能变成什么样,再生成当前应该执行的动作。这里的观察可以是图像、本体状态、深度信息,也可以是模型内部压缩后的状态表征。后面所有结构,基本都围绕这条关系展开:机器人不只问现在该怎么动,还要问这样动之后,世界会不会变成我想要的样子。

世界应该如何表征

理解世界这个任务,听起来很宽泛。但放到机器人项目里,它更像是描述一些对控制有用的状态:物体在哪里,机械臂在哪里,接触关系怎么样,下一步会不会滑、卡、碰撞、偏移。

这个世界可以有几种常见表征方式。最直观的是图片,也就是 RGB 图像。图片的好处是信息丰富,也方便人检查:你预测下一帧图片,人一眼就能看出杯子是不是被推远了,很多视频生成模型天然就适合处理这种表征。代价是图片很重,桌面纹理、背景光照、阴影、相机噪声,全都混在像素里;对机器人动作来说,它未必需要知道桌面木纹长什么样,它更关心的是杯子位置和夹爪姿态。

另一类是点云或 3D 表征。点云来自深度相机或多视角重建,能更直接描述几何形状和空间关系。做抓取、避障、插孔、双臂协作时,3D 信息很有价值,因为它能告诉你物体表面在哪里,夹爪从哪个方向进去更可能不撞。点云的问题也很现实:传感器、标定、遮挡、反光物体都会影响质量;它更擅长说清空间结构,但不一定自然包含材质、摩擦、软物体形变这些信息。

现在很多 WAM 和视频世界模型会用第三类方式:latent space(潜空间表征)。你可以把它理解成压缩后的世界,原始图片太大,模型先用一个编码器把图片压成一串更短的向量或 token,就像把一张高清航拍地形图压缩成导航软件里的地图路线信息。这个压缩过程常见的一种工具是 VAE,Variational Autoencoder。它做的事可以简单理解为先把图片压缩成潜空间表征,需要时再尽量还原回图片;如果你只想让机器人生成动作,不一定每一步都要还原成人能看的图片,模型直接在潜空间表征里预测下一刻世界,动作头 action head 直接从里面读出控制信息,通常会更省算力,也更适合实时控制。

6c8a4898594fac8d0059f4d953e71b1b.png

这里有个工程取舍。图片适合解释和调试,点云适合几何和空间约束,潜空间表征适合大模型训练和快速推理。做研究展示时,预测视频很直观;做真实控制时,能稳定支撑动作的压缩表征可能更有用。

世界规律应该如何学习

教会 WAM 世界规律,并不是把牛顿力学之类的物理定律直接告诉模型,而是让它自己去学。常见的做法是让模型看大量视频、机器人轨迹和动作数据,学一个状态转移规律:现在是这样,过去动作是这样,下一小段时间大概率会变成那样。很多视频世界模型会先把观察压成潜空间表征,再预测未来一小段潜空间表征,避免直接在像素上硬算。

问题在于,未来不是一个确定的标签。杯子下一刻可能轻微滑动,也可能被夹起来一点,还可能因为接触角度不对而偏掉。所以 WAM 预测未来状态时,不能只做简单分类,更像是在生成一个合理的未来分布:哪些变化更可能发生,哪些变化不太合理。

这时就会用到生成式建模的方法,flow matching(流匹配)是其中一种。它的目的是给模型一个充满噪声、看不清未来的状态,让它一步步把这个状态调整成更清晰、更接近真实未来的分布。因为未来本来就是未知的,所以从模型视角看,未来一开始就像一团噪声。在训练的时候,我们手里有完整视频,知道这一帧之后真实发生了什么,所以可以把未来的发展方向告诉模型:从当前状态往后,杯子是往右移动了,还是被夹爪带起来了。模型在大量样本里反复学习这种方向,慢慢就会形成一种世界规律感。

097aed7db06d018bfca31f3b07213225.png

具体到模型结构上,这个 flow matching 通常由 DiT,Diffusion Transformer 来承载:DiT 用 Transformer 处理压缩后的视频 token 和时间条件,学习从噪声状态走向未来状态的方向。放到深度神经网络里,这个方向不是一句规则,而是藏在参数里的预测能力。

真正用的时候,模型不知道未来,只能从当前观察和历史动作出发,生成一个可能的下一小段未来。它不需要一下子想完整个任务,只预测接下来一小段,然后机器人执行、拿到真实反馈,再继续滚动。这个小段滚动的思路很重要,因为我们可以获得真实世界的反馈,它可以不断地矫正模型的想象,把它拉回现实。

动作应该如何生成?

有了预测出来的未来世界,下一步才是动作。最直观的想法是:如果我希望世界从当前状态变成预测里的下一刻状态,那机械臂应该执行什么动作?这就是 inverse dynamics,和机器人控制中的逆动力学不同,这里更准确地应该翻译成逆动态模型。

正向动态模型问的是,给定当前世界和一个动作,下一刻世界会变成什么样。逆动态模型反过来问,给定当前世界和一个希望达到的下一刻世界,机器人应该做什么动作。这个区别对 WAM 很关键,因为它不是单纯让模型看图摆动作,而是让动作和预测出来的世界变化对齐。

在现在的学习式机器人策略里,逆动态模型通常也不是手动将机器人实际位置对齐到图片中,而是训练一个生成式动作模型。常见做法同样会用到 flow matching 这类方法:先从一段带噪声的动作序列开始,再根据当前状态、目标未来状态和历史动作,把它逐步修成一段可执行动作。同样是 flow matching,前面的世界预测模型中的 transformer 是在生成可能的未来,动作逆动态模型中的 transformer 则是在生成能把机器人带向那个未来的动作。

cf935397e1f0420cddf7e568e1df20aa.png

WAM 不一定是先生成一段完整高清视频,再把视频逐帧翻译成电机命令,真实控制里这样太慢,也太容易误差累积。更实际的方式是小段预测、小段执行、真实反馈、小段修正。很多机器人策略会用 action chunking,也就是一次不只输出一个瞬时动作,而是输出接下来一小段动作序列,让机械臂能连续、平滑地执行。

更进一步,这个 action chunk 还会和世界预测结合起来。模型先预测接下来一小段世界变化,再生成对应的一小段动作;机器人执行这段动作以后,相机会拿到新的真实观测。如果真实观测和原来的预测不一样,下一轮预测就要基于真实观测重新修正,而不是继续沿着旧想象往下跑。

573ed6415b7c2bca5a2962a7bc090979.png

动作和世界理解如何融合在一起?

WAM 大致有两类融合路线。一类是级联式:先预测未来状态,再从未来状态里解码动作。好处是结构清楚,中间结果比较容易检查;代价是前面想错了,后面很容易跟着错。

另一类是联合式:未来状态预测和动作生成在同一个框架里一起学。它想解决的问题很直接:世界预测和动作生成不能各干各的。一个模块在想象世界怎么变,另一个模块在生成动作,这两边需要互相看见,动作才更可能和预测后果对齐。

联合式里一个典型思路是 MoT,Mixture-of-Transformers。它可以理解成给不同模态各自留出专业通道:视频 token 走视频流的 transformer,动作 token 走动作流的 transformer。视频流更擅长处理高维视觉变化,动作流更贴近低维控制命令,两边再通过注意力 attention 机制交换信息。

这样做的好处,是不把视觉和动作强行塞进同一个空间。模型既保留了各自的处理方式,又能让动作生成看见世界预测的结果,让世界预测也知道机器人过去和接下来大概要怎么动。 MoT 就像是两个专业小组定期开会:一个负责想象世界,一个负责生成动作,中间通过共享信息把两件事对齐。

VLA 不够用了吗?

VLA 仍然很重要。它解决的是机器人能不能把视觉、语言和动作接起来。你说抓红色杯子,模型能找到红色杯子,理解抓取意图,并输出一段动作。对很多短时程、接触不复杂、容错比较大的任务,这条路线已经很有价值。

但要理解 VLA 的边界,先要抓住它的本质。

VLA 本质上是一种 mapping。

它学的是从观察和语言指令到动作的映射关系:画面里有什么,任务说了什么,历史上类似状态下人类或机器人示范过什么动作,于是模型输出下一段动作。这个 mapping 可以很强,可以覆盖很多物体、场景和语言表达,但它的基本形式仍然是从输入模式映射到动作模式。它可以通过历史帧、action chunking、扩散策略等方法变得更稳定,也可以把这个 mapping 做得很大、很泛化。

WAM 想补的是另一块:动作后果。

这个差别在静态语义任务里问题不大,到了长时程、强接触、高精度、可变形物体,问题就会冒出来。模型知道哪个是杯子,不代表它知道这个角度夹会不会滑。软物体、插孔、双臂协作这类任务也会遇到类似问题。这些失败点都发生在动作之后,也就是说,它们不只要求模型知道当前输入应该映射到什么动作,还要求模型提前判断这个动作会把世界推向哪里。

我的判断是,WAM 真正开始有价值的场景,是任务步骤长、接触多、物体会变形、失败后需要恢复,或者数据可以持续回收迭代。项目越接近真实物理交互,这种预测后果的能力就越值得认真评估。

现在看 WAM,先别急着下终局判断

WAM 这个方向很热,但我不太建议现在就把它看成一个已经定型的新范式。它还在起步阶段,很多方法其实是在 VLA、Diffusion Policy、视频生成模型和世界模型之间重新组合。比如 action chunking、视觉语言条件、闭环执行,这些思路很多都能在 VLA 或动作策略的发展里找到影子。

它真正新的地方,是把动作后果这件事摆到了更显眼的位置。机器人不能只把当前观察映射成动作,还要对动作之后的世界变化有一个可修正的预测。这个判断方向很重要,但具体怎么实现,还没有完全收敛。

原因也很简单,世界模型这个定义太大了。它可以是视频预测,可以是潜空间动态模型,可以接入 3D、触觉、力反馈和本体状态,也可以和 VLA 继续融合。只要一个模型在预测世界如何变化,并把这个预测接到动作生成里,它就有可能被放进 WAM 这条技术路线下。

所以 WAM 会发展成一个独立架构、一组训练目标,还是逐渐融进下一代 VLA 里,我们都还需要持续观察。具身智能领域现在新颖的概念层出不穷,我们需要的不是盲目追求热点,而是站在更长的时间周期上判断哪些工作能真正推动行业发展。

推荐阅读
{{item.author_display_name}}
{{item.author_display_name}}
{{item.author_user_occu}}
{{item.author_user_sign}}
×
右键可直接复制图片
×