NES CPUをQwen重みに変換する実験
原題: Show HN: A working Nintendo in ~1GB of Qwen weights
なぜ重要か
LLMアーキテクチャをニューラルネット以外の目的に流用する「重みコンパイラ」という概念が実証され、モデル構造の汎用性に関する研究の幅が広がる。
開発者のdbreunig氏がGitHubで「nesformer」を公開した。NESの6502 CPU、2KBのワークRAM、カートリッジのプログラムROMを約1GBのQwen3.5モデルの重みとして動作させる実験的プロジェクトで、訓練は一切行わずコンパイラが全重みを計算する手法を採用。スーパーマリオブラザーズなど実際のゲームが動作することを確認している。
「nesformer」は、NES(ファミリーコンピュータ)の中核であるMOS 6502 CPU(2A03チップのコア)、2KBのワークRAM、そしてカートリッジのプログラムROMを、標準的なQwen3.5モデルのチェックポイント(約1GB)に落とし込んだ実験的プロジェクトだ。
最大の特徴は「学習ゼロ」という点にある。重みは機械学習で最適化されたのではなく、コンパイラが数学的に計算して直接書き込んだものだ。ゲームプレイ中、モデルはCPUの実行ログをトークン単位で予測する形で動く。画面描画・コントローラー入力・Vblank割り込みなどの周辺機能は別途ホストプログラムが担う構成になっている。
このアプローチはDivyansh Agrawal氏による「Qwenputer」プロジェクトを直接の土台にしている。QwenputerはCHIP-8インタープリタ、次いでRISC-V CPUをQwen3.5-4Bに同様の手法でコンパイルしており、nesformerはそのコンパイラとコアアイデアをそのまま流用した。核心的なトリックは、モデルのGated DeltaNet状態をマシンのメモリとして扱うことにある。
同梱のテスト用ゲームでは全フレームの出力が通常の6502エミュレータの結果と完全に一致することも確認済みで、CPUシミュレーションの正確性は担保されている。スーパーマリオブラザーズ(World 1-1)やDoug Fraker氏製作の自作ゲームでの動作デモも公開されている。
プロジェクトはGitHub上にPythonパッケージとして公開されており、重みファイルを別途解凍してセットアップすることで動作確認できる。