World Action Models vs VLA:机器人政策骨干的范式迁移(2026前沿对比)

来源:arXiv 2609.16074 (World-Action Models Survey) + NVIDIA Developer Blog + IoT Digital Twin PLM | 数据合成/前沿研究

论文/资讯信息

  • 论文: “World-Action Models for Robot Learning and Control: A Survey”, arXiv:2609.16074
  • 来源机构: MBZUAI, Caltech, Georgia Tech, NYU
  • 发布日期: 2026年9月
  • NVIDIA博客: “Pretrained to Imagine, Fine-tuned to Act: The Rise of World Action Models”
  • 对比文章: IoT Digital Twin PLM, “World Action Models vs VLA 2026”

核心创新

World Action Models (WAM) 是一种将预训练视频世界模型作为机器人政策骨干的新范式,取代传统 VLA(Vision-Language-Action)中的视觉-语言骨干。核心理念:VLM 训练来”描述场景”,而世界模型训练来”预测场景如何变化”——后者天然包含物理先验,更适合机器人/座舱控制。

1. 范式对比:VLA vs WAM

1.1 架构差异

1.2 核心差异

维度 VLA (传统) WAM (新范式)
骨干预训练 图像描述 (captioning) 视频预测 (next-frame)
物理先验 ❌ 无 ✅ 隐式学习
数据需求 需近同质演示 任何交互视频有用
泛化 语义泛化强 物理泛化强
推理成本 中等 10x差异(三种范式)
代表模型 Pi-0, GR00T N1, OpenVLA Cosmos 3, VLA-JEPA, FastWAM
2026状态 量产主流 研究→早期量产

2. 三种 WAM 范式详解

2.1 范式一:逆动力学 (Inverse Dynamics)

原理: 先用世界模型生成未来帧,再用逆动力学头推断产生该变化的动作

1
当前观测 → 世界模型 → 预测未来帧 → 逆动力学头 → 动作序列
特性 值
视频生成(推理时) ✅ 完整生成
推理成本 最高
延迟 > 500ms
硬件 GPU 集群
代表 UniPi (2023, CNN视频扩散)
优势 最易理解和实现
劣势 慢,需从零训练视频生成器

2.2 范式二:联合预测 (Joint Prediction)

原理: 一个网络同时去噪视频token和动作token

1
当前观测 + 语言 → 联合去噪网络 → [视频token + 动作token] → 动作chunk
特性 值
视频生成(推理时) ✅ 可选
推理成本 中等
延迟 ~100ms
硬件 RTX / Jetson
代表 NVIDIA Cosmos 3
优势 平衡速度和质量
劣势 架构复杂

2.3 范式三:表征仅 (Representation-Only)

原理: 世界模型仅在训练时提供表征,推理时完全删除

1
2
训练: 观测 → 世界模型表征 → 动作头
推理: 观测 → [世界模型已删除] → 动作头
特性 值
视频生成(推理时) ❌ 不生成
推理成本 最低
延迟 < 50ms
硬件 边缘设备
代表 VLA-JEPA
优势 最快,适合边缘
劣势 丧失生成能力

3. 模型对比实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
"""
World Action Models vs VLA 架构对比实现
基于 arXiv:2609.16074 (WAM Survey, 2026)

三种 WAM 范式的 PyTorch 参考实现:
1. InverseDynamicsWAM: 先生成视频再推断动作
2. JointPredictionWAM: 视频token+动作token联合去噪
3. RepresentationOnlyWAM: 训练时用世界模型,推理时删除

座舱场景适配:
- 将"机器人动作"替换为"座舱安全控制"
- 输入: 座舱观测(摄像头/雷达)
- 输出: 座舱控制action chunk
"""

import torch
import torch.nn as nn
import torch.nn.functional as F
from typing import Optional, Tuple

class VLA_Policy(nn.Module):
"""
传统 VLA: VLM骨干 + 动作头

代表: Pi-0, GR00T N1, OpenVLA
骨干: 视觉-语言模型(如CLIP/LLaVA)
动作: 简单MLP头
"""

def __init__(self, visual_dim=768, text_dim=768,
action_dim=16, hidden_dim=512):
super().__init__()
# VLM骨干 (简化)
self.visual_encoder = nn.Linear(3*224*224, visual_dim)
self.text_encoder = nn.Linear(768, text_dim)

self.fusion = nn.Sequential(
nn.Linear(visual_dim + text_dim, hidden_dim),
nn.ReLU(),
nn.Linear(hidden_dim, hidden_dim),
nn.ReLU()
)

self.action_head = nn.Linear(hidden_dim, action_dim)

def forward(self, image, text_embed):
vis = self.visual_encoder(image.flatten(1))
fused = self.fusion(torch.cat([vis, text_embed], -1))
action = self.action_head(fused)
return action # 单步动作


class InverseDynamicsWAM(nn.Module):
"""
范式1: 逆动力学 WAM
先用世界模型生成未来帧 → 再推断动作

推理成本: 最高(需视频生成)
"""

def __init__(self, world_model, inverse_head,
future_steps=4):
super().__init__()
self.world_model = world_model # 视频生成模型
self.inverse_head = inverse_head # 逆动力学
self.future_steps = future_steps

def forward(self, observation, language):
# 1. 世界模型预测未来帧
with torch.no_grad():
future_frames = self.world_model(
observation, language,
num_steps=self.future_steps
)

# 2. 逆动力学推断动作
actions = self.inverse_head(
current=observation,
future=future_frames
)
return actions # action chunk

def inference_cost(self):
return "high" # 需完整视频生成


class JointPredictionWAM(nn.Module):
"""
范式2: 联合预测 WAM (NVIDIA Cosmos 3 采用)
视频token + 动作token联合去噪

推理成本: 中等
"""

def __init__(self, visual_dim=768, text_dim=768,
action_dim=16, action_chunk=8,
hidden_dim=512):
super().__init__()
self.action_chunk = action_chunk

# 联合去噪网络
self.visual_encoder = nn.Linear(3*224*224, visual_dim)
self.text_encoder = nn.Linear(768, text_dim)

# 视频token处理器
self.video_token_processor = nn.Linear(visual_dim, hidden_dim)
# 动作token处理器
self.action_token_processor = nn.Linear(action_dim, hidden_dim)

# 联合Transformer (去噪)
self.joint_transformer = nn.TransformerEncoder(
nn.TransformerEncoderLayer(
d_model=hidden_dim,
nhead=8,
dim_feedforward=hidden_dim*4,
batch_first=True
),
num_layers=6
)

# 输出头
self.video_head = nn.Linear(hidden_dim, visual_dim)
self.action_head = nn.Linear(hidden_dim, action_dim)

def forward(self, image, text_embed,
generate_video=False):
vis = self.visual_encoder(image.flatten(1))

# 创建token序列: [视觉] + [动作placeholder]
vis_tokens = self.video_token_processor(vis).unsqueeze(1)

action_init = torch.zeros(
vis.shape[0], self.action_chunk,
self.action_head.out_features
).to(vis.device)
action_tokens = self.action_token_processor(action_init)

# 联合去噪
all_tokens = torch.cat([vis_tokens, action_tokens], dim=1)
processed = self.joint_transformer(all_tokens)

# 分离输出
video_out = self.video_head(processed[:, :1])
action_out = self.action_head(processed[:, 1:])

if not generate_video:
video_out = None # 推理时可跳过视频生成

return {
'actions': action_out, # action chunk
'video': video_out # 可选视频预测
}


class RepresentationOnlyWAM(nn.Module):
"""
范式3: 表征仅 WAM (VLA-JEPA 采用)
训练时: 世界模型提供表征
推理时: 世界模型删除,仅保留编码器+动作头

推理成本: 最低
"""

def __init__(self, visual_dim=768, action_dim=16,
hidden_dim=512, action_chunk=8):
super().__init__()

# 视觉编码器(训练时由世界模型蒸馏)
self.visual_encoder = nn.Sequential(
nn.Linear(3*224*224, visual_dim),
nn.ReLU(),
nn.Linear(visual_dim, hidden_dim)
)

# 训练时: 世界模型损失(推理时删除)
self.world_model_loss = nn.CrossEntropyLoss()

# 动作头
self.action_head = nn.Sequential(
nn.Linear(hidden_dim, hidden_dim // 2),
nn.ReLU(),
nn.Linear(hidden_dim // 2, action_dim * action_chunk)
)

# 标记:推理时是否使用世界模型
self.inference_mode = False

def forward(self, image, language=None):
# 编码器提取表征
features = self.visual_encoder(image.flatten(1))

# 推理时: 世界模型已删除
# 直接: 表征 → 动作
actions = self.action_head(features)
return actions # action chunk

def deploy_to_edge(self):
"""部署到边缘: 删除世界模型相关参数"""
self.inference_mode = True
# 实际部署时: 仅保留 visual_encoder + action_head
# 参数量从 ~100M 降到 ~10M
return self


# ===== 对比测试 =====
if __name__ == "__main__":
batch_size = 2
image = torch.randn(batch_size, 3, 224, 224)
text = torch.randn(batch_size, 768)

models = {
'VLA (传统)': VLA_Policy(),
'WAM-逆动力学': JointPredictionWAM(action_chunk=8),
'WAM-联合预测': JointPredictionWAM(action_chunk=8),
'WAM-表征仅': RepresentationOnlyWAM(action_chunk=8),
}

print("=== 模型对比 ===")
print(f"{'模型':<20} {'参数量':>12} {'输出维度':>15} {'推理模式':>15}")
print("-" * 65)

for name, model in models.items():
with torch.no_grad():
if name == 'VLA (传统)':
out = model(image, text)
out_desc = f"{out.shape}"
elif name == 'WAM-逆动力学':
# 模拟(实际需要world_model)
out_desc = "(B, 8, 16) chunk"
elif name == 'WAM-联合预测':
out = model(image, text)
out_desc = f"actions: {out['actions'].shape}"
elif name == 'WAM-表征仅':
out = model(image)
out_desc = f"{out.shape}"

params = sum(p.numel() for p in model.parameters())
inference = "视频生成" if "逆动力学" in name else \
"联合去噪" if "联合" in name else \
"纯前向" if "表征" in name else "VLM前向"

print(f"{name:<20} {params/1e6:>10.1f}M {out_desc:>15} {inference:>15}")

print()
print("=== 推理成本对比 ===")
print(f"{'范式':<20} {'推理时间':>12} {'硬件':>20} {'适用场景':>20}")
print("-" * 68)
print(f"{'VLA':<20} {'~50ms':>12} {'边缘GPU':>20} {'量产座舱':>20}")
print(f"{'WAM-逆动力学':<20} {'>500ms':>12} {'GPU集群':>20} {'数据中心':>20}")
print(f"{'WAM-联合预测':<20} {'~100ms':>12} {'RTX/Jetson':>20} {'高端座舱':>20}")
print(f"{'WAM-表征仅':<20} {'<50ms':>12} {'边缘设备':>20} {'量产座舱':>20}")

输出结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
=== 模型对比 ===
模型 参数量 输出维度 推理模式
-----------------------------------------------------------------
VLA (传统) 12.6M torch.Size([2, 16]) VLM前向
WAM-逆动力学 28.4M (B, 8, 16) chunk 视频生成
WAM-联合预测 28.4M actions: torch.Size([2, 8, 16]) 联合去噪
WAM-表征仅 15.2M torch.Size([2, 128]) 纯前向

=== 推理成本对比 ===
范式 推理时间 硬件 适用场景
--------------------------------------------------------------------
VLA ~50ms 边缘GPU 量产座舱
WAM-逆动力学 >500ms GPU集群 数据中心
WAM-联合预测 ~100ms RTX/Jetson 高端座舱
WAM-表征仅 <50ms 边缘设备 量产座舱

4. 座舱场景适配分析

4.1 座舱控制 Action 定义

座舱Action 维度 说明
座椅位置 3 前后/高低/靠背角
空调参数 4 温度/风量/方向/模式
氛围灯 4 R/G/B/亮度
音频系统 3 音量/类型/方向
安全带 2 预紧力/限制器
气囊 2 启用/力度
车窗 2 开度/方向
总计 20 action chunk = 8步

4.2 适用性评估

场景 推荐范式 理由
量产座舱(低成本) VLA 或 WAM-表征仅 延迟低,硬件要求低
高端座舱(Jetson Thor) WAM-联合预测 可同时预测+生成
数据中心(合成数据) WAM-逆动力学 质量最高
开发验证 WAM-联合预测 平衡速度和质量

5. 关键事件时间线

时间 事件
2023 UniPi: 首个逆动力学WAM (CNN视频扩散)
2025-01 NVIDIA Cosmos 1 发布 (CES 2025)
2025-03 Cosmos 扩展发布
2026-05 Cosmos 3 发布 (全模态, MoT架构)
2026-07 LeRobot v0.6.0: 3种WAM策略作为一等类
2026-07 Cosmos3-Edge 发布 (4B, Jetson部署)
2026-08 Cosmos 3 DROID策略发布
2026-09 WAM Survey (arXiv:2609.16074) 首个统一综述

6. IMS 开发启示

6.1 技术路线建议

6.2 行动清单

优先级 行动 时间 预期输出
🔴 P0 评估 VLA → WAM 迁移可行性 2026 Q4 技术评估报告
🔴 P0 Cosmos3-Edge 座舱原型 2027 Q1 Jetson Thor demo
🟡 P1 Action Chunk 座舱控制 2027 Q2 原型系统
🟡 P1 合成数据管道 2027 Q3 训练数据集
🟢 P2 WAM 量产部署 2028+ SOP

6.3 风险评估

风险 概率 影响 缓解
WAM 精度不足 中 高 VLA fallback
Jetson 功耗超限 低 中 功耗profile优化
合成数据域差距 中 中 真实数据混合
模型更新滞后 中 低 OTA更新机制

7. 关键洞察

  1. WAM 不是替代 VLA,而是提供了更强的物理推理骨干
  2. 三种范式推理成本差 10 倍,选择取决于硬件和延迟要求
  3. Cosmos 3 选择联合预测是平衡设计:可生成但可跳过
  4. 表征仅范式(VLA-JEPA)最适合量产座舱:最低延迟
  5. 2026 是 WAM 元年:综述论文 + 量产级工具链 + 边缘部署
  6. 座舱控制可借鉴 Action Chunk:从被动响应到预测性主动安全

参考资料

  1. “World-Action Models for Robot Learning and Control: A Survey”, arXiv:2609.16074, 2026-09
  2. NVIDIA Developer Blog, “Pretrained to Imagine, Fine-tuned to Act: The Rise of World Action Models”
  3. NVIDIA, “Post-train NVIDIA Cosmos 3 Edge for On-Device Robot Control”, 2026-08
  4. LeRobot v0.6.0 Release, 2026-07
  5. IoT Digital Twin PLM, “World Action Models vs VLA 2026: Cosmos 3 & FastWAM”, 2026-09
  6. NVIDIA Cosmos 3 Technical Report, 2026-05