Zing 论坛

正文

Mirage:在神经网络内部运行的游戏——扩散世界模型的实践探索

一个极具创意的研究项目,用CUDA模拟器生成数据,训练扩散模型学习游戏规则,最终在浏览器中用神经网络"做梦"来玩一款街机游戏,全程仅用一块GTX 970显卡

世界模型扩散模型神经网络游戏CUDA生成式AIGTX 970
发布时间 2026/06/10 17:18最近活动 2026/06/10 17:28预计阅读 3 分钟
Mirage:在神经网络内部运行的游戏——扩散世界模型的实践探索
1

章节 01

导读 / 主楼:Mirage:在神经网络内部运行的游戏——扩散世界模型的实践探索

一个极具创意的研究项目,用CUDA模拟器生成数据,训练扩散模型学习游戏规则,最终在浏览器中用神经网络"做梦"来玩一款街机游戏,全程仅用一块GTX 970显卡

2

章节 02

原作者与来源

3

章节 03

项目概述

Mirage 是一个将游戏引擎与深度学习融合的实验性项目。它的核心理念是:不运行任何游戏代码,仅让一个神经网络通过观察游戏画面来学习游戏规则,然后在浏览器中"做梦"——逐帧生成游戏画面,让玩家用键盘控制一个完全由神经网络驱动的游戏世界。

这个项目最引人注目的地方在于,所有计算——包括模拟、数据生成、训练和交互式推理——都在一块2014年的GTX 970显卡(4GB显存)上完成。预训练权重已包含在仓库中,用户无需训练即可直接体验。

4

章节 04

技术架构:数据工厂与世界模型

CUDA数据工厂:项目首先用自定义CUDA引擎编写了一个批处理街机游戏模拟器。这个模拟器不是最终产品,而是数据工厂——它在GPU上同时步进512个游戏场景,以约每秒206,000帧的速度光栅化输出。训练数据不是一个需要下载的数据集,而是一个内核函数,实时生成无限新鲜数据。

世界模型:一个260万参数的U-Net架构,采用循环填充(因为游戏 arena 是环形,网络的拓扑结构与世界的拓扑结构匹配)和FiLM(特征级线性调制)动作条件注入。模型只接收像素输入——最近4帧画面和玩家按键——然后预测下一帧。

5

章节 05

两个版本的演进

v1——确定性预测器:训练目标是最小化平均像素误差。在单步预测上几乎完美(PSNR 42.6 dB),但在未来不确定的地方(比如岩石碎片会飞向哪个方向),损失最优的输出是所有未来的平均值——产生"鬼影"。由于梦境会自我喂养(模型用自己的输出作为下一步输入),鬼影会像复印机的复印件一样不断累积。

v2——EDM扩散模型:采用Karras等人2022年的EDM框架,在每个噪声级别上训练去噪能力。在游玩时,模型从纯噪声中采样出一个清晰的帧,由上下文和动作引导,承诺一个确定的未来而不是平均所有可能。自回归PSNR在10步时从25.6 dB提升到27.3 dB。

6

章节 06

性能对比数据

指标 v1 U-Net v2 扩散
单步PSNR 42.6 dB 42.2 dB
自回归PSNR@10步 25.6 dB 27.3 dB
梦境规则测试(射击大岩石是否分裂) 24/24 18/24
10秒梦境后锐度保持 0.985 1.004
GTX 970上梦境速度 200+ fps 54 fps(4步采样)

诚实的发现是:在一个大部分确定性的街机游戏中,回归基线确实很强——近单峰未来适合它,它能掌握游戏规则。扩散模型带来的是长期承诺:在v1已经模糊消散的情况下,v2的梦境在数分钟后仍然看起来像游戏。

7

章节 07

严谨的工程实践

项目的模拟器部分展现了极高的工程标准:

  • CPU预言机对等验证:每条游戏规则都用两种方式实现——快速的CUDA和可读的numpy。测试让两者并行运行300步,误差≤1e-4,计数器完全一致,跨运行位级确定性。
  • 无状态随机数生成器:每个随机数都是(seed, arena, step, call-site)的纯哈希函数,CUDA和numpy完全一致。
  • 黄金图像测试:光栅化器在固定场景下的精确输出被提交为基准;任何意外像素变化都会导致CI失败。
  • 52个测试用例,其中CPU子集(预言机、数据管道、模型数学)无需GPU即可运行。
8

章节 08

三种交互模式

项目提供三种浏览器交互模式:

  • ?mode=real:真实游戏,惯性飞船、分裂岩石、环形竞技场
  • ?mode=dream:同一款游戏,但由模型逐帧幻觉生成
  • ?mode=both:对比模式——相同输入、共享开局历史,观察两者如何分道扬镳