重みだけでNESが動く、Qwen3.5に6502 CPUをコンパイル
A Working Nintendo in ~1GB of Qwen Weights
NESの6502 CPU、2KBのRAM、カートリッジのROMを、学習ではなくコンパイラで計算した重みとしてQwen3.5のチェックポイントに埋め込んだプロジェクト。モデルはCPUの実行ログを1トークンずつ予測し、Gated DeltaNetの状態行列が機械のメモリとして機能する。Super Mario Bros.を含むNROMゲームが動き、フレームは実機エミュレータと完全一致する。ただし実機より150〜290倍遅い。
これらの実行におけるCPUのトークンはすべてモデルから出力されたものである。
HNでの議論
113- dbreunig
このプロセスについて、いくつか思うところがある…
まず、Opus 5.5はたった2つのプロンプトで動作する重みとコードを構築した:
1. この記事と関連するソースコードを読んでください:https://divagr.com/blog/qwenputer。次に、この技術を使ってNintendo Entertainment SystemのチップとRAMをエミュレートできるか探ってください(今日、人々がMISTRでFPGAを使ってやっているように)。もし可能なら、どのくらいのサイズのモデルを構築する必要があるか、またより小さく高速なモデルを使えるなら、標準のクロックスピードで動作させられるか。
返ってきたのは、どのモデルでも「遅い」ことをよく示すグラフだった。しかしそれでも楽しいので、2つ目のプロンプトはこうだった:
2. 作ってみよう!ただ楽しみのために。速くなくても大丈夫。重みと、それを実行するCLIを持ち、ROMを指定できるようにしたい。
さて、これはOpusによる「壮大な」実行だったが(5.5は驚くほど有能なモデルだ)、これは驚くほどよく構造化された課題でもある。
オンラインには、参照できるクラシックゲームエミュレーションの長寿で素晴らしいコミュニティが存在する。そしてそのコミュニティは…適合性テストを作成してきた!Opusはそれを見つけ、3000以上のゴールデン命令を持つものに対して構築した:https://github.com/christopherpow/nes-test-roms/blob/master/...
また、Opusが重みの書き込みを推進するために使用した元のQwenputerリポジトリもある。それは不可欠だった。
しかしこれは、適切な参考資料、優れた仕様、適合性テスト、明確な指示があれば、これらのモデルが何をできるかを示す素晴らしい例だ。
- armcat
これは多くの興味深い機会を開く。原理的には、LLMの重みの中に小さなVMをコンパイルできる。そのVMは例えばPythonインタプリタ、シェル、sedやcat、grepなどのツールをホストできる。LLMが現在の「外部」ツール呼び出しで遅い自己回帰的なトークン生成を行う代わりに、ウェブ検索以外のすべてを、単に行列積演算だけでLLM内部で文字通り実行できる。おそらくこれを最適化してバッチで実行できるようにもできるだろう。LLMのフォワードパスをステップ実行できるgdbのようなアプリケーションも可能だ。とにかく、クレイジーな思いつきだ。皆さん、良い週末を!
- pbohun
>全体として、nesformerは実際のコンソールより150~290倍遅い。
私はこういう種類のプロジェクトが好きだ。なぜなら、LLMと通常のプログラムの間の膨大な計算要件を示すのに役立つからだ。
以前、LMMが毎フレームごとにオペレーティングシステム全体を幻覚で生成するだけになるだろうと言っている人々を見た。技術的には可能であることが証明されたと思うが、それは数千倍遅く、数千倍の計算を必要とする(通常のOSと比べて数百万倍の差!)。
- jacquesm
私はこういうハックが大好きだ。効率の観点からは、アセンブリコードゴルフをする私の脳には恐ろしいことだが。そしてこれは、決定論的なプログラムがAIと比べてどれほど効率的かについて、新たな認識を与えてくれる。
- cafebeen
これはCPU自体をシミュレートするだけだと思っていたが、実際にはRAMもシミュレートしている(ゲート付きデルタネットアーキテクチャを介してモデル自体に含まれている)ことに驚いた。つまり私の理解では、CPU、ROM、RAMはすべてモデル内部で処理され、初期化後の入力はコントローラのイベントだけだ。すごい。
- dormento
で、でも「ニンテンドーなんて存在しない」んだろ。
https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2F5...
「マリオが感謝してるよ」。
- nico
>nesformerはDivyansh AgrawalによるQwenputerを基に構築されており、これはCHIP-8とその後RISC-V CPUをQwen3.5-4Bにコンパイルした。Qwenputerのコンパイラとその中心的なトリック、つまりモデルのGated DeltaNet状態がマシンのメモリであるということを再利用している。
これは素晴らしい、大好きだ!Qwenputerもとてもクールだ。
- akie
LLMがDoomを実行できると言っても安全だろう。