nesformer 项目:将 NES 游戏机编译进 Qwen3.5 模型权重
速览
开发者 David Breunig 发布 nesformer,将 NES 的 6502 CPU、2KB 内存和卡带程序 ROM 全部编译进 Qwen3.5 的权重中,无需训练即可运行游戏。模型通过逐个 token 预测 CPU 执行日志来模拟游戏,宿主程序负责渲染画面和读取手柄。该项目基于 Qwenputer 的编译技术,Super Mario Bros. 等 NROM 卡带游戏可直接运行,且每帧输出与标准 6502 模拟器完全一致。
nesformer 的核心机制是把 CPU 执行日志作为 token 序列,由 Qwen3.5 模型逐步预测。模型内部利用 Gated DeltaNet 的 128×128 状态矩阵作为内存单元,通过 one-hot 键值操作实现读写,使得卡带、RAM 和寄存器都能存放在权重中。编译器而非训练过程计算出所有权重,因此模型本身是未经过微调的标准 checkpoint。
运行方式上,项目提供了多种 CLI 命令,包括 run(运行 ROM 并保存 GIF)、check(对比参考模拟器验证一致性)和 trace(打印 token 流)。游戏输入通过 --buttons 参数指定,例如 start@60-65,right@200-600,a@250-265 表示在指定帧按下对应按键。当前仅支持 NROM 映射器(iNES mapper 0)的卡带,如 Super Mario Bros.、Donkey Kong 和 Excitebike。
性能方面,使用 numba 引擎时每帧需要 1-6 秒,600 帧(即 10 秒 NES 时间)约需 10 分钟以上。若使用 Hugging Face 原生 transformers 引擎,速度约 10 token/s。项目要求 Python 3.11+,依赖 numpy、scipy、numba 和 pillow。
该项目的直接基础是 Divyansh Agrawal 的 Qwenputer,后者曾将 CHIP-8 和 RISC-V CPU 编译进 Qwen3.5-4B。nesformer 复用了其编译器和核心技巧,但将目标从简单模拟器推进到完整 NES 控制台,包括 PPU 渲染、控制器输入、APU 寄存器写入和 NMI 中断时序。
原文A Working Nintendo in ~1GB of Qwen Weightsgithub.com
#开源#Qwen#游戏模拟器
本文由程序自动抓取公开报道,经 AI 筛选与改写生成,未经人工逐条核实,事实以原文为准。