世界模型与视频扩散
世界模型从过去帧预测未来帧。视频扩散使预测看起来真实。两者组合是2026年机器人规划和自动驾驶的基础。
世界模型与视频扩散
世界模型从过去帧预测未来帧。视频扩散使预测看起来真实。两者组合是2026年机器人规划和自动驾驶的基础。
类型: 学习 语言: Python 前置知识: Phase 4 Lesson 10 (Diffusion), Phase 4 Lesson 12 (视频理解) 时间: 约45分钟
学习目标
- 区分世界模型(学习动态)和视频扩散(学习外观),并解释为什么两者都需要
- 解释NVIDIA Cosmos、GAIA-1和UniSim的架构
- 理解世界模型在机器人规划、自动驾驶和游戏中的应用
- 使用Cosmos或Sora进行条件视频生成
问题所在
自动驾驶汽车需要预测其他车辆和行人未来几秒的行为。机器人需要预测动作的后果。游戏需要预测玩家行动后的世界状态。这些都是世界模型问题:给定当前观察和动作,预测未来观察。
传统世界模型(Ha & Schmidhuber, 2018)学习环境的压缩表示并预测未来状态,但生成的视频模糊、低分辨率。视频扩散模型生成高保真视频但缺乏精确的物理一致性。
2026年的突破是组合两者:世界模型提供物理上合理的动态预测,视频扩散提供照片级真实的渲染。NVIDIA Cosmos(2025)是这种组合的第一个大规模生产系统。
核心概念
世界模型 vs 视频扩散
世界模型:
输入: 过去帧 + 动作
输出: 未来帧(低分辨率,物理一致)
优点: 精确的物理动态,快速推理
缺点: 视觉质量低
视频扩散:
输入: 文本/图像条件 + 噪声
输出: 视频(高分辨率,照片级真实)
优点: 高保真视觉质量
缺点: 物理不一致,慢推理
组合(Cosmos风格):
世界模型预测未来状态 -> 视频扩散渲染高保真帧
NVIDIA Cosmos
Cosmos(NVIDIA, 2025)是物理AI的世界基础模型:
- 世界基础模型 — 在数百万小时驾驶和机器人视频上预训练
- 条件生成 — 给定过去帧+动作令牌,预测未来帧
- 物理先验 — 学习重力、碰撞、遮挡等物理规律
- 多分辨率 — 从128x128预览到1080p高保真
Cosmos用于自动驾驶数据增强、机器人策略训练和游戏环境生成。
GAIA-1
GAIA-1(Wayve, 2023)是自动驾驶的世界模型:
- 自回归Transformer预测未来token
- 离散化视频、动作和文本为统一token序列
- 支持动作条件生成:给定转向和油门,预测未来场景
UniSim
UniSim(Waymo, 2023)是自动驾驶模拟器:
- 从单帧生成3D一致的街景视频
- 支持相机移动、物体编辑和天气变化
- 用于安全关键场景测试
视频扩散架构
视频扩散扩展图像扩散到时间维度:
- 3D U-Net — 在(T, H, W)上操作3D卷积
- 时空Transformer — 分离式时空注意力(如TimeSformer)
- 时间一致性 — 帧间注意力确保时间连贯
Sora(OpenAI, 2024)使用时空patch + DiT架构,将视频视为时空token序列。
条件视频生成
世界模型需要条件生成——给定特定输入生成特定输出:
- 动作条件 — 给定转向角,预测车辆轨迹
- 文本条件 — 给定描述,生成匹配视频
- 图像条件 — 给定起始帧,生成后续帧
- 布局条件 — 给定边界框序列,生成匹配视频
构建它
步骤1:简单帧预测
import torch
import torch.nn as nn
class SimpleFramePredictor(nn.Module):
def __init__(self, in_channels=3, hidden=64):
super().__init__()
self.encoder = nn.Sequential(
nn.Conv2d(in_channels * 2, hidden, 4, 2, 1), nn.ReLU(),
nn.Conv2d(hidden, hidden * 2, 4, 2, 1), nn.ReLU(),
nn.Conv2d(hidden * 2, hidden * 4, 4, 2, 1), nn.ReLU(),
)
self.decoder = nn.Sequential(
nn.ConvTranspose2d(hidden * 4, hidden * 2, 2, 2), nn.ReLU(),
nn.ConvTranspose2d(hidden * 2, hidden, 2, 2), nn.ReLU(),
nn.ConvTranspose2d(hidden, in_channels, 2, 2), nn.Sigmoid(),
)
def forward(self, frame_t, frame_t1):
x = torch.cat([frame_t, frame_t1], dim=1)
h = self.encoder(x)
return self.decoder(h)
步骤2:使用视频扩散生成
from diffusers import DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-video-diffusion-img2vid-xt")
pipe.to("cuda")
from PIL import Image
image = Image.open("input_frame.png")
frames = pipe(image, num_frames=25).frames[0]
使用它
2026年世界模型选择:
- NVIDIA Cosmos — 物理AI世界模型,自动驾驶和机器人
- Sora — OpenAI,通用视频生成
- Stable Video Diffusion — 开源图像到视频
- CogVideoX — 开源文本到视频
发布它
本课产出:
outputs/prompt-world-model-picker.md— 根据应用选择世界模型方案。outputs/skill-video-consistency-checker.md— 检查生成视频的时间一致性。
练习
- (简单) 训练简单帧预测器,从帧t预测帧t+1。可视化预测误差随预测步数的变化。
- (中等) 使用SVD从起始帧生成视频。比较不同运动量条件下的时间一致性。
- (困难) 实现动作条件视频生成:给定动作序列,生成匹配的视频片段。
关键术语
| 术语 | 人们怎么说 | 实际含义 |
|---|---|---|
| 世界模型 | ”预测未来” | 从当前观察和动作预测未来观察的模型 |
| 视频扩散 | ”视频生成” | 扩展图像扩散到时间维度的视频生成模型 |
| 条件生成 | ”控制输出” | 给定特定输入(动作、文本、图像)生成匹配视频 |
| 时间一致性 | ”帧间连贯” | 生成视频帧之间的视觉和语义连贯性 |
| 物理先验 | ”物理规律” | 世界模型学到的重力、碰撞等物理规律 |
| Cosmos | ”NVIDIA世界模型” | NVIDIA的物理AI世界基础模型 |