NVIDIA Cosmos 3 模型工厂:端到端物理 AI 数据流水线——IMS 座舱数据合成的终极引擎

来源:AWS 机器学习博客 + NVIDIA 研究,2026年9月4日
核心创新:单一模型同时做数据生成 + 后训练 + 闭环评估
IMS 相关性:⭐⭐⭐⭐⭐(座舱数据合成是 IMS 核心痛点)


原文信息

项目 内容
标题 Build a Physical AI model factory with NVIDIA Cosmos 3 on SageMaker HyperPod
发布方 AWS Machine Learning Blog
发表日期 2026年9月4日
作者 Nathan Arnold, Eric Saleh (AWS)
技术报告 NVIDIA Cosmos 3 Technical Report
许可证 OpenMDW-1.1(Linux Foundation)
链接 https://aws.amazon.com/blogs/machine-learning/build-a-physical-ai-model-factory-with-nvidia-cosmos-3-on-sagemaker-hyperpod/
代码 https://github.com/awslabs/awsome-distributed-ai

核心创新:一个模型三个角色

Cosmos 3 的三大突破

突破 传统方案 Cosmos 3 价值
单一模型多模态 视频生成器 + VLM 分别运行 一个 Transformer 同时处理视频/图像/动作/声音 减少模型数量
三模式复用 生成、训练、评估各用不同系统 同一模型三种模式:前向动力学、逆动力学标签、动作策略 简化流水线
推理非对称 训练和推理相同计算量 训练全去噪 + 解码,推理跳过视频解码只输出动作 部署轻量化

架构设计

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
"""
NVIDIA Cosmos 3 架构复现

核心设计:Mixture-of-Transformers (MoT)
- Reasoner:预测下一个 token(理解世界)
- Generator:去噪视频/音频/动作(生成世界)
- 双流注意力:Generator 在每层都参考 Reasoner 的输出

对比传统方案:
- 传统:DiT(视频生成)+ VLM(文本理解),只在最后交叉注意力一次
- Cosmos 3:Reasoner 和 Generator 在每一层都通过双流注意力交互
"""

import torch
import torch.nn as nn
import torch.nn.functional as F
from typing import Dict, List, Tuple

class CosmosMoTLayer(nn.Module):
"""
Mixture-of-Transformers 单层

两个专家(Reasoner + Generator)在每层通过双流注意力交互

AR zone(文本+视觉理解)→ Reasoner 处理
DM zone(视频+音频+动作生成)→ Generator 处理

关键:DM queries 可以看到 AR keys(全注意力)
AR queries 只能看到 AR keys(因果注意力)
"""

def __init__(self, dim: int = 2048, num_heads: int = 16):
super().__init__()
self.dim = dim
self.num_heads = num_heads

# Reasoner(AR 专家)
self.reasoner_attn = nn.MultiheadAttention(dim, num_heads, batch_first=True)
self.reasoner_ffn = nn.Sequential(
nn.Linear(dim, dim * 4),
nn.GELU(),
nn.Linear(dim * 4, dim)
)
self.reasoner_norm1 = nn.LayerNorm(dim)
self.reasoner_norm2 = nn.LayerNorm(dim)

# Generator(DM 专家)
self.generator_attn = nn.MultiheadAttention(dim, num_heads, batch_first=True)
self.generator_ffn = nn.Sequential(
nn.Linear(dim, dim * 4),
nn.GELU(),
nn.Linear(dim * 4, dim)
)
self.generator_norm1 = nn.LayerNorm(dim)
self.generator_norm2 = nn.LayerNorm(dim)

# 跨专家注意力(Generator attend to Reasoner)
self.cross_attn = nn.MultiheadAttention(dim, num_heads, batch_first=True)
self.cross_norm = nn.LayerNorm(dim)

def forward(self, ar_tokens: torch.Tensor, dm_tokens: torch.Tensor,
ar_mask: torch.Tensor = None, dm_mask: torch.Tensor = None) -> Tuple[torch.Tensor, torch.Tensor]:
"""
Args:
ar_tokens: (B, L_ar, D) 自回归区域(文本+视觉理解)
dm_tokens: (B, L_dm, D) 扩散区域(视频+音频+动作)
ar_mask: AR 因果掩码
dm_mask: DM 全注意力掩码(可看到 AR+DM)

Returns:
ar_out, dm_out
"""
# 1. Reasoner 自注意力(因果)
ar_residual = ar_tokens
ar_out, _ = self.reasoner_attn(ar_tokens, ar_tokens, ar_tokens,
attn_mask=ar_mask)
ar_tokens = self.reasoner_norm1(ar_residual + ar_out)
ar_tokens = self.reasoner_norm2(ar_tokens + self.reasoner_ffn(ar_tokens))

# 2. Generator 对 AR+DM 的注意力(全注意力)
# Generator 可以看到 Reasoner 的输出
dm_residual = dm_tokens
# 拼接 AR + DM 作为 key/value
kv_tokens = torch.cat([ar_tokens.detach(), dm_tokens], dim=1)
dm_out, _ = self.cross_attn(dm_tokens, kv_tokens, kv_tokens,
attn_mask=dm_mask)
dm_tokens = self.cross_norm(dm_residual + dm_out)

# 3. Generator 自注意力
dm_residual = dm_tokens
dm_out, _ = self.generator_attn(dm_tokens, dm_tokens, dm_tokens)
dm_tokens = self.generator_norm1(dm_residual + dm_out)
dm_tokens = self.generator_norm2(dm_tokens + self.generator_ffn(dm_tokens))

return ar_tokens, dm_tokens


class Cosmos3ModelFactory:
"""
Cosmos 3 物理AI模型工厂

三种运行模式:
1. 前向动力学(世界模型):生成合成视频数据
2. 逆动力学(标签器):自动标注真实数据
3. 动作策略(部署):直接输出动作

IMS 座舱应用:
- 模式1:生成合成座舱场景视频(疲劳/分心/酒驾)
- 模式2:自动标注真实座舱数据
- 模式3:DMS 决策输出(警告等级)
"""

def __init__(self, config: dict = None):
config = config or {}
self.dim = config.get('dim', 2048)
self.num_layers = config.get('num_layers', 32)
self.num_heads = config.get('num_heads', 16)

# 模态编码器
self.text_encoder = nn.Linear(768, self.dim) # 文本
self.vit_encoder = nn.Linear(1024, self.dim) ␣# 视觉理解
self.vae_encoder = nn.Linear(512, self.dim) # 视频生成
self.action_encoder = nn.Linear(64, self.dim) # 动作

# MoT 层
self.layers = nn.ModuleList([
CosmosMoTLayer(self.dim, self.num_heads)
for _ in range(self.num_layers)
])

# 模式特定的解码器
self.video_decoder = nn.Linear(self.dim, 512) # 视频解码
self.action_decoder = nn.Linear(self.dim, 64) # 动作解码
self.text_decoder = nn.Linear(self.dim, 768) # 文本解码

def forward(self, mode: str, inputs: dict) -> dict:
"""
根据模式运行不同的前向传播

Args:
mode: 'world_model' | 'labeler' | 'policy'
inputs: 模态输入字典
"""
# 编码所有模态
ar_tokens = []
if 'text' in inputs:
ar_tokens.append(self.text_encoder(inputs['text']))
if 'vision' in inputs:
ar_tokens.append(self.vit_encoder(inputs['vision']))

dm_tokens = []
if 'video_latent' in inputs:
dm_tokens.append(self.vae_encoder(inputs['video_latent']))
if 'action' in inputs:
dm_tokens.append(self.action_encoder(inputs['action']))

ar = torch.cat(ar_tokens, dim=1) if ar_tokens else None
dm = torch.cat(dm_tokens, dim=1) if dm_tokens else None

# MoT 层
for layer in self.layers:
ar, dm = layer(ar, dm)

# 模式特定解码
if mode == 'world_model':
# 生成视频
return {'video': self.video_decoder(dm)}
elif mode == 'policy':
# 推理时跳过视频解码,只输出动作
return {'action': self.action_decoder(dm)}
elif mode == 'labeler':
# 逆动力学:从视频推断动作标签
return {'action_label': self.action_decoder(dm)}


# ==================== 测试代码 ====================
if __name__ == "__main__":
import time

factory = Cosmos3ModelFactory(config={'dim': 512, 'num_layers': 4, 'num_heads': 8})
factory.eval()

B, L = 1, 10

# 模拟输入
inputs = {
'text': torch.randn(B, L, 768),
'vision': torch.randn(B, L, 1024),
'video_latent': torch.randn(B, L, 512),
'action': torch.randn(B, L, 64),
}

# 模式1:世界模型(生成视频)
start = time.time()
with torch.no_grad():
out = factory('world_model', inputs)
print(f"世界模型模式: 输出视频 shape={out['video'].shape}, 耗时 {(time.time()-start)*1000:.1f}ms")

# 模式2:动作策略(部署)
start = time.time()
with torch.no_grad():
out = factory('policy', inputs)
print(f"动作策略模式: 输出动作 shape={out['action'].shape}, 耗时 {(time.time()-start)*1000:.1f}ms")

total_params = sum(p.numel() for p in factory.parameters())
print(f"\n模型参数量: {total_params:,} ({total_params/1e6:.1f}M)")
print(f"层数: {len(factory.layers)}")

IMS 座舱数据合成流水线

传统 vs Cosmos 3

流水线步骤 传统方案 Cosmos 3 优势
数据生成 3D 渲染 + 物理仿真 前向动力学生成视频 物理一致性
标注 人工标注 + 自动脚本 逆动力学自动标注 10x 加速
训练 独立训练感知模型 动作策略直接训练 端到端
评估 开环测试 闭环仿真 真实性更高
部署 导出独立模型 推理时跳过视频解码 轻量化

座舱场景生成示例

座舱数据合成场景库

场景类型 文本提示示例 生成内容 ENCAP 对应
疲劳微睡眠 “驾驶员闭眼1.5秒,车辆偏移” 视频 + PERCLOS 标签 F-01
手机分心 “驾驶员右手持手机至耳边” 视频 + 分心标签 D-02
酒驾面部 “驾驶员面部潮红,眨眼频率增高” 视频 + 酒精标签 酒驾检测
儿童遗留 “后排婴儿被毯覆盖,呼吸微动” 雷达 + CPD 标签 CPD
OOP前倾 “驾驶员前倾够取物品” 视频 + 姿态标签 OOP
安全带误用 “安全带位于手臂下方” 视频 + 误用标签 安全带

关键技术细节

1. 推理非对称性

训练和推理的计算量完全不同:

阶段 去噪步骤 视频解码 动作解码 计算量
训练 全量(~1000步) ✅ 需要 ✅ 需要 100%
推理(生成数据) 部分(~50步) ✅ 需要 ❌ 不需要 30%
推理(部署) 少量(~5步) ❌ 跳过 ✅ 只输出动作 5%

IMS 意义:部署时 Cosmos 3 可以极轻量运行,因为不需要解码视频像素。

2. MoT 双专家设计

专家 角色 输入 输出 训练目标
Reasoner 理解世界 文本+视觉 下一个 token 自回归损失
Generator 生成世界 视频+音频+动作 去噪 latent 扩散损失
交互 每层双流注意力 Generator attend Reasoner — 层级交互

3. 开源数据集

NVIDIA 在 HuggingFace 发布了 Open SDG 数据集:

数据类型 覆盖领域 IMS 相关性
机器人仿真 操作/导航 姿态估计
物理交互 接触/碰撞 乘员交互
空间推理 3D 理解 OOP 检测
人体运动 动作模式 行为识别
自动驾驶 驾驶场景 ✅ 直接相关
仓库安全 安全监控 座舱安全

AWS SageMaker HyperPod 部署

模型工厂流水线

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
"""
Cosmos 3 模型工厂在 AWS SageMaker HyperPod 上的部署

核心优势:一个持久集群运行三个阶段
1. 合成数据生成
2. 后训练感知/策略模型
3. 闭环评估

传统方案:三个独立集群,每个有独立的生命周期
Cosmos 3:一个集群时间共享
"""

# 部署配置示例
deployment_config = {
'cluster': {
'type': 'SageMaker HyperPod',
'orchestration': 'EKS (Amazon Elastic Kubernetes)',
'storage': 'Multi-TB shared FSx for Lustre',
'gpus': 'p5.48xlarge (H100) × N',
},
'stages': {
'generation': {
'model': 'Cosmos 3 (world model mode)',
'output': 'Synthetic video + auto-labels',
'gpu_hours': '~40%',
},
'post_training': {
'model': 'IMS perception model (e.g., YOLOv8)',
'input': 'Real + synthetic data',
'gpu_hours': '~40%',
},
'evaluation': {
'model': 'Cosmos 3 (closed-loop simulation)',
'metric': 'GPU goodput per hour',
'gpu_hours': '~20%',
},
},
'cost_metric': 'GPU goodput (useful progress per GPU-hour)',
'license': 'OpenMDW-1.1 (Linux Foundation)',
}

# IMS 适配建议
ims_pipeline = {
'step_1': '生成合成座舱场景(疲劳/分心/酒驾/OOP)',
'step_2': '用逆动力学自动标注真实座舱视频',
'step_3': '训练 IMS 检测模型(YOLOv8 + 合成数据)',
'step_4': '闭环评估:Cosmos 3 模拟驾驶 → IMS 响应',
'step_5': '不达标 → 回到 step_1 生成更多场景',
'estimated_acceleration': '10x 数据生成 + 5x 标注效率',
}

与竞品对比

平台 核心能力 物理一致性 开源 IMS 适用性 成本
Cosmos 3 视频+动作+评估 ✅ 物理引擎级 ✅ OpenMDW ⭐⭐⭐⭐⭐ GPU 时间
Omniverse/Isaac Sim 3D 渲染+物理 ✅ 精确物理 ✅ 开源 ⭐⭐⭐⭐ GPU 时间
Anyverse 合成视觉数据 ⚠️ 近似 ❌ 商业 ⭐⭐⭐ 订阅
Sky Engine 渲染+标注 ✅ 物理光线 ❌ 商业 ⭐⭐⭐ 订阅
rFpro ADAS 场景 ✅ 高精度 ❌ 商业 ⭐⭐ 订阅

Cosmos 3 vs Omniverse

维度 Cosmos 3 Omniverse
方法 世界模型(学习) 物理仿真(建模)
速度 快(生成式) 慢(光追+物理)
真实性 学习真实分布 精确但可能不真实
标注 内置逆动力学 需要手动/脚本
闭环 内置 需要额外搭建
互补 ✅ 可与 Omniverse 结合 ✅ 可作为 Cosmos 的 3D 先验

最佳方案:Omniverse 做 3D 场景 → Cosmos 3 学习并扩展 → 更多场景变体


IMS 开发启示

启示 建议行动 优先级
Cosmos 3 可生成座舱疲劳/分心场景 评估在 SageMaker 上生成 IMS 训练数据 🔴 高
逆动力学自动标注 用 Cosmos 3 标注现有未标注座舱数据 🔴 高
推理非对称性 部署时极轻量,可在边缘运行 🟡 中
开源许可证 OpenMDW-1.1 允许商用 ✅ 无障碍
与 Omniverse 互补 Omniverse 建 3D 场景 → Cosmos 3 扩展变体 🟡 中

数据合成路线图


总结

NVIDIA Cosmos 3 是 IMS 座舱数据合成的终极引擎:

  1. 一个模型三个角色:数据生成 + 标注 + 评估,消除多系统开销
  2. 物理一致性:世界模型学习真实物理,而非简单 GAN 生成
  3. 推理轻量:部署时跳过视频解码,只输出动作决策
  4. 开源:OpenMDW-1.1 许可证,商用无障碍
  5. AWS 集成:SageMaker HyperPod 持久集群,GPU 时间共享

对 IMS 的直接建议:优先在 AWS 上搭建 Cosmos 3 模型工厂原型,生成疲劳/分心/酒驾/OOP 场景的合成数据,用逆动力学自动标注,结合 Omniverse 3D 场景作为种子。预计可 10x 加速数据准备流程。


原文链接:https://aws.amazon.com/blogs/machine-learning/build-a-physical-ai-model-factory-with-nvidia-cosmos-3-on-sagemaker-hyperpod/
技术报告:https://research.nvidia.com/labs/cosmos-lab/cosmos3/technical-report.pdf
代码:https://github.com/awslabs/awsome-distributed-ai
许可证:OpenMDW-1.1 (Linux Foundation)