MineWorld: A Real-Time and Open-Source Interactive World Model on Minecraft
Authors: Junliang Guo*, Yang Ye*, Tianyu He*, Haoyu Wu*, Yushu Jiang, Tim Pearce, Jiang Bian Affiliations: Microsoft Research Project Page: aka.ms/mineworld Venue: arXiv 2504.08388, April 2025
1. Motivation (研究动机)
世界模型(World Model)旨在模拟环境对动作的响应,是构建智能体的关键组件。Minecraft 作为开放沙盒游戏,是世界模型研究的理想测试平台。现有方法存在两个核心瓶颈:
效率瓶颈:视频生成模型(如基于扩散的 Oasis)使用 visual tokenizer 将视频编码为大量 token(16帧约 40k-160k tokens),导致推理计算量巨大,无法实现实时交互。
可控性瓶颈:现有模型的控制信号多样(文本描述、视频演示、机器人动作等),但缺乏标准化的可控性评估指标,难以量化模型对输入动作的遵循程度。
2. Idea (核心思想)
MineWorld 采用 Visual-Action Autoregressive Transformer 架构,核心思路包含四个关键创新:
- 统一离散 token 序列建模:将游戏画面和动作分别通过 image tokenizer 和 action tokenizer 转为离散 token,交替拼接后用 next-token prediction 统一训练,使模型同时具备 world model 和 policy model 的双重能力
- Diagonal Decoding 并行加速:提出对角线解码并行算法,利用相邻 token 的空间冗余,实现 3倍以上加速,达到 4-7 FPS 实时交互
- IDM-based 可控性评估:提出基于 Inverse Dynamics Model (IDM) 的可控性评估指标,与人类评估显著正相关
- 轻量级架构:基于 LLaMA 架构,300M-1.2B 参数即可实现实时交互
3. Method (方法)
3.1 整体架构
Figure 1 解读:MineWorld 的整体架构由三部分组成:(1) Visual Tokenizer 将游戏画面编码为离散视觉 token ;(2) Action Tokenizer 将键盘/鼠标动作编码为离散动作 token ;(3) Transformer Decoder 接收交替排列的视觉和动作 token 序列,以自回归方式预测下一个 token。这种设计使模型同时学习状态间转移关系和状态-动作条件关系。
建模目标:给定历史观测 和当前动作 ,预测下一个游戏状态:
3.2 Tokenizer 设计
Visual Tokenizer (VQ-VAE)
- 基于 VQ-VAE 架构,初始化自公开预训练 checkpoint(aMUSEd),在 Minecraft 数据上 fine-tune
- 空间压缩率:(高度和宽度各压缩 16 倍)
- Codebook 大小:8192
- 每帧图像 被编码为 个离散 token
- 对包含 帧的视频片段 ,编码为:
其中 , 为每帧 token 数。
Action Tokenizer
Minecraft 动作包含两类:
- 连续动作:鼠标移动(相机角度),量化为 11个离散 bin(X轴和Y轴各2个token)
- 离散动作:键盘操作,分为 7个互斥类别(如 forward/backward 不能同时存在),每类用一个 token 表示
另有 [aBOS] 和 [aEOS] 两个特殊 token 标记动作序列边界。每个动作用 11个 token 表示。
每对 (state, action) 的 token 序列为:
共 个 token/帧。
Transformer Decoder
- 架构:LLaMA 架构(RMSNorm + RoPE)
- 训练目标:标准自回归 next-token prediction
- 词汇表大小:(8192个视觉 token + 70个动作 token)
- 模型规模:300M / 700M / 1.2B 三个版本
# MineWorld Forward Pass
# Input: game_frames [B, N, H, W], actions [B, N, num_action_tokens]
# Output: next_token_logits
# 1. Visual Tokenization
visual_tokens = VQ_VAE.encode(game_frames) # [B, N, 336]
# 2. Action Tokenization
action_tokens = ActionTokenizer.encode(actions) # [B, N, 11]
# 3. Interleave visual and action tokens
for i in range(N):
seq.append(visual_tokens[:, i]) # 336 tokens
seq.append([aBOS]) # 1 token
seq.append(action_tokens[:, i]) # 9 tokens
seq.append([aEOS]) # 1 token
input_seq = concat(seq) # [B, N * 347]
# 4. Transformer Decoder (LLaMA-style)
logits = TransformerDecoder(input_seq) # [B, N * 347, 8262]
loss = CrossEntropy(logits, target_seq)3.3 Diagonal Decoding(对角线并行解码)
Figure 2 解读:左图 (a) 展示标准自回归解码,按光栅扫描顺序逐个生成 token(3x4=12个token需要12步)。右图 (b) 展示 Diagonal Decoding,利用相邻 token 的空间冗余性,同一对角线上的 token 可以并行生成。例如第1步生成位置(1,1),第2步同时生成(1,2)和(2,1),第3步同时生成(1,3)、(2,2)和(3,1),仅需6步即可完成。
核心思想:对于位置 的 token ,生成后下一步可以同时生成 (右邻)和 (下邻),因为相邻 token 之间存在空间冗余。
理论加速比:对于高度 、宽度 的 token 网格:
对 MineWorld 的 token 网格:(理论上限),实际约 加速。
Fine-tuning 策略:由于并行解码与自回归训练存在 discrepancy,需要用 parallel attention mask 替换标准 causal mask 进行 fine-tune,使模型适应对角线解码模式。
# Diagonal Decoding
# Input: context_tokens, token_grid_shape (h, w)
# Output: generated_frame_tokens [h, w]
grid = empty(h, w)
# 对角线解码:共 h + w - 1 步
for step in range(1, h + w):
parallel_positions = []
for i in range(h):
j = step - 1 - i
if 0 <= j < w:
parallel_positions.append((i, j))
# 并行预测同一对角线上的所有 token
for (i, j) in parallel_positions:
# 条件:已生成的左上方所有 token
grid[i, j] = sample(model(context + grid[:i+1, :j+1]))
# KV cache 更新
update_kv_cache(parallel_positions)
return gridReal-Time 定义:基于 Actions Per Minute (APM) 指标:
- 业余玩家:~150 APM → 需要 > 2 FPS
- 专业玩家:~300 APM → 需要 > 5 FPS
4. Experimental Setup (实验设置)
4.1 数据集
| 项目 | 详情 |
|---|---|
| 数据来源 | VPT dataset (Baker et al., 2022) |
| 数据格式 | 游戏画面 + 键盘/鼠标动作对 |
| 预处理 | 过滤无动作帧和GUI帧 |
| 原始分辨率 | |
| 处理后分辨率 | (保持宽高比) |
| 训练集 | 10M 视频片段(~160M 帧) |
| 验证集 | 0.5k 片段 |
| 测试集 | 1k 片段 |
| 上下文长度 | 16帧(最大32帧) |
| 每样本 token 数 | 16 × 347 = 5,548 tokens |
| 总训练 token 数 | ~55B tokens |
4.2 模型配置
| 模型 | 参数量 | 上下文帧数 | Checkpoint |
|---|---|---|---|
| MineWorld-300M | 300M | 16 | 300M_16f.ckpt |
| MineWorld-700M | 700M | 16 / 32 | 700M_16f/32f.ckpt |
| MineWorld-1.2B | 1.2B | 16 / 32 | 1200M_16f/32f.ckpt |
训练细节:
- 架构:LLaMA(RMSNorm + RoPE)
- 优化器:Adam,cosine decay learning rate schedule
- 训练步数:200k steps
- 硬件:32 × NVIDIA A100 40GB
- 词汇表:8262(8192 visual + 70 action)
4.3 评估指标
视觉质量指标:
- FVD(Frechet Video Distance)↓
- PSNR(Peak Signal-to-Noise Ratio)↑
- LPIPS(Learned Perceptual Image Patch Similarity)↓
- SSIM(Structural Similarity Index)↑
可控性指标(基于 IDM,准确率 90.6%):
- 离散动作分类:将动作分为9类(7个离散类 + 2个相机方向类),计算 Precision / Recall / F1(macro)
- 相机运动回归:计算预测相机角度与 ground truth 之间的 L1 loss
4.4 对比方法
- Oasis(Decart et al., 2024):开源的基于扩散的 Minecraft 世界模型,500M 参数
5. Experimental Results (实验结果)
5.1 主要结果:MineWorld vs Oasis
| Method | Param. | FPS↑ | P↑ | R↑ | F1↑ | L1↓ | FVD↓ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|---|---|---|
| Oasis | 500M | 2.58 | 0.49 | 0.44 | 0.41 | 2.60 | 377 | 0.53 | 0.36 | 14.38 |
| MineWorld | 300M | 5.91 | 0.72 | 0.71 | 0.70 | 1.03 | 246 | 0.45 | 0.38 | 15.13 |
| MineWorld | 700M | 3.18 | 0.72 | 0.71 | 0.70 | 1.04 | 231 | 0.44 | 0.38 | 15.32 |
| MineWorld | 1.2B | 3.01 | 0.76 | 0.73 | 0.73 | 1.02 | 227 | 0.44 | 0.41 | 15.69 |
关键发现:
- MineWorld 在所有指标上全面超越 Oasis,且参数量更小
- 明显的 scaling behavior:更大模型在可控性和视觉质量上都更好
- 300M 模型最快,达到 5.91 FPS(APM ~360),可与专业玩家实时交互
- 1.2B 模型达到 3.01 FPS(APM ~180),可与业余玩家实时交互
5.2 Parallel Decoding 消融实验
| Param. | Decoding | FPS↑ | F1↑ | PSNR↑ | FVD↓ |
|---|---|---|---|---|---|
| 300M | Autoregressive (AT) | 2.00 | 0.70 | 15.63 | 223 |
| 300M | Parallel w/ FT | 5.91 | 0.70 | 15.13 | 246 |
| 300M | Parallel w/o FT | 5.91 | 0.69 | 14.98 | 275 |
| 700M | AT | 1.08 | 0.73 | 15.74 | 210 |
| 700M | Parallel w/ FT | 3.18 | 0.71 | 15.32 | 231 |
| 700M | Parallel w/o FT | 3.18 | 0.70 | 15.27 | 247 |
| 1.2B | AT | 0.89 | 0.72 | 16.06 | 203 |
| 1.2B | Parallel w/ FT | 3.01 | 0.73 | 15.69 | 227 |
| 1.2B | Parallel w/o FT | 3.01 | 0.70 | 15.30 | 258 |
关键发现:
- Diagonal Decoding 实现约 3x 加速(所有模型规模一致)
- Fine-tuning(w/ FT)显著缩小与 AT 的质量差距,尤其对小模型(300M)效果明显
- 大模型(1.2B)即使不做 fine-tune,parallel decoding 的质量退化也较小
- 1.2B + Parallel w/ FT 的 F1 (0.73) 甚至略优于 AT (0.72)
5.3 可控性指标验证(Human Evaluation)
| 指标 | 值 |
|---|---|
| F1 | 0.81 |
| Human Score | 4.21 / 5.0 |
| Pearson | 0.56 |
| p-value | 0.01 |
提出的分类指标与人类评估呈显著正相关(, ),验证了指标的有效性。
5.4 Case Studies
Figure 3 解读:展示 MineWorld 700M 模型的通用生成能力。第一行:执行 “camera left → use → forward” 序列,模型成功生成开门并走向户外的过渡场景。第二行:执行连续 “attack” 动作,模型生成砍树过程,包含木头横截面和砍完后的爆炸效果等细节。第三行:相机先左转再右转,模型能正确恢复之前的房屋场景,展现了良好的时序一致性。
Figure 4 解读:展示 MineWorld 的可控性。给定相同的初始游戏状态,分别输入 backward、forward、camera left 三种不同动作,模型准确生成了对应的不同视角变化。backward 使视角后退(远离树木),forward 使视角前进(靠近树木),camera left 使视角左转。这证明模型精确遵循动作控制信号。
Figure 5 解读:展示 MineWorld 作为游戏智能体(Agent)的能力。给定初始几帧游戏状态和动作(虚线前),模型自主生成后续的动作和游戏状态(虚线后),实现自主”玩游戏”。这说明 MineWorld 的统一建模方式使其同时具备 world model 和 policy model 的双重能力。
5.5 代码-论文对应关系
| 论文组件 | 代码文件 | 说明 |
|---|---|---|
| Visual Tokenizer (VQ-VAE) | vae.py | 图像编码/解码, 空间压缩,8k codebook |
| Action Tokenizer | mcdataset.py | 动作量化,11 token/action |
| Transformer Decoder (LLaMA) | lvm.py | 核心模型,RMSNorm + RoPE,8262 vocab |
| Diagonal Decoding | diagonal_decoding.py | 并行解码加速,~3x speedup |
| 推理入口 | inference.py | 本地推理,支持 naive / diagonal decoding |
| Web Demo | mineworld.py | Gradio 交互式界面 |
| 数据集处理 | mcdataset.py | VPT 数据加载与预处理 |
| 评估指标 | metrics/ | FVD, PSNR, LPIPS, SSIM, IDM-based metrics |
| 模型配置 | configs/ | 300M/700M/1.2B 各尺寸配置文件 |
| 推理脚本 | scripts/inference_16f_models.sh | 批量推理脚本 |
5.6 总结与思考
核心贡献
- 首个开源实时交互式 Minecraft 世界模型:基于 autoregressive Transformer,将视觉和动作统一建模为离散 token 序列
- Diagonal Decoding:无需训练的并行解码算法,利用空间冗余实现 ~3x 加速,配合 fine-tune 可几乎无损
- 可控性评估框架:基于 IDM 的分类指标,与人类评估显著正相关
局限性
- 仅在 Minecraft 领域训练,无法泛化到其他视频领域
- 分辨率固定为 ,下采样可能丢失细节
- 最大上下文 16 个 state-action 对(5.5k tokens),超出范围后时序一致性无法保证
与相关工作的对比思考
- 相比 Oasis(diffusion-based):MineWorld 用 AR Transformer 替代扩散模型,在效率和可控性上均大幅领先
- Diagonal Decoding 与 ZipAR、Lformer 等并行解码方法的区别:专为视频场景设计,处理跨帧误差累积问题,且不需要从头训练
- 统一建模 state 和 action 使模型具备 world model + policy model 双重能力,可作为自主游戏 agent