· kaynak Hacker News – Front Page (native)
Bir derleyici, stok Qwen3.5 ağırlıkları içine çalışan bir NES 6502 CPU'su derliyor
nesformer projesi, NES'in 6502 CPU'sunu, 2 KB çalışma RAM'ini ve kartuş ROM'unu eğitilmemiş bir Qwen3.5 checkpoint'ine derliyor ve model CPU'nun yürütme günlüğünü token token üretiyor.
Bir konsol CPU'su model ağırlıklarına derlendi
dbreunig adlı geliştiricinin nesformer adlı GitHub projesi, NES'in 2A03 çipinin çekirdeğini oluşturan 6502 işlemcisini, 2 KB'lık çalışma RAM'iyle ve bir kartuşun program ROM'uyla birlikte stok bir Qwen3.5 dil modelinin ağırlıklarına derledi. Bu ağırlıkları eğitim üretmedi; bir derleyici her birini hesapladı. Sonuç, Hacker News'in ana sayfasına ulaşan projenin README'sine göre, özel bir modeling kodu olmadan standart Qwen3_5ForCausalLM.from_pretrained çağrısıyla yüklenen sıradan bir Hugging Face checkpoint'i.
Oyun sırasında model, CPU'nun yürütme günlüğünü token token üretiyor. Geri kalan her şeyi ise küçük bir host programı sağlıyor: videonun her karesini render ediyor, kumandayı yokluyor ve vblank kesmesini tetikliyor.
Qwenputer'dan ödünç alındı
nesformer, önce bir CHIP-8 yorumlayıcısını sonra da bir RISC-V CPU'yu Qwen3.5-4B içine derleyen Divyansh Agrawal'ın Qwenputer projesine dayanıyor. nesformer o derleyiciyi ve temel içgörüsünü yeniden kullanıyor: makinenin belleği, modelin Gated DeltaNet durumunda yaşıyor.
README'de anlatıldığı şekliyle mekanizma ana hatlarıyla basit. Her DeltaNet head'i, delta kuralının her token'da güncellediği 128 × 128'lik bir durum matrisi tutar. Geçidi açık tutun ve one-hot bir anahtar kullanın; bir güncelleme o matrisin tam olarak bir satırını yeniden yazar; one-hot bir sorgu aynı satırı geri okur. Dolayısıyla her satır bir bellek hücresi gibi davranır ve kartuş, çalışma RAM'i ile CPU'nun register'ları hep satırlarda yaşar.
Ağırlıkların içerdiği ve içermediği
Model ile host arasındaki bölüşüm, Qwenputer'ın önceki CHIP-8 yapısını izliyor. Ağırlıkların içinde: 6502 çekirdeğinin tamamı — 151 resmi opcode'un hepsi, tüm adresleme modları, flag ve stack mekanizması ile BRK ve NMI giriş noktaları — artıca 2 KB çalışma RAM'i ve 32 KB PRG-ROM, komut çekimi ile veri okumalarının ayrı kopyalara sahip olması için iki kez saklanmış olarak, OAM DMA okumalarıyla birlikte. Host tarafında ise: NES paletiyle scanline bir PPU renderer'ı, kumandalar, APU register'ları (yazılıyor ama başka açıdan yok sayılıyor) ve vblank'teki NMI zamanlaması, akıya bir NMI token'ı olarak enjekte ediliyor ve I/O okumalarına yanıtlar IN token'ları olarak geliyor. Host, CPU'nun register'larını veya RAM'ini modelin yaydığı trace dışında hiçbir şekilde görmüyor.
Yedi katman devre
Devre, Hugging Face'in önbellekleme kodu beklediği için var olan tamamen sıfırlardan oluşan bir attention katmanı dışında yedi Gated DeltaNet katmanına yayılıyor. Gizli boyut 768, kelime dağarcığı 263.808 token ve head şekilleri ile MLP genişliği Qwen3.5-4B ile aynı: 16 key head, 32 value head, head boyutu 128, MLP genişliği 9.216. Checkpoint bf16 olarak 466,6M parametre — 933 MB — içeriyor ama yalnızca 9,3M'si sıfır dışı olduğundan ağırlıklar 3,3 MB'lık bir zip'e sıkışıyor. nesformer.json adlı bir dosya, makinenin her bileşenini onu saklayan katmana ve head'e eşliyor. İş bölümü kabaca şöyle: ilk katman program sayacını sabitliyor ve register'larla flag'leri tutuyor, üçüncü katman opcode'ları çekip çözüyor, beşinci katman RAM ve ROM veri okumalarını yapıp aritmetiği besliyor ve yedinci katman bir sonraki token'ı yayıyor.
Yavaş, ama referans bir emülatörle doğrulandı
Doğruluk öne çıkan iddia. Bir check komutu ağırlıkları ve geleneksel bir 6502 emülatörünü yan yana çalıştırıyor ve ilk sapmada duruyor; paketle gelen test oyunları için README, her karenin referans emülatörle tam olarak eşleştiğini ve her CPU token'ının modelden geldiğini söylüyor. Ödünç verilen şey hız: kabaca 20 saniyelik numba derlemesinin ardından bir kare bir ila altı saniye sürüyor, yani 600 kare — on saniyelik NES zamanı — yaklaşık 25 dakika alıyor. Aynı ağırlıklar, yeniden derleme yapmak yerine CLI'nin kartuşu başlangıçta model durumuna yüklemesi sayesinde NROM kartındaki (iNES mapper 0) her ROM'u çalıştırıyor; Super Mario Bros., Donkey Kong ve Excitebike dahil. Proje yalnızca üç özgür lisanslı test ROM'uyla geliyor; oyuncular ticari kartuşları kendileri sağlıyor.
Neden önemli
nesformer, dil modellerinin yalnızca öğrenilmiş öngörücüler değil, programlanabilir hesaplama olduğu argümanının çarpıcı bir örneği. Burada ağırlıklar, veriyle değil bir derleyici tarafından tamamen tanımlanmış, elle üretilmiş bir yapıt; ve modelin mimarisi — özellikle gated delta-rule attention'ın taşıdığı kalıcı durum — adreslenebilir bellek ve dijital mantık olarak da iş görüyor. Yorumlanabilirlik araştırmaları için alışılmadık bir inceleme nesnesi sunuyor: kelimenin tam anlamıyla bir bilgisayar olan ve head'lerden donanım işlevlerine belgelenmiş bir eşlemesi bulunan bir checkpoint. Pratik etkisi, kare başına bir ila altı saniyelik hızla sıfır. Ama "model" ile "makine" arasındaki çizginin genellikle varsayılandan daha ince olduğuna ve yinelemeli duruma sahip mimarilerin bu tür programlamaya davet çıkardığına dair bir kanıt olarak çarpıcı bir gösteri.
- #nes
- #emulation
- #llm
- #machine-learning
- #open-source
İlgili yazılar
- InclusionAI'nin 1M token bağlam penceresine sahip Ling 3.1 Flash, Vercel AI Gateway'de ücretsiz kullanıma sunuldu
- Vercel, Geist Serif'i yayınladı: açık kaynak yazı ailesine editoryal bir display karakter ekliyor
- NVIDIA Research'a göre küçük dil modelleri yapay zeka agent çağrılarının çoğunu yönetebilir