WM、WAM、VLA:机器人从看到做的三种模型路线解析
发布时间:2026/10/17 19:46:27 锦皓数字建站

开了很多次项目会我听到最多的一句话是视觉识别都这么准了为什么机器人一上手干活还是翻车说真的目标检测跑到95%以上的mAP6D姿态估计也算得挺准机械臂就是抓不住、推不倒、放不稳。以前我以为是手眼标定不够精细后来才意识到真正的问题根本不是看得不够清楚而是从「看」到「做」之间缺了一整层东西。最近行业内高频出现的三个词——WMWorld Model、WAMWorld Action Model和VLAVision-Language-Action Model本质上都在补这个东西。只是它们的补法完全不同一个侧重想一个侧重想完再做还有一个干脆把看和做直接缝在一起。这篇文章我会围绕这三种机器人模型把原理、网络结构、训练方式、评测方法和落地选型全部拉通讲一遍。不管你是刚进具身智能方向的研究生还是已经在做机器人系统集成、准备从经典方案切向端到端模型的工程师这篇文章应该都能帮你把路线理清楚。1. 从「看」到「做」的最后一公里为什么卡了这么多年1.1 传统机器人技术栈的三层割裂经典机器人系统的路线非常清晰感知模块负责看规划模块负责想路线控制模块负责动手。拿最简单的抓取桌上的红色杯子这个任务来说感知模块输出杯子的类别和6D位姿规划模块根据当前机械臂位姿和杯子位姿算出一条无碰撞轨迹控制模块用PID或者MPC去跟踪这条轨迹。听起来严丝合缝真正跑起来问题一个接一个。我见过最多的翻车现场是这样的感知模块说杯子在某个坐标但那个坐标本身带3毫米误差、1度左右的姿态误差规划模块拿着这个坐标按刚体假设规划轨迹底层控制再因为摩擦、重力补偿不准产生一点跟踪残差。三者误差没有互相抵消而是层层叠加。最后机械臂到地方一看夹爪开口尺寸就比杯子宽一两厘米直接撞过去把杯子怼飞。这种问题的根源是模块之间用非常窄的接口传递信息。感知模块不知道下一步是抓取还是推开规划模块不知道杯子是玻璃的还是塑料的控制模块更不知道任务目标是稳稳端起来还是把水倒掉。信息在每一层都发生了丢失。这是传统系统架构的天花板不是调参能解决的。1.2 感知-规划-控制之间到底丢掉了什么往深了说传统三层架构丢掉的是三类关键信息。第一类是物理常识。杯子放在桌子边缘旁边就是垃圾桶机器人能不能判断我这一推可能导致杯子掉下去传统感知模块给不了这个信息规划模块也不会主动去模拟这个后果。第二类是上下文意图。同样的视觉画面把杯子递给我和把杯子放回柜子对应的动作轨迹完全不同。传统架构里任务指令只被当成一个字符串传给任务调度器视觉模块和规划模块都不真正理解它语言和动作之间没有形成共享表征。第三类是时序一致性。真实世界是连续的物体不是静止不动的。传统感知模块通常做单帧检测规划模块输出开环轨迹一旦环境发生变化整个链路就断掉了。缺少一个未来的世界会怎样演化的内部预测能力机器人就只能在问题发生以后作反应没办法提前预判。1.3 三个缩写词三种解题思路WM、WAM、VLA这三类模型分别对应了三条不同的解题路线。WMWorld Model世界模型解决的核心问题是给定当前状态和动作模型能否预测未来状态它让机器人具备想象能力能在内部模拟环境的动态变化。它的输出不是动作而是世界下一步会怎样。WAMWorld Action Model世界动作模型是在世界模型基础上往前走了一步不仅预测环境状态的变化还把智能体自身的动作也纳入显式建模。你可以把它理解成世界动力学模型策略模型的合体模型内部同时处理环境会怎样变和我该怎么做。VLAVision-Language-Action Model视觉-语言-动作模型则走了另一条路用自然语言作为中间变量把视觉观测直接映射到动作输出。语言在这里不仅是任务指令更是连接视觉特征和动作语义的桥梁。它不再受限于感知模块输出什么结构给规划模块而是端到端地学习看到什么、接到什么指令、输出什么动作。这三者不是互相竞争的关系而是对应机器人内部不同的抽象层次。能把它们彻底搞清楚再去读具身智能方向的论文、选型落地思路会清晰很多。2. WM世界模型与其说预测下一帧不如说在学物理直觉2.1 世界模型回答的本质问题世界模型的本质就是状态转移模型给定当前系统状态、智能体动作预测下一个时间步的状态。放到机器人场景里状态可能是关节角度、末端位姿、物体的坐标也可能是从视觉观测里编码出来的隐变量动作可能是机械臂的关节力矩也有可能是夹爪的开合指令。很多入门者会把世界模型理解成视频预测模型认为只要学会了预测下一帧画面就算建好了世界模型。这是一个常见的误区。像素级预测只是世界模型的一种监督信号不是目的本身。我们真正想要的是模型能够把握环境内部的因果规律比如手推杯子杯子会沿推动方向滑行、杯子到桌子边缘以后继续推会先产生倾斜然后掉下去。我在实际项目里更倾向于把世界模型拆成三个能力来看状态预测能力给定当前状态和动作序列预测未来状态轨迹。代价/奖励预测能力预测某个动作序列会带来什么样的后果、获得多少奖励、产生多大碰撞风险。反事实想象能力在脑海里推演如果我不抓这个杯子而是推开它会发生什么。2.2 内部表征从像素到隐空间中的物理规律早年间做世界模型大家特别喜欢直接预测视频帧。但像素级预测的问题很明显第一是计算量巨大一张256乘256的RGB图像已经够训练吃力的了更别说连续预测几十帧第二是像素里大量细节根本不影响下游决策比如背景纹理、物体表面的花纹预测得再准也没有意义。现在主流做法是在**隐空间latent space**里做预测。视觉编码器把高维图像压缩成一个紧凑的隐状态世界模型在这个隐空间里学习状态转移最后用解码器把预测结果映射回像素或者状态空间。这个思路很大程度上来自强化学习领域的Dreamer系列模型。Dreamer的训练方式非常典型先用一个编码器把历史观测编码成隐状态再用一个序列模型去预测未来隐状态同时训练动作模型去最大化想象中的奖励。整个过程中模型真正学到的不是下一帧画面长什么样而是在什么状态下采取什么动作会导致什么样的状态变化。这就是一种物理直觉的雏形。打个比方你闭上眼睛把手机抛起来再接住你能完成这个动作不是因为你实时看到了手机在哪而是大脑里有一个简化的物理模型在高速推演抛物线。机器人有了世界模型就相当于拥有了这种闭眼推演的能力。2.3 世界模型在机器人里的三个常见用法第一个用法是模型预测控制MPC。模型预测控制本身不依赖学习得到的模型也可以做比如可以基于解析动力学方程来做但真实机器人往往存在摩擦、间隙、柔性变形等难以建模的部分。学习型世界模型的价值在于它能从数据里补偿这些动力学偏差滚动预测未来状态轨迹再选择一条代价最小的轨迹执行。第二个用法是离线强化学习的数据增强。强化学习样本效率低很大一部分原因是在真实环境里试错成本太高。有了世界模型智能体可以在想象的轨迹里做策略更新在同一个批次数据上反复脑补各种可能。Dreamer系列就是用这种方式在多个连续控制任务上大幅提升样本效率的。第三个用法是Sim2Real迁移的误差补偿。仿真环境里训练好的策略搬到真实机器人上往往会因为动力学差异而表现下降。一个常见做法是用真实机器人上采集到的少量轨迹数据微调世界模型再基于微调后的世界模型做进一步规划或策略学习相当于把仿真模型校准到真实世界。部署世界模型时有一个经验训练数据里一定要包含足够的非典型状态。我见过很多团队只让世界模型学成功轨迹上的数据结果模型对手碰到杯子边缘导致杯子歪了这类意外场景完全没有预测能力。用得好的世界模型必须见过足够多的失败样例才能真正理解物理边界在哪。3. WAM世界动作模型从环境会怎样变到我该怎么做3.1 WAM对WM的扩展WAM这个缩写不像WM和VLA那么普及但它的思路在最近一年里出现得越来越频繁。世界动作模型的核心主张是纯粹的世界模型只负责预测环境演化不负责做决策这在很多场景下不够用。真实机器人任务里环境和智能体是耦合在一起的机械臂推杯子杯子动了这个动既包含环境状态变化也包含了智能体动作施加的效果。把二者割裂开建模信息和效率都会打折扣。WAM把世界模型和动作策略放在同一个模型里联合建模——它既输出对下一状态的预测也输出当前策略推荐的动作。你可以理解成世界模型负责提供想象空间动作预测头负责在这个想象空间里寻找最优应对方式。3.2 显式动作建模与闭环WAM和WM最核心的差别在显式动作建模这个点上。世界模型内部通常不关心智能体动作的语义动作对于它只是一个输入变量WAM则把动作当作模型需要生成的核心目标和状态预测目标一起联合训练。这样一来模型内部天然形成了一个闭环输入历史状态序列模型预测未来状态分布和动作概率执行机构按动作执行后新的观测再反馈进模型。这种设计带来的直接好处是响应速度。VLA这类端到端模型如果做得不够轻量推理频率可能只有10赫兹、20赫兹这对高速动态任务来说远远不够。WAM因为把环境动态和策略耦合得很紧在许多连续控制任务上可以做到更高频率的动作输出同时用世界模型部分做短时预测来填补控制间隙。不过要泼一盆冷水目前在公开论文里WAM并没有一个像VLA里RT-2或者OpenVLA那样公认的标准实现。它更多是一种架构思想不同工作里会演化出世界模型策略头世界动作联合预测器等多种变形。读文献的时候看到World Action Model这个词一定要去确认它内部到底预测什么、怎么训练不要默认所有WAM都是同一种结构。3.3 WAM的典型网络结构我结合自己做过的原型项目说一下比较典型的WAM结构长什么样大致可以拆成四个部分观测编码器把RGB图像、深度图、本体关节角度编码为一个紧凑的观测特征。世界动力学模块接收当前隐状态和动作预测下一个隐状态设计上比较接近WM里的序列模型。动作预测头根据当前的隐状态和目标输出动作分布。动作空间是连续关节坐标或力矩一般用高斯分布或混合高斯分布建模。状态预测辅助头额外预测未来的关键状态比如目标物体的6D位姿用来在训练时给模型提供更强的状态监督。训练时损失函数一般有三项第一项是状态重建损失要求模型生成的未来隐状态能被解码回接近真实的状态第二项是动作模仿损失让动作预测头对齐专家轨迹里的动作标签第三项是一致性损失确保同一个状态的不同观测视角编码得到的隐状态一致。我在训练WAM时踩过一个大坑如果状态重建损失权重设得太低模型会快速塌缩成一个纯行为克隆模型完全忽略对世界动态的建模但如果权重设得太高动作预测头又学不到东西策略表现很差。我最后是用课程学习的方式先让世界动力学模块单独学几百个epoch再把动作预测头打开联合训练效果比一开始就端到端硬训稳定很多。4. VLA视觉-语言-动作模型一句话让机器人上手干活4.1 VLA的核心思想语言作为中间变量VLA是当前具身智能领域最出圈的一个方向原因是它把多模态大模型的成熟技术直接搬到了机器人控制上。一个典型的VLA网络由三个部分构成视觉编码器负责把图像变成视觉token大语言模型负责理解指令并融合视觉信息动作头负责把推理结果映射成动作输出。语言在VLA里承担的作用非常特殊。它不只是指令输入更是一种共享语义空间。举个例子把红色杯子放到托盘上这句话里红色杯子让模型把视觉注意力放到目标物体上放到托盘上让模型激活过去在类似指令下学到的动作模式。哪怕模型没有见过当前这张桌子的具体布局只要语言指令里的语义与训练数据里的任务有重合它就能做一定程度的迁移。这也是VLA相比传统机器人系统的最大优势指令泛化和跨任务复用。传统系统每加一个新任务基本要重写任务逻辑和约束VLA只需要换一句自然语言指令模型就能尝试在已有经验里组合出对应的行为。4.2 从RT-2到OpenVLA再到π0VLA在怎么演进如果只看2023年之后的VLA发展可以拉一条很清晰的线。RT-2是Google的经典工作做法是把机器人动作离散成token和图像token一起送入视觉语言模型把下一动作token当作下一句词来生成。RT-2证明了用大规模互联网图文数据预训练的模型可以直接迁移到机器人控制上但离散化动作空间带来的问题也很明显动作精度不足高频执行时会抖动。OpenVLA是开源社区最重要的里程碑之一7B参数规模视觉部分用预训练的视觉编码器语言部分用LLaMA-2在Open X-Embodiment等大规模跨具身数据集上训练。它的最大价值不是性能而是把VLA训练的门槛从大公司专属拉到了普通实验室也能跑的水平。很多个人开发者就是靠OpenVLA进入这个领域的。π0也就是业界常说的Pi系列由Physical Intelligence提出动作头不再走离散token而是引入了Flow Matching技术直接生成连续的动作分布。这个改动的意义很实际连续动作生成的频率更高、控制更平稳更适合真实机械臂高频控制。π0同时也在模型架构上吸收了更多机器人状态的输入比如关节角度、夹爪开度实用性比第一代VLA强不少。另外值得提一句的是VLA已经不局限于机械臂操作。最近NVIDIA开源的Alpamayo就是面向辅助驾驶场景的VLA推理模型把视觉语言动作的框架用到了车辆控制上。这说明VLA作为一种通用范式正在从桌面操作走向更广阔的物理世界交互场景。4.3 训练VLA离不开的真实步骤与Libero测试很多朋友拿到一个VLA模型以后第一反应是赶紧部署到真机。我强烈建议先别这么干先在仿真环境里把模型跑熟、把评测流程建立起来再上真机。在LiBero上做VLA测试是目前比较标准的一条路径。LiBero是一个基于MuJoCo物理引擎的桌面操作benchmark包含了多个长程任务比如把黑色碗放进柜子把左边盘子放到洗碗架上。它特别适合用来衡量VLA在长期任务上的表现因为任务里往往有多个物体、多步操作模型光学会单步动作是不够的。具体操作步骤大致如下下载LiBero数据集和对应的benchmark代码仓库里面包含HDF5格式的轨迹数据字段主要有观测图像、关节状态、语言指令和动作真值。创建conda环境安装依赖重点确认PyTorch版本和MuJoCo版本的兼容性。加载一个预训练好的VLA模型先用LiBero自带的评估脚本跑一遍确认模型能正常加载和推理。针对某一个大类任务做微调把训练集换成LiBero对应子任务的轨迹数据训练几个epoch后再回到评测脚本上测成功率。评测时不要只盯着一个指标。LiBero的官方评估脚本里除了任务成功率还有平均完成步数、单步动作误差、不同初始位姿下的稳定性等维度。我自己测试的时候发现一个模型可能在固定初始位姿下成功率接近满分但把物体初始位置稍微挪一下成功率立刻掉一半。这说明模型过拟合了初始布局并没有真正学会任务的语义目标。训练VLA的数据组装也是个关键活。一份可用的VLA训练样本通常包括当前视觉观测、语言指令、机器人状态和动作标签。训练流程一般分两段先在图文数据和视频数据上做视觉语言预训练让模型具备视觉理解和语言对齐能力再在大规模机器人轨迹数据上做微调让模型学会把语义理解映射成动作。开源数据集里Open X-Embodiment是目前覆盖面最广的跨机器人数据集几乎所有开源VLA都会在它上面训练。但要注意跨数据集的机器人构型差异很大如果不做统一的动作空间归一化训练会非常不稳定。5. WM/WAM/VLA横向对比不是同一赛道是链条的三段5.1 核心维度对比表很多人在选模型时容易把WM、WAM、VLA放在一个擂台上比谁强谁弱这个视角本身就是错的。它们解决的不是同一个问题更像是从看到想再到做这条链条上的三段。我用一张表把核心维度拉通对比维度WM世界模型WAM世界动作模型VLA视觉-语言-动作模型核心问题世界下一步会怎样基于世界变化我该怎么做接到这条指令我该执行什么动作主要输入历史状态序列、动作序列历史状态序列、动作、任务目标视觉观测、语言指令、机器人状态主要输出未来状态预测/隐表征未来状态预测动作分布动作序列离散token或连续动作训练数据视频、传感器流、部分状态数据视频动作轨迹状态标签跨具身机器人数据图文语料语言能力一般没有视具体设计而定核心能力必不可少推理频率高隐空间预测很快较高动作输出可与状态预测耦合通常偏低大模型推理开销大典型代表Dreamer系列、各类latent world model文献中暂无统一头部实现多为架构模块RT-2、OpenVLA、π0、Alpamayo最擅长场景规划、想象、模型预测控制动态环境下闭环决策跨任务语义泛化、指令操作这张表里最值得关注的是推理频率这一行。很多人只看成功率忽略了控制频率结果模型推一次动作要100毫秒机械臂已经走出一大截了。VLA里面的7B大模型版本不做量化推理速度很难上去WM一般只要跑一个小型序列模型推理开销低很多WAM介于两者之间。5.2 典型适用场景与选型建议选型判断在我看来可以按三条路径走。如果你主要做运动规划、轨迹优化、Sim2Real迁移这类任务你更需要的是环境动态的精确描述这时候应该选WM。它能帮你做MPC的前向预测也能在离线强化学习里当数据增强器用世界模型来扩充经验池。如果你做的是动态环境里的实时决策比如机械臂要避开移动的障碍物、抓取缓慢运动的目标那WAM这种世界动态动作预测联合建模的思路会更匹配。它比纯WM多了动作生成能力比VLA更容易做到实时闭环。如果你做的是多任务、多指令的泛化操作例如把抽屉里的螺丝刀拿出来把绿色杯子放到柜子第二层那不要纠结直接上VLA。语言指令带来的泛化能力是前两类模型没法比的。但前提是你得接受它的数据量需求和控制频率限制。5.3 三种模型能否组合使用可能有人会问能不能把三种模型组合到同一个系统里我的答案是可以而且这可能是工程上最现实的方案。一个实际可行的组合方式是用VLA作为高层任务规划器它根据自然语言指令输出一系列高层动作意图比如先接近杯子再抓取然后移动到托盘上方同时用WM作为环境预测器在VLA每个动作意图执行之前推演这个动作可能会导致什么后果提前规避碰撞风险底层控制器用MPC或传统控制方法去执行具体轨迹。如果系统控制频率还满足不了动态环境下修正要求再加上一层轻量WAM做短时闭环纠偏。我有一个亲测有效的经验VLA模型的输出不要直接作为底层目标位置而是先经过一个安全过滤层。安全过滤层可以用规则实现也可以用轻量WM实现目标是判断VLA输出的动作是否会导致碰撞、超出关节限位等危险情况。这样既能保住VLA的泛化能力又能避免端到端模型偶尔犯低级错误带来的安全问题。6. 落地上手之前先避开这些坑6.1 数据闭环是最大瓶颈很多团队买来机械臂以后第一反应是找开源模型下载一个OpenVLA拿真机跑跑完发现效果远不如论文里展示的那么好。原因很简单开源VLA训练时所用的机器人构型和你的不一定一致数据分布也不一样。想让模型在你的机器人上表现好几乎必然要在自有数据上做微调。数据闭环难在哪里首先是采集成本。真实机器人遥操作采集轨迹一个人熟练操作一天可能只能采几百条有效轨迹对于需要上万乃至几十万条样本的VLA微调来说远远不够。其次是数据一致性。不同操作员操作习惯不同动作分布差异很大模型学到的策略会被操作员风格带偏。我的建议是先用开源数据把模型跑起来确认基础设施没有问题再开始采集自有数据。采集时尽量固定操作员、固定场景光照、固定目标物体等到模型能稳定复现基本任务以后再逐步增加场景多样性。不要一上来就追求多样化数据和环境噪声太大后期排查问题会非常痛苦。6.2 评测指标别只看任务成功率评测VLA模型时只报一个任务成功率是最常见的误区。我在LiBero上一开始也是这么干的后面发现成功率波动极大换一个随机种子、把物体初始位置平移几厘米成功率能差十几个百分点。后来我形成了一套固定的评测习惯每个任务至少跑50个episode覆盖5组以上的随机初始位姿不能只跑固定初始条件。除了成功率额外记录平均完成步数、干预率人类需要介入纠正模型的频率和单步动作误差。分阶段统计而不是只报最终成功率。比如一个长程任务里模型到底是第一步拿物体就失败还是最后放置阶段失败这决定了后续优化方向完全不一样。评测这一块真的值得多花时间。我在不止一个项目里见过大家为了赶节点只测了十几个episode看着成功率挺高一上真机或者换场景就露馅。评测流程本身也是项目资产可以沉淀成一套脚本每次模型迭代后自动跑回归这是一笔非常划算的投资。6.3 个人/小团队从哪个模型入门给想入门的个人开发者或者小团队一个直接的建议第一个接触的模型优先选OpenVLA。原因很现实它开源彻底、社区活跃、资料齐全而且7B参数正好是个人GPU服务器能扛住的量级。你可以先跑通LiBero上的评测再采集少量自有数据微调完整走一遍数据处理-微调-评测-部署的流程。这个流程的价值比模型本身更大。如果你对强化学习和连续控制更感兴趣可以考虑从DreamerV3这类世界模型入手。它不需要语言数据在仿真环境里就能跑适合理解世界模型隐空间预测这套核心机制。项目周期短实验反馈快对建立直觉非常有帮助。WAM目前不建议作为第一个项目原因我说过它没有标准实现不同论文里结构差异很大需要具备足够的模型设计和调试能力才能驾驭。等你把WM和VLA都跑熟了再去看WAM相关的文献会轻松很多。我自己的体会是模型选型永远服务于你真正要解决的问题。如果你的机器人大部分时间在一个相对固定的环境里做重复任务传统方案加一个轻量WM做预测补偿性价比可能比上VLA要高得多如果你的目标是让机器人能听懂人话、应对各种口味的任务那VLA这一条路是绕不开的只是要做好吃数据、调模型的长期准备。最后再分享一个实操小技巧不管用哪种模型第一版上线前先给机器人加一个急停逻辑和动作范围的硬约束VLA这种端到端模型偶尔会给你“惊喜”没有兜底的系统再好的模型也不敢放手用。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。