Journal / 2026 / 科技

把 NES CPU 编译进 Qwen 权重:nesformer 实测

2026 年 10 月 30 日,dbreunig 在 Hacker News 发布 nesformer:把一个 NES 的 6502 CPU、2 KB 工作内存和卡带 ROM 编译进 Qwen3.5 的权重,模型逐 token 预测 CPU 执行日志。本文梳理它的做法、运行步骤与实测边界。

把 NES CPU 编译进 Qwen 权重:nesformer 实测
封面 取自本文正文首图,点击可放大
目录 · 1296 字 / 3 分钟

2026 年 10 月 30 日,dbreunig 在 Hacker News 发布了 nesformer(Show HN)。它不是一个模拟器前端,而是一次「把计算机编译进模型权重」的实验:NES 的 6502 CPU、2 KB 工作内存和卡带 ROM,被放进一个标准的 Qwen3.5 检查点里;这些权重不是训练出来的,而是由编译器算出来的。

发生了什么

按项目 README 的描述,链路是这样的:

  • NES 的 6502 CPU(2A03 芯片的核心)、2 KB 工作 RAM 和卡带程序 ROM,运行在一个标准的 Qwen3_5ForCausalLM 检查点内。
  • 权重没有经过训练,全部由编译器计算。
  • 玩游戏时,模型逐 token 预测 CPU 的执行日志;画面、手柄读取和 vblank 中断由一个小型宿主程序完成。
  • 项目建立在 Divyansh Agrawal 的 Qwenputer 之上:后者先把 CHIP-8、再把 RISC-V CPU 编译进 Qwen3.5-4B,并把 Gated DeltaNet 的状态当作机器内存。nesformer 复用了它的编译器和这个核心技巧。

它到底「跑」在哪里

这里最容易误解。nesformer 不是把 NES ROM 交给一个普通模拟器,再由模型「解说」;模型自己就是 CPU。宿主程序只负责画面与输入,CPU 的每条指令由模型前向计算给出。

Qwenputer 的作者在博客里解释了底层机制:Qwen3.5 的多数注意力层使用 Gated DeltaNet(一种线性 RNN),每个头维护一个状态矩阵;把门控设为 1,这个状态就可以当作精确的 RAM 使用。nesformer 把 NES 的 2 KB 工作内存映射到这套状态上。

怎么自己试

  1. 准备 Python 环境,安装 numpy、scipy、numba、pillow。
  2. 解压 nesformer-weights.zip 到 nesformer/ 包旁边,用仓库里的 SHA256SUMS 校验权重。
  3. 跑仓库自带的测试 ROM,例如 python -m nesformer run roms/thwaite.nes --frames 600 --show。
  4. 想换游戏,需要自备 NROM(iNES mapper 0)ROM,例如 Super Mario Bros.、Donkey Kong 或 Excitebike;仓库只附带三个自由许可的测试 ROM。

性能要有心理准备:第一次运行大约花 20 秒用 numba 编译引擎;之后每帧 1–6 秒,600 帧(10 秒 NES 时间)大约 25 分钟。这不是一个能实时玩的模拟器,而是一个可以观察「模型内部真的在算 CPU」的实验装置。

为什么值得看

它把两件通常分开的事接在了一起:模型的权重可以承载一个确定性的状态机,而不只是概率性的文本生成。README 说,对仓库附带的测试游戏,每一帧都与传统 6502 模拟器的输出完全一致。这句话是项目方自己的验证口径,本文没有独立复跑。

对读者来说,最实际的动手点是:用同一套 Qwenputer 编译器,换一个更小的指令集或更简单的状态机,看看多小的模型还能保持逐帧一致。这比再跑一遍基准测试更能说明「编译进权重」的边界。

还没验证的部分

  • 帧级一致性:只有项目方 README 的声明,本文没有独立复跑逐帧比对。
  • 「约 1GB 权重」的实际占用:取决于解压后的权重文件与运行环境,本文没有逐项测量。
  • 不同 ROM 的兼容性:仓库只保证 NROM(mapper 0);其他 mapper 的卡带不在承诺范围内。
  • 速度是否可优化:1–6 秒一帧是作者给出的量级,未验证量化、批处理或换后端后的表现。

参考来源

本文基于以下公开报道整理:


本文由 AI 辅助整理,事实与引文来自项目 README、Qwenputer 作者博客与 Hacker News 公开元数据;未独立复跑帧级比对,配图为本地生成的信息图。

§

所属主题

Topics
  • AI 观察 AI Insights

    AI12

主题只是把现有标签归并后的浏览方式,标签本身不变;全部标签 · 画廊

← 全部文章