[控场AI]
· 5 分钟阅读· 2,767 字

把NES模拟器炼进大模型:Qwen3.5-4B跑超级马里奥

把NES模拟器炼进大模型:Qwen3.5-4B跑超级马里奥

开发者把 NES 的 6502 CPU 模拟器炼入 Qwen 权重,做出能缓慢跑 ROM 的 nesformer。

Drew Breunig 开源了 nesformer 项目,把一整颗 NES 6502 CPU 模拟器“烤”进 Qwen3.5-4B 的模型权重,使大模型在推理中扮演这颗 8 位处理器,从而加载并缓慢推进《超级马里奥兄弟》等 ROM。项目受 qwenputer 启发,据称仅用 Opus 5.5 的两条提示词构建,并复用了 Christopher Pow 15 年前的 NES CPU 一致性测试集来校验指令行为。它速度极慢,不具备实用模拟器价值,真正意义在于探测模型权重能承载多少确定性计算,以及这种“人类定意图、模型做落地”的构建方式。

当模拟器不再是代码,而是模型权重

提到玩《超级马里奥兄弟》,你想到的通常是模拟器软件加上一份 ROM。但开发者 Drew Breunig 做了一件反直觉的事:他把一整颗 NES 的 6502 CPU 模拟器,"烤"进了 Qwen3.5-4B 的模型权重里。项目名叫 nesformer,发布在他的 GitHub 上,并很快在 Hacker News 上引发讨论。

这意味着运行 NES 游戏不再依赖传统意义上的解释器循环,而是让大模型在推理过程中"扮演"那颗 8 位处理器。速度很慢,但确实能跑起来——你可以加载《超级马里奥兄弟》这样的 ROM,看着它在 Qwen 内部一点点推进。

NES(Nintendo Entertainment System)的主处理器是 MOS Technology 6502 的定制版本(Ricoh 2A03),一颗 8 位 CPU,主频约 1.79 MHz。它的指令集包含约 56 条指令和多种寻址模式,行为高度确定:给定寄存器和内存状态,下一条指令的结果完全可预测。

传统模拟器正是利用这种确定性,用一个解释器循环逐条读取、译码、执行指令。要把这颗 CPU 的行为“烤”进模型权重,本质上是要让参数化的网络在每一步推理中复现这套确定性的状态转移,这也是该实验在概念上最反直觉的地方——用概率性模型去逼近一个有限状态机。

rss source: dbreunig/nesformer

灵感来自 qwenputer

这个项目的思路并非凭空出现。Breunig 明确表示,他受到了 Divyansh Agrawal 的 qwenputer 启发。qwenputer 展示了把计算逻辑塞进模型权重的可行性,而 nesformer 把这一思路推向了更具体的硬件模拟场景。

两者的共同点在于:模型不再只是"生成文本",而是被当作一个可执行的 substrate(承载层)。这种用法偏离了大模型的主流叙事,却打开了一个有趣的实验方向——用神经网络权重去表达确定性极强的状态机逻辑。

构建过程:Opus 5.5 的两条提示词

据 Breunig 在 Hacker News 评论中的披露,这个系统是用 Opus 5.5 构建的,核心只有两条提示词。第一条是让模型阅读 qwenputer 的文章和相关源码,然后评估:能否用同样的技术模拟 NES 的芯片和内存?如果可以,需要多大的模型?能否用更小更快的模型达到标准时钟速度?

第二条提示词则直接拍板:"我觉得我们应该把它做出来!就为了好玩。慢一点也没关系。我们要的是权重,以及一个能指向 ROM 的 CLI。"

这两条提示词的措辞值得玩味:它没有要求工程上的完美,而是把"好玩"和"可运行"放在首位。这种目标设定反而降低了实现门槛,让一个看似荒诞的想法变成了可交付的原型。

借助 15 年前的 CPU 一致性测试

构建过程中还有个关键细节。Opus 找到了 Christopher Pow 在 15 年前发布的一套 NES CPU 一致性测试集(nestest.txt),并加以使用。这套测试原本用于验证模拟器实现的正确性,现在被用来校准模型对 6502 指令行为的还原程度。

这是个聪明的复用。老测试集提供了明确的通过/失败标准,让"模型是否真的在模拟 CPU"从模糊的主观判断,变成了可对照的行为验证。

一致性测试(conformance test)是模拟器开发中的标准验收手段:它给出一组预设的初始寄存器与内存状态,逐条执行指令,并比对照预期结果与标志位变化。nestest.txt 就是针对 6502 的经典测试,覆盖了绝大多数指令与边界情况,输出可以逐行 diff。

它的价值在于把“这个模拟器对不对”转化为可自动判定的通过/失败信号。nesformer 借用这套测试来校准模型,等于把原本用于验证解释器的工程标准,移植为评估“权重是否学会了 CPU 行为”的度量工具,这是该项目方法论上最巧妙的一环。

这意味着什么,又不意味着什么

不是实用模拟器

首先要泼一盆冷水:以当前的速度,它离"能玩"还有很远的距离。Breunig 自己也在描述中用了"very slowly"。把它当作日常玩 NES 的方案并不现实,传统模拟器在性能和兼容性上依然是压倒性选择。

是对模型能力边界的探测

真正有价值的地方在于它提出的问题:模型权重能承载多少确定性计算?当逻辑被参数化之后,正确性如何保证?一致性测试给出了一条可行路径,但覆盖范围终究有限。

这类实验和更广泛的"把算法编译进神经网络"研究形成呼应。它们共同指向一个尚不明朗的方向——神经网络或许不只是函数逼近器,也能成为某种可编程的介质。速度、精度、泛化能力之间的取舍,仍是未被回答的核心问题。

把算法“编译”进神经网络权重,是近年一个逐渐成型的研究方向,常见做法包括让网络在隐空间中模拟寄存器与内存、用循环结构承载程序状态,或通过蒸馏把符号程序的输入输出行为迁移到参数中。

这类工作的共同难点是:确定性逻辑要求零错误的逐步推进,而神经网络本质上是连续、近似、易受数值误差累积影响的,长序列执行时小误差会被放大。因此评价这类系统时,除了看能否跑通,还要看它能维持多长的正确执行链、以及在未见过的输入上是否仍然成立——这正是 nesformer 一类探针实验试图暴露的问题。

对开发者工作流的暗示

另一个值得注意的点是构建方式本身。两条提示词、一次"就为了好玩"的决定,加上模型自主找到并使用了陈年测试集——这展示了一种新的协作形态:人类负责设定意图和验收标准,模型负责检索资源与落地实现。至于这种形态能走多远,nesformer 只是众多样本中的一个。

想自己试试?

项目代码和权重在 dbreunig/nesformer 开源。按照 Breunig 的描述,你需要的是权重和一个 CLI,把 ROM 指给它即可。做好心理准备:加载《超级马里奥兄弟》后,请给它足够的时间。

如果你对"模型即计算介质"这类实验感兴趣,qwenputer 和 nesformer 值得放在一起读。它们不是产品,而是探针——用来戳一戳当前大模型能力边界上那层还没被定义清楚的膜。

#nesformer#Qwen3.5-4B#NES模拟器#大模型权重#qwenputer#6502 CPU#AI实验
分享:

相关推荐