让机器人在真实仓库里撞一百次来学习避障,代价太高;让它在仿真里撞一百次,又会遇到材质、光照、接触和传感器不够真的问题。世界模型给出第三种工具:根据当前画面、文字或动作条件生成可能的后续视频。它能扩大场景覆盖,却不会因为画面逼真就自动拥有正确动力学。

NVIDIA Cosmos 论文把世界模型做成一套平台,而不是单个视频生成器。平台包含视频清洗管线、视频 tokenizer、扩散式与自回归式预训练模型,以及面向具体 physical AI 任务的后训练示例。读这篇论文时,最值得追的不是“生成得像不像电影”,而是生成数据怎样进入训练,哪些变量必须由仿真器或真机继续兜底。

真实视频、仿真和任务条件清洗切片并记录来源世界模型生成候选未来按几何、时序和任务约束筛选训练策略并回到仿真与真机验证
世界模型证据图生成视频适合扩充条件和提出反事实,碰撞、接触与安全结论仍要回到可测环境。
数据清洗去掉静态、重复、低质量和不适合物理学习的片段。Tokenizer把高维视频压缩成模型可处理的时空表示。扩散模型逐步从噪声生成条件视频,适合高质量样本生成。自回归模型按 token 顺序预测后续,适合研究时序生成与扩展。后训练用机器人、驾驶或特定场景数据适配通用模型。验证闭环检查几何、动作因果、时间和任务指标,再决定是否采用。

世界模型和仿真器不是同一种东西

刚体仿真器从质量、关节、碰撞形状和控制输入计算状态演化。给定相同初始条件和求解设置,它能重复执行,并允许读取接触力、关节状态和碰撞事件。世界模型从数据分布中学习“接下来可能出现什么”,强项是视觉多样性和复杂场景先验,弱项是很难保证每个像素变化都遵守指定物理参数。

一个生成视频里,箱子看起来被推开了,不代表摩擦系数正确;机械臂没有穿模,也不代表最小间距足够。反过来,仿真器能严格执行 URDF 关节限制,渲染出来的反光和运动模糊却可能离真机很远。

两类工具适合并用:

问题 更适合的工具 原因
关节限位、碰撞、接触力 物理仿真器 状态和约束可读取、可复现
背景、天气、物体外观变化 世界模型或生成模型 视觉分布扩展成本较低
控制器稳定性 仿真加真机 需要明确动力学和时间步
长尾场景草拟 世界模型 可以快速产生候选反事实
验收与安全停机 目标设备 依赖真实驱动、I/O 和时延

因此 Cosmos 更适合放在Isaac Sim 与 Sim-to-Real之前或旁边,用来生成场景和外观条件,而不是替代物理仿真与真机验收。

20M 小时原始视频并不等于 20M 小时机器人示教

Cosmos 论文描述的数据管线从约 2000 万小时、分辨率 720p 到 4K 的原始视频出发。作者明确指出其中大量内容语义重复,或不适合学习世界物理,于是通过分段、过滤、标注等步骤生成训练片段。论文给出的量级约为 10^8 个预训练片段和 10^7 个后训练片段。

这个规模说明视频清洗本身就是系统工程,也很容易被误读。通用视频可能包含车辆、人物和物体交互,却通常没有机器人的关节角、末端力、控制命令和标定参数。它能帮助模型学习视觉与时序先验,不能直接替代带动作的机器人轨迹。

对自己的数据,先回答三个问题:

  1. 片段里是否能看到任务相关状态变化,而不是只有镜头运动?
  2. 条件和结果是否有时间对齐的动作、速度或高层指令?
  3. 许可证和采集同意是否允许用于训练、生成和再发布?

视频多而元数据少,后面很难判断生成结果是学到动作因果,还是只学到常见画面顺序。

Tokenizer 先决定模型会丢掉什么

视频尺寸很大,世界模型通常先用 tokenizer 压缩时空信息,再在潜在 token 上训练。压缩率越高,训练和采样越省,但细小接触、快速夹爪运动、显示屏文字和窄障碍物可能被抹掉。视觉上流畅的重建不等于对机器人任务足够。

评估 tokenizer 时不应只看整体重建指标。可以准备一个任务敏感集,专门覆盖:

  • 夹爪刚接触物体的几帧;
  • 细电线、透明物体和反光金属边缘;
  • 快速转动造成的运动模糊;
  • 多相机之间必须保持一致的目标;
  • 与失败相关的小变化,例如安全灯或限位开关。

如果重建后这些信息消失,后续模型再大也学不回来。三维地图的显存取舍有同样味道,可以对照《三维场景记忆的显存预算》看“压缩掉什么”怎样影响任务。

生成数据要带来源链

合成片段混进训练集以后,必须还能追到生成模型、提示词、条件输入、随机种子、筛选器和许可证。否则策略出现偏差时,无法判断问题来自真实数据还是某一批合成场景。

可以给每个生成 episode 保存下面的 manifest:

1
2
3
4
5
6
7
8
9
10
11
12
{
"episode_id": "synthetic-000184",
"generator": "cosmos-model-and-revision",
"source_assets": ["warehouse-layout-v3"],
"conditioning": {"instruction": "forklift crosses the aisle"},
"seed": 184,
"fps": 30,
"duration_s": 6.0,
"filters": ["motion", "geometry", "human-review"],
"approved_for": ["perception-training"],
"not_approved_for": ["collision-distance-ground-truth"]
}

下面的校验代码能防止来源字段被漏掉:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import json

REQUIRED = {"episode_id", "generator", "source_assets", "conditioning",
"seed", "fps", "duration_s", "filters", "approved_for",
"not_approved_for"}

with open("manifest.json", "r", encoding="utf-8") as handle:
item = json.load(handle)

missing = REQUIRED - item.keys()
if missing:
raise SystemExit(f"missing provenance fields: {sorted(missing)}")
if item["fps"] <= 0 or item["duration_s"] <= 0:
raise SystemExit("invalid time metadata")
print(item["episode_id"], "approved for", item["approved_for"])

approved_for 很重要。同一段视频可以用来增加检测器的背景多样性,却不适合给碰撞距离当真值。数据不是简单的“可用/不可用”,而是对某个证据用途是否合格。

怎样检验一个生成未来

视觉指标只能回答画面分布的一部分。机器人场景还要测动作一致性、几何一致性、时间一致性和任务有效性。

动作一致性检查“向左转”的条件是否真的改变轨迹;几何一致性检查物体尺寸、遮挡和多视角关系;时间一致性检查速度、帧率和事件顺序;任务有效性则看合成数据训练后是否改善真实验证集,而不是只让合成验证集更好。

最稳妥的证据链是:先在冻结的真实验证集上建立基线,只增加一类带来源的合成数据,保持训练预算相同,再看目标长尾切片是否改善,同时检查常见场景有没有退化。最后仍要在真机上复测延迟与安全状态。

参考资料

证据边界

Cosmos 的平台组成、原始视频量和训练片段量级来自论文。本站没有下载模型权重,没有运行后训练,也没有评估其生成视频。manifest、工具比较和验证流程是工程建议。生成片段能否作为某项训练或测试证据,要由目标任务上的真实验证集、物理仿真和真机结果分别确认。