Ein komplettes NES läuft in nur 933 MB Qwen-Gewichten
A Working Nintendo in ~1GB of Qwen Weights
Ein Entwickler hat die 6502-CPU des NES samt 2 KB Arbeits-RAM und dem Programm-ROM eines Cartridges in die Gewichte eines Qwen3.5-Checkpoints kompiliert. Niemand hat diese Gewichte trainiert: Ein Compiler hat jeden einzelnen Wert berechnet, und der Gated-DeltaNet-Zustand des Modells dient als Speicher der Maschine. Super Mario Bros. und andere NROM-Spiele laufen Token für Token, Bild für Bild exakt wie auf einem echten 6502-Emulator – allerdings 150- bis 290-mal langsamer als die Konsole.
Niemand hat diese Gewichte trainiert; ein Compiler hat jeden einzelnen davon berechnet.
- dbreunig
Ein paar Gedanken zum Prozess hier…
Zunächst: Opus 5.5 hat funktionierende Gewichte und Code mit nur zwei Prompts gebaut:
1. Lies diesen Artikel und jeglichen relevanten Quellcode: https://divagr.com/blog/qwenputer. Erkunde dann, ob du den Chip und RAM in einem Nintendo Entertainment System (wie es heute Leute mit FPGAs in MISTRs machen) mit dieser Technik emulieren könntest. Wenn ja, welche Modellgröße müsstest du bauen, und wenn du kleinere, schnellere verwenden könntest, könntest du es auf die Standard-Taktfrequenz bringen?
Es lieferte Diagramme, die gut veranschaulichten, dass jedes Modell _langsam_ sein würde. Aber es macht trotzdem Spaß, also war der zweite Prompt:
2. Ich denke, wir sollten es bauen! Nur zum Spaß. Es ist okay, wenn es nicht schnell ist. Wir wollen die Gewichte haben und eine CLI, um sie auszuführen, die wir auf eine ROM richten können.
Nun, obwohl dies ein _epischer_ Lauf von Opus war (5.5 ist ein wahnsinnig fähiges Modell), ist dies eine überraschend gut strukturierte Herausforderung.
Es gibt eine langlebige und unglaubliche Community für klassische Spieleemulation online, auf die es zurückgreifen kann. Und diese Community hat … Konformitätstests erstellt! Opus fand sie und baute gegen einen, der >3k goldene Instruktionen hat: https://github.com/christopherpow/nes-test-roms/blob/master/...
Außerdem gibt es das ursprüngliche Qwenputer-Repo, das Opus zum Schreiben der Gewichte verwendete. Das war essenziell.
Aber dies ist ein großartiges Beispiel dafür, was diese Modelle mit geeigneten Referenzmaterialien, großartigen Spezifikationen, Konformitätstests und klarer Anleitung leisten können.
- armcat
Das eröffnet so viele interessante Möglichkeiten. Im Prinzip könnte man eine kleine VM in die LLM-Gewichte kompilieren. Die VM kann zum Beispiel einen Python-Interpreter, eine Shell und Tools wie sed, cat, grep etc. hosten. Statt dass LLMs langsame autoregressive Token-Ausgabe mit dem aktuellen "externen" Tool-Calling machen müssen, könnte es buchstäblich alles außer Websuche im LLM ausführen, nur mit Matmul-Operationen. Man könnte das wahrscheinlich so optimieren, dass es in Batches läuft. Man könnte eine gdb-ähnliche Anwendung haben, die durch den LLM-Forward-Pass schreiten kann. Wie auch immer, nur ein verrückter Gedanke. Schönes Wochenende euch allen!
- pbohun
>Insgesamt läuft nesformer 150–290× langsamer als die echte Konsole.
Ich mag solche Projekte, weil sie helfen zu zeigen, welch massiven Rechenaufwand es zwischen LLMs und gewöhnlichen Programmen gibt.
Vor einer Weile sah ich Leute sagen, wir würden einfach LMMs ein ganzes Betriebssystem in jedem einzelnen Frame halluzinieren lassen. Ich schätze, technisch ist jetzt bewiesen, dass es möglich ist, aber es wäre tausende Male langsamer und würde tausende Male mehr Rechenleistung erfordern (ein millionenfacher Unterschied zu einem gewöhnlichen OS!).
- jacquesm
Ich liebe diese Hacks, auch wenn es aus Effizienzsicht für mein Assembly-Code-Golf-Gehirn entsetzlich ist. Und es gibt auch eine neue Wertschätzung dafür, wie viel effizienter deterministische Programme im Vergleich zu KI sind.
- cafebeen
Ich hatte erwartet, dass dies nur die CPU selbst simuliert, war aber überrascht festzustellen, dass sie tatsächlich auch den RAM simulieren (im Modell selbst über die Gated-DeltaNet-Architektur enthalten). Nach meinem Verständnis werden also CPU, ROM und RAM alle intern vom Modell gehandhabt, und die einzigen Eingaben nach der Initialisierung sind die Controller-Ereignisse. Verrückt.
- dormento
A-aber "es gibt kein Ding wie ein Nintendo".
https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2F5...
"Mario dankt dir".
- nico
> nesformer baut auf Qwenputer von Divyansh Agrawal auf, das einen CHIP-8 und dann eine RISC-V-CPU in Qwen3.5-4B kompilierte. Es verwendet Qwenputers Compiler und dessen zentralen Trick wieder: Der Gated-DeltaNet-Zustand des Modells ist der Speicher der Maschine
Das ist großartig, ich liebe es! Qwenputer ist auch sehr cool
- akie
Ich schätze, man kann mit Sicherheit sagen, dass LLMs Doom ausführen können.