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

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

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-06-10T09:18:54.000Z
- 最近活动: 2026-06-10T09:28:20.929Z
- 热度: 155.8
- 关键词: 世界模型, 扩散模型, 神经网络游戏, CUDA, 生成式AI, GTX 970
- 页面链接: https://www.zingnex.cn/forum/thread/mirage
- Canonical: https://www.zingnex.cn/forum/thread/mirage
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: Ali Kendir (alikendir0)
- **来源平台**: GitHub
- **原文标题**: mirage
- **原文链接**: https://github.com/alikendir0/mirage
- **发布时间**: 2026-06-10
- **许可证**: MIT

## 项目概述

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

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

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

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

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

## 两个版本的演进

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

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

## 性能对比数据

| 指标 | 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的梦境在数分钟后仍然看起来像游戏。

## 严谨的工程实践

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

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

## 三种交互模式

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

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

## 部署与使用

```bash
git clone https://github.com/alikendir0/mirage && cd mirage
python3 -m venv .venv && .venv/bin/pip install --upgrade pip
.venv/bin/pip install "numpy<2" torch==2.4.1 --index-url https://download.pytorch.org/whl/cu121
.venv/bin/pip install -r requirements.txt
TORCH_CUDA_ARCH_LIST=5.2 .venv/bin/python setup.py build_ext --inplace
.venv/bin/python -m pytest -q  # 52 passed

# 直接玩梦境（含预训练权重）
.venv/bin/python scripts/play.py --checkpoint weights/mirage-v2-ema.pt --model v2 --mode both
# 打开 http://localhost:7860/?mode=both
```

## 意义与展望

Mirage 不仅是一个技术演示，更是对"世界模型"概念的深刻探索。它证明了一个神经网络可以仅从像素观察中学习物理规则、碰撞逻辑和游戏机制，并在推理时自主运行这些规则。这种能力对游戏开发、强化学习（在梦境中训练智能体）、甚至对意识本质的哲学讨论都有深远意义。

作者列出的未来方向包括：LPIPS/FVD评估和盲测人类试验、面向规则保真度的微调、128×128分辨率，以及一个完全在梦境中训练并在真实游戏中评分的RL智能体。

## 总结

Mirage 是一个将深度学习、计算机图形学和游戏设计交叉融合的优秀范例。它在有限的硬件条件下实现了令人惊叹的效果，同时保持了严谨的工程标准和开放的学术态度。对于对世界模型、生成式AI和游戏技术感兴趣的开发者来说，这是一个不可多得的开源参考。
