Matrix-Game 2.0: An Open-Source, Real-Time, and Streaming Interactive World Model

论文信息


1. Motivation (研究动机)

1.1 核心问题

现有交互式世界模型 (Interactive World Model) 存在三大瓶颈:

问题具体表现影响
双向注意力延迟生成单帧需要处理整个视频序列,计算量随帧数二次增长无法实时响应用户输入
去噪步数过多需要多步迭代去噪,推理开销大长视频生成不经济
自回归误差累积基于前帧预测下一帧,误差逐帧放大长视频质量严重退化

Figure 1 解读: 展示了 Matrix-Game 2.0 的实时交互生成结果。覆盖多种场景和风格(中世纪村庄、自然风光、卡通、日系、Minecraft、GTA驾驶等),每帧左下角显示当前键盘/鼠标操作状态(W/A/S/D 移动 + 鼠标视角)。模型能在 25 FPS 下自回归生成分钟级高质量交互视频。

2. Idea (核心思想)

Matrix-Game 2.0 提出三大核心组件协同解决实时交互世界模型的挑战:

  1. 可扩展数据生产管线 — 基于 Unreal Engine 和 GTA5,生成约 1200 小时带交互标注的视频数据,覆盖 Minecraft、野外场景、驾驶等多种环境
  2. 去语义化动作注入模块 — 去掉所有文本输入,帧级鼠标/键盘输入通过 MLP+Temporal Self-Attention(鼠标)和 Cross-Attention(键盘)分别注入 DiT,专注学习视觉-物理规律
  3. Self-Forcing 蒸馏 + 因果架构 — 通过 ODE 初始化 + DMD-based Self-Forcing 将双向 Foundation Model 蒸馏为因果自回归模型,配合 VAE Cache、Action Module 裁剪、去噪步数优化,在单张 H100 上达到 25 FPS

3. Method (方法)

3.1 整体架构

Figure 2 解读: Matrix-Game 2.0 的训练和推理流程概览。训练阶段分两步:(1) 对 Base Model 进行带 Action Module 的 Foundation Model SFT;(2) 基于 Self-Forcing 进行 Causal Model Distillation,将双向模型蒸馏为因果自回归模型。推理阶段:输入图像经 Video & Image Encoder 编码,动作序列经 Action Encoder 编码,通过 KV Caching 的 Causal Diffusion Model 流式输出视频。

3.2 Foundation Model 架构

Figure 8 解读: (a) Matrix-Game-V2 整体架构:基于 Wan 2.1 I2V 设计,移除文本分支,仅从视觉内容和对应动作预测下一帧。输入图像经 3D Causal VAE(空间 、时间 倍压缩)和 CLIP Image Encoder 编码为条件输入,DiT 在动作引导下生成视觉 token 序列,再由 3D VAE Decoder 解码为视频。(b) Action-modulated DiT Block:鼠标动作经 MLP + 时序 Self-Attention 处理后直接拼接到 latent 表示;键盘动作经 Cross-Attention 查询融合特征,实现帧级精确控制。使用 RoPE 替代 sin-cos 位置编码以支持长视频生成。

关键设计:去语义化建模

  • 去掉所有文本输入,专注学习图像中的空间结构和动态模式
  • 灵感来自 Spatial Intelligence 概念:模型能力应源自对视觉和物理规律的直觉理解,而非语义先验

动作注入模块:

  • 鼠标动作(连续):直接拼接到 latent → MLP → Temporal Self-Attention
  • 键盘动作(离散):通过 Cross-Attention 与融合特征交互

基础模型:SkyReels-V2-I2V-1.3B,总参数量加上 Action Module 后为 1.8B

3.3 实时自回归视频生成(核心创新)

蒸馏过程分为两个阶段:Student InitializationDMD-based Self-Forcing

阶段一:Student Initialization via ODE Trajectories

Figure 9 解读: 因果学生模型的初始化方法。从双向 Foundation Model 推理获得 clean output,在不同噪声水平下随机采样获得 ODE 轨迹数据集 中 3 步子集采样)。训练时将 帧噪声输入分成 个 chunk,每个 attention layer 应用 block-wise causal mask。学生模型以噪声 chunk 和动作为输入,用回归损失学习去噪:

其中 为因果学生生成器, 为条件(包含动作), 为独立时间步。

阶段二:DMD-based Self-Forcing

Figure 10 解读: 基于 Self-Forcing 的因果扩散模型蒸馏训练。左侧:因果 Generator 以 Self-Forcing 方式生成(每帧条件于自身先前生成的帧而非 ground truth),右侧:Distribution Matching Distillation,将学生分布 与教师分布 对齐。Generator 从自身分布采样先前帧(而非 GT),有效缓解 train-test gap 和误差累积。

Self-Forcing 的关键价值:

  • 解决 Teacher Forcing / Diffusion Forcing 中的 exposure bias 问题
  • 训练时每帧条件于自生成输出,与推理时一致
  • 是一种 data-free 训练方法,可以手动设计动作序列分布

KV-Cache 机制

  • 滚动缓存:固定长度 cache,超出容量时驱逐最旧 token,支持无限长度生成
  • Cache 窗口约束:训练时限制 KV-cache window size,使初始帧对后续 latent 不可见,迫使模型更依赖自身先验和输入动作
  • 最优 local size = 6 帧:平衡上下文保持与误差修正能力(9 帧反而导致更早出现伪影)

3.4 训练伪代码

# Phase 1: Foundation Model Training
# 初始化: SkyReels-V2-I2V-1.3B (去除 text branch)
# Step 1: 冻结主体,训练 Action Module 5k steps
# Step 2: 全量微调 Foundation Model 120k steps
#   lr=2e-5, batch_size=256
 
# Phase 2: Distillation
# Step 1: Student Initialization
foundation_model.eval()
for batch in ode_dataset:  # 40k ODE pairs
    x_0 = foundation_model.inference(image, actions)
    t = sample_timesteps(subset=[0, T], num_steps=3)
    x_t = add_noise(x_0, t)
    chunks = split_into_chunks(x_t, chunk_size=3)
    # Apply block-wise causal masks
    x_pred = student_model(chunks, actions, t)
    loss = MSE(x_pred, x_0)
    loss.backward()  # 6k steps
 
# Step 2: DMD-based Self-Forcing
for step in range(4000):
    # Student generates via self-forcing (causal, self-conditioned)
    x_fake = student_model.self_forcing_generate(image, actions)
    noise = sample_noise()
    x_t_fake = add_noise(x_fake, t)
 
    # Teacher scores (frozen foundation model)
    score_real = foundation_model(x_t_fake, actions)  # real branch
    score_fake = foundation_model(x_t_fake, actions)  # fake branch
 
    # Distribution matching loss + Diffusion loss
    loss = distribution_matching_loss(score_real, score_fake) + diffusion_loss
    loss.backward()  # lr=6e-6, chunk_size=3, attn_local_size=6

3.5 数据生产管线

3.5.1 Unreal Engine 数据管线

Figure 3 解读: Unreal Engine 数据生产管线架构。输入层接收 Navigation Mesh 和 3D Scene,核心组件包括 Auto Movement Component 和 Camera Control Component(由 Character Controller 驱动),数据处理层通过 Video Recorder (MP4) 和 Data Collector (CSV) 输出同步的视频文件和行为数据。

三大创新:

  1. Navigation Mesh-based Path Planning System
    • 基于 Unreal Engine 的 NavMesh 基础设施
    • 自定义路径规划优化,平均查询延迟 < 2ms
    • 引入受控随机性,在遵守导航约束的同时产生多样化运动模式

Figure 4 解读: 导航系统示例。绿色区域表示 agent 可自由移动的区域(Navigation Mesh),蓝色方块为 agent 位置。NavMesh 确保 agent 不会撞墙或卡住,同时支持确定性的实时路径规划。

  1. RL-Enhanced Agent Training(PPO 强化学习增强)

奖励函数设计:

  • :碰撞惩罚(安全约束)
  • :探索新区域奖励
  • :运动多样性奖励
  1. Precise Input and Camera Control

输入-视觉同步公式:

四元数精度优化(双精度算术)消除 0.2% 的相机旋转误差。

Figure 5 解读: Unreal Engine 收集的轨迹示例。上排展示多种 3D 场景(室外自然、城市建筑、室内等),下排展示对应的导航轨迹(绿色线段)。复杂场景中也能规划合理路径。

3.5.2 GTA5 数据管线

Figure 6 解读: GTA5 交互数据录制系统。Agent Behaviors(自动导航、NPC 交互、车辆交互)通过 C# Mod 集成到 GTA V 中,导出 JSON 行为数据。Recording System 使用 OBS Studio 录制视频,Data Sync 模块确保视频帧与行为数据的时间对齐,最终输出 .mp4 视频和 .csv 行为数据。

相机位置公式:

Figure 7 解读: GTA5 收集的轨迹示例。城市街道场景中第三人称视角,显示了交通灯、行人、车辆等动态元素。线条表示 agent 移动路径,数据管线可规划合理路径避免碰撞。

3.5.3 数据统计

数据源时长说明
Minecraft153 小时每段 57 帧
Unreal Engine615 小时多样 3D 场景
Sekai (开源)85 小时真实场景,需帧率重采样对齐
GTA-driver574 小时驾驶交互场景
Temple Run560 小时跑酷游戏交互
总计~1200+ 小时分辨率统一为

Data Curation:

  • 基于 OpenCV 的冗余帧过滤
  • 速度验证机制排除无效样本:
  • 多线程管线加速:单张 RTX 3090 支持双流并行数据生产
  • 总计收集超 120 万 视频片段,数据精度 > 99%,相机旋转精度提升 50 倍

4. Experimental Setup (实验设置)

4.1 实验设置

项目详情
Base ModelSkyReels-V2-I2V-1.3B (Wan 2.1 架构)
总参数量1.8B (含 Action Module)
分辨率
Foundation Training120k steps, lr=2e-5, batch=256
Distillation40k ODE pairs → 6k steps init + 4k steps Self-Forcing, lr=6e-6
推理速度25 FPS (单卡 H100)
GPU 要求>= 24GB (A100/H100)
评估基准GameWorld Score Benchmark (Matrix-Game 1.0 提出)

4.2 代码结构与复现

路径功能
Matrix-Game-2/inference.py批量推理(随机动作轨迹)
Matrix-Game-2/inference_streaming.py流式推理(自定义输入动作+图像)
Matrix-Game-2/pipeline/核心管线模块
Matrix-Game-2/wan/Wan 架构相关组件
Matrix-Game-2/configs/inference_yaml/推理配置文件
Matrix-Game-2/demo_utils/Demo 工具函数

4.3 关键代码-论文映射

论文概念代码位置说明
Foundation Model (I2V)wan/基于 Wan 2.1 架构
Action Module (Mouse)pipeline/ DiT BlockMLP → Temporal Self-Attention → Concatenate
Action Module (Keyboard)pipeline/ DiT BlockCross-Attention 查询融合
KV-Cache (Rolling)pipeline/固定长度滚动缓存,FIFO 驱逐
Self-Forcing Inferenceinference_streaming.py自回归流式生成
3D Causal VAEwan/空间 8x8 + 时间 4x 压缩

4.4 环境要求 & 快速复现

# 环境要求
# GPU: NVIDIA A100/H100 (>= 24GB)
# RAM: >= 64GB
# Python 3.10
 
# 安装
git clone https://github.com/SkyworkAI/Matrix-Game.git
cd Matrix-Game/Matrix-Game-2
conda create -n matrix-game python=3.10 -y
conda activate matrix-game
pip install -r requirements.txt
python setup.py develop
 
# 批量推理(随机动作)
python inference.py --config configs/inference_yaml/xxx.yaml
 
# 流式推理(自定义输入)
python inference_streaming.py --image <path> --actions <path>

5. Experimental Results (实验结果)

5.1 Minecraft 场景结果

Figure 11 解读: Minecraft 场景的定性对比。Oasis 在生成数十帧后质量严重退化(颜色失真、结构崩塌),而 Matrix-Game 2.0 在整个序列(0-350帧)中保持优秀的视觉质量和场景一致性。

Table 1: Minecraft 定量对比 (vs. Oasis)

指标OasisOurs维度
Image Quality ↑0.270.61Visual Quality
Aesthetic ↑0.270.50Visual Quality
Temporal Cons. ↑0.820.94Temporal Quality
Motion Smooth. ↑0.990.98Temporal Quality
Keyboard Acc. ↑0.730.91Action Controllability
Mouse Acc. ↑0.560.95Action Controllability
Obj. Cons. ↑0.180.64Physical Understanding
Scenario Cons. ↑0.840.80Physical Understanding

Oasis 在 Motion Smoothness 和 Scenario Consistency 上略高,原因是 Oasis 崩塌后生成静态帧,反而提升了这两个指标的分数。

5.2 Wild Scene 结果

Figure 12 解读: 野外真实场景的定性对比 (vs. YUME)。YUME 在数百帧后出现明显伪影和颜色过饱和,而 Matrix-Game 2.0 保持稳定的风格保真度和准确的交互响应。且 YUME 生成速度慢,难以直接用于交互式世界建模。

Table 2: Wild Scene 定量对比 (vs. YUME)

指标YUMEOurs
Image Quality ↑0.650.67
Aesthetic ↑0.480.51
Temporal Cons. ↑0.850.86
Motion Smooth. ↑0.990.98
Obj. Cons. ↑0.770.71
Scenario Cons. ↑0.800.76

YUME 在 Object/Scenario Consistency 上更高,同样因为崩塌后趋向静态内容。

5.3 长视频 & 多场景生成

Figure 13 解读: Matrix-Game 2.0 的长视频生成展示(0-1350 帧)。覆盖多种野外场景(花园、森林、草地、建筑等),在超长序列中仍保持优秀的视觉质量和精确的动作可控性,展现了模型作为通用世界模型基础框架的潜力。

Figure 14 解读: GTA5 驾驶场景生成结果(0-350帧)。多种驾驶视角和路况下,模型生成的视频保持了道路结构的连贯性和车辆运动的合理性。

Figure 15 解读: TempleRun 跑酷游戏场景生成结果(0-350帧)。包含快速视角变化、复杂 3D 结构(岩石、桥梁、废墟),模型在保持游戏画面一致性的同时准确响应用户的左右转向等操作。

5.4 加速技术消融实验

Table 3: 加速技术逐步叠加对比

加速技术Image↑Aesthetic↑Temporal↑Motion↑Keyboard↑Mouse↑Object↑Scenario↑FPS↑
(1) +VAE Cache0.610.510.930.970.910.950.680.8115.49
(2) (1)+Halving action modules0.610.510.940.970.920.950.630.8121.03
(3) (2)+Reducing steps 4→30.610.500.940.980.910.950.640.8025.15

三项加速策略:

  1. VAE Cache:集成 Wan2.1-VAE 的缓存机制,加速长视频解码 → 15.49 FPS
  2. Halving action modules:仅在 DiT 前半部分使用 Action Module → 21.03 FPS
  3. Reducing denoising steps (4→3):减少去噪步数 → 25.15 FPS

质量几乎无损地达到了 25 FPS 实时生成。

5.5 KV-Cache Local Size 消融

Figure 16 解读: 不同 KV-cache local size 的定性对比。上半部分为跑道场景,下半部分为街景。Local Size = 9 时在 frame 375-500 出现明显伪影和质量退化;Local Size = 6 在所有帧上保持更好的视觉质量和内容保真度。结论:更大的 cache 反而导致过度依赖缓存信息,累积误差通过 cache 被”记忆”,适中的 cache(6帧)在上下文保持与误差修正之间取得最佳平衡。

5.6 失败案例

Figure 17 解读: 模型的典型失败模式。左侧:处理 OOD 场景时出现过饱和区域(颜色不自然的鲜艳色块)。右侧:长时间向前运动或向上抬头等极端操作导致画面退化。这些限制可通过扩展训练数据域和模型规模来改善。

6. 主要局限性 (Limitations)

6.1 局限性

  1. OOD 泛化不足 — 对训练分布外场景(如持续向上看/向前走)可能产生过饱和或退化结果
  2. 分辨率有限 — 当前输出 ,低于 SOTA 视频生成模型
  3. 长程记忆缺失 — 自回归模型缺乏显式历史记忆机制,长视频中内容一致性仍有挑战

7. 总结

Matrix-Game 2.0 的核心贡献在于将交互式世界模型推向实时可用水平:

  1. 数据层:构建了业界最大规模的交互视频数据管线(~1200h),覆盖 UE、GTA5、Minecraft 等多种环境
  2. 模型层:基于 Wan 2.1 架构 + Action Module + Self-Forcing 蒸馏,1.8B 参数实现因果自回归少步生成
  3. 工程层:VAE Cache + Action Module 裁剪 + 去噪步数优化,在单卡 H100 上达到 25 FPS
  4. 开源:MIT License,权重和代码完全开放

在 GameWorld Score Benchmark 上全面超越 Oasis(Minecraft)和 YUME(Wild Scene),是目前首个同时满足实时流式交互开源的世界模型。