MIRA 开源:单张 B200 跑出 4 人实时 Rocket League
General Intuition 联手 Kyutai 和 Epic Games 开源 5B 参数世界模型 MIRA,在单张 B200 上以 20 FPS 同时模拟 4 名玩家的 Rocket League 对战,没有物理引擎,全靠模型"做梦"。
一个能被 4 个人同时玩的世界模型开源了
昨天,General Intuition、Kyutai 和 Epic Games 联合放出了 MIRA——一个 5B 参数的潜在扩散世界模型。它做的事情听起来有点离谱:把 Rocket League 这款 2v2 的火箭动力足球游戏,整个塞进神经网络里,让 4 个真人玩家用手柄同时操作,每人 20 FPS 的实时画面,全部由模型逐帧生成。硬件只有一张 B200。
没有物理引擎、没有碰撞检测、没有渲染管线。球会不会飞、车会不会翻、门会不会进,全靠模型自己"想"出来。
这不是第一个可交互世界模型——Google 的 Genie 3、GameNGen 都做过类似的事——但 MIRA 是第一个把「多人实时」这件事真正做通的开源项目。Genie 3 到现在还是闭源 demo,GameNGen 是单人 DOOM,而 MIRA 直接把代码、1000 小时数据集和技术报告全丢到了 GitHub 上。
技术上的三个关键选择
翻完技术报告,MIRA 的架构其实相当务实,没有什么神秘学。核心是三个决定:
第一,用 Representation Autoencoder 代替传统 VAE。 这也是论文标题里那个 RA 的由来。传统世界模型的 VAE 潜空间语义信息弱,模型得花很多容量去学"这是一辆车、那是一个球"这种基础表征。MIRA 把编码器换成了带语义先验的 RA,潜变量本身就带结构,扩散主干可以专心学动力学,参数效率明显更高。5B 能做到这个效果,autoencoder 的功劳不小。
第二,逐帧生成 + 极短去噪步数。 20 FPS 意味着每帧只有 50ms 预算,还得同时算 4 个玩家的视角。MIRA 用了蒸馏后的少步扩散(技术报告里提到接近单步/少步),配合 B200 的 FP8 算力,把延迟压到了可玩范围。这个工程量比模型架构本身还硬核。
第三,全合成数据。 训练用了 10k 小时的 Rocket League 合成数据,这个规模其实不算大——对比 Genie 那种互联网视频规模是小巫见大巫。但因为是合成数据,每帧都精确对应键盘动作和游戏状态(球、车、比分),监督信号极其干净。开源的 1000 小时子集叫 kyutai/rocket-science,已经上了 HuggingFace。
from mira.data import RocketScienceDataset
ds = RocketScienceDataset.from_hub(
\"kyutai/rocket-science\",
split=\"test\",
shards=1
)
# 每个 clip 16 帧,20 FPS 采样
clip = ds[0]
print(clip.frames.shape) # (16, H, W, 3)
print(clip.actions.shape) # (16, action_dim)
print(clip.game_state) # ball / cars / score
为什么"多人"是个大问题
单人世界模型在过去两年已经卷得差不多了——从 GameNGen 到 Oasis,DOOM、Minecraft、赛车都被复刻过。但一到多人就集体哑火,原因很直接:
- 动作空间爆炸。4 个玩家,每人独立的键盘输入,模型每一步都要在多维联合动作空间里推理,出错会级联到所有人的视角。
- 视角一致性。玩家 A 撞飞了球,玩家 B 的画面里球必须飞得一模一样,否则整局对战直接崩溃。这在扩散模型里是个非平凡的一致性问题。
- 延迟不能积累。单人可以容忍偶尔卡顿,多人只要有一个视角落后 100ms,体验就废了。
MIRA 的做法是把 4 个视角作为一个联合生成任务,共享一个隐状态,然后再解码到各自的画面。技术报告里管这个叫"shared world latent",本质上让模型内部维护一份"上帝视角"的世界状态,再投影到每个玩家的相机。这个思路和传统游戏引擎里的 authoritative server 有点像,只不过 server 变成了一张 B200。
实测下来的观感
我把 demo 玩了半小时(generalintuition.com/mira 上有在线版本,排队但能进)。几个直观感受:
- 画面质量比 Genie 3 差一档,尤其是运动模糊和边缘伪影明显,但对于 20 FPS 实时生成来说已经超出预期。
- 物理感"对味"。球的弹跳、车的加速、二段跳的悬停时间,虽然是模型幻觉出来的,但符合 Rocket League 老玩家的肌肉记忆。这说明合成数据的分布确实被学进去了。
- 偶尔会崩。球突然消失、车穿墙、比分乱跳,这些世界模型的经典问题都还在。玩超过 2 分钟一般会出现明显漂移。
- 多人同步意外地稳。4 个人真的能在同一个"梦"里踢球,这一点比技术报告里描述的更让我惊讶。
这件事的意义在哪
短期看,MIRA 是个非常漂亮的技术 demo,但不会替代任何真实游戏引擎——延迟、稳定性、可控性都还差得远。Epic Games 参与这个项目,我更倾向于理解为对"神经渲染 + 神经物理"这条路的长期押注。
中长期看,这件事的价值有三个层面:
- 多智能体交互环境的低成本合成。RL 训练需要大量环境,MIRA 这种模型未来可以充当"神经模拟器",尤其是需要多智能体交互的场景,比传统引擎更容易 scale。
- 世界模型开始有"社交属性"。此前所有可交互世界模型都是单人体验,MIRA 证明了同一份神经权重可以承载多个用户,这对未来的 AI 原生游戏、虚拟社交都是关键前提。
- B200 的算力红利被兑现。5B 参数 + 4 视角 + 20 FPS 在 H100 上跑不动,B200 的 FP8 和显存带宽让这个 demo 成立。往后一年,类似"必须新卡才能跑"的实时生成应用会越来越多。
和国内工作的对比
国内最近也有类似方向的开源,比如高德的 DreamX-World 1.0,同样是 5B 参数级别的通用交互式世界模型,主打单卡运行、长时间交互。两者的取舍不太一样:DreamX 更偏通用场景和长时程一致性,MIRA 则死磕多人实时和动作精度。有意思的是,两个项目参数量撞到了一起——5B 似乎正在成为"单卡实时世界模型"的一个甜蜜点。
再往前看,还有微软的 Muse、Google 的 Genie 系列。真正开源、能本地跑、还支持多人的,目前就 MIRA 一家。
上手门槛
仓库已经放出完整训练和推理代码:
# 一次性安装环境(需要 NVIDIA GPU)
git clone https://github.com/mira-wm/mira
cd mira && bash setup.sh
# 跑测试
pytest tests/
# 起本地推理
python -m mira.serve --checkpoint <ckpt> --players 4
推理侧官方推荐 B200,H100 也能跑但需要降帧率或减玩家数。想复现训练的话,10k 小时的合成数据现在开源了 1k 小时子集,剩下的需要自己生成——Rocket League 的 bot 对战脚本仓库里也给了。
ICML 现场(booth 111)他们摆了 PlayStation 手柄的实机演示,在会场的朋友可以去围观一下,据说排队已经排到隔壁 booth 了。
一点判断
MIRA 不是那种会立刻改变行业的模型,但它是"神经游戏引擎"这条技术路线上一个非常扎实的里程碑。它证明了三件事:多人实时可交互世界模型是可行的、5B 参数是够用的、合成数据训世界模型的路走得通。
对开发者来说,值得关注的不是"我能不能用它做游戏",而是它开源的那套 Representation Autoencoder + 少步扩散 + 共享隐状态的组合拳——这套东西换个场景(机器人仿真、自动驾驶闭环测试、多智能体 RL 环境)都用得上。
真正的世界模型还很远,但 MIRA 让"远"这个字缩短了一点。
参考来源
- MIRA GitHub 仓库 — 完整训练/推理代码与文档
- MIRA 发布讨论 (r/MachineLearning) — 作者原帖与社区讨论
- Introducing MIRA (r/accelerate) — 项目介绍与在线 demo 链接
- 高德 DreamX-World 1.0 解读 (知乎) — 国内同期 5B 世界模型对比参考
