deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Qwenputer, çalışan bir RISC-V CPU'yu Qwen 3.5'ın ağırlıkları içine derliyor

Bir araştırmacı, deterministik bir RV32IM CPU'yu herhangi bir değişikliğe uğramamış bir Qwen 3.5 4B modeline doğrudan derleyerek, Gated DeltaNet katmanlarını RAM gibi kullanıp modelin forward geçişlerinin içinde C ve MicroPython kodu çalıştırdı.

Qwenputer, çalışan bir RISC-V CPU'yu Qwen 3.5'ın ağırlıkları içine derliyor

Bir geliştirici, herhangi bir değişikliğe uğramamış (stock) bir Qwen 3.5 4B modelinin içine çalışan bir 32 bit RISC-V işlemcisi kurdu; CPU, harici bir araç olarak eklenmek yerine doğrudan ağın ağırlıklarına derlendi. Hacker News'in ana sayfasına ulaşan divagr.com'daki yazıya göre Qwenputer adı verilen proje tamamen modelin forward geçişlerinde çalışıyor ve hiçbir sandbox, runtime ya da harici araç çağrısı olmadan aritmetik, C ve MicroPython kodu yürütebiliyor.

Attention katmanlarını RAM'e dönüştürmek

Temelde Qwen 3.5'ın mimarisi yatıyor: dört attention katmanından üçü Gated DeltaNet kullanıyor; bu, her head'in token token delta kuralıyla güncellenen bir state matrisi tuttuğu lineer bir RNN. Normalde bu state sönümlenir, çünkü 1'in altındaki bir gate her adımda saklanan değerleri soluklaştırır. Yazar, gate'i 1'e sabitlemenin, yazma gücünü (beta) 1'e ayarlamanın ve key'leri one-hot vektörler olarak kodlamanın her head'i adreslenebilir bir belleğe dönüştürdüğünü buldu: one-hot bir yazma state'in tam olarak tek satırının üzerine yazar ve one-hot bir sorgu tam değerini geri getirir. Bir GDN head'in state'i, bir attention KV cache'inin aksine, konuşma ne kadar uzun sürerse sürsün aynı boyutta kalıyor, dolayısıyla bu RAM ucuz.

Delta kuralını ilişkisel bellek olarak kullanmak yeni değil — Schlag, Irie ve Schmidhuber 2021'de lineer transformer'ların hızlı ağırlık programlayıcıları gibi davrandığını göstermişti. Buradaki yenilik, mekanizmayı bir üretim modelinin içinde tam ve adreslenebilir hale getirmek ve bunun üzerine tam bir CPU çalıştıracak kadar güvenilir olması. Stock Qwen 3.5, GDN katmanlarında tam değerler saklamıyor; yapılan değişiklik bu yeteneği açığa çıkarıyor.

Eğitilen değil, derlenen bir CPU

Herhangi bir eğitim yapılmıyor. İşlemci, küçük adımlardan oluşan bir devre olarak tanımlanıyor — bir register oku, iki değer topla, sıfırsa atla — ve bir derleyici her adımı transformer bileşenlerine çeviriyor: attention head'leri arama yapar, feed-forward birimleri aritmetik işlemleri yürütür, DeltaNet head'leri belleği tutar. CPU, Qwen'un 32 katmanının önüne yerleştirilen 11 ek katman kaplıyor. Model decode ederken her talimat için üretilen token'lardan bir iz çıkarıyor — biri yazılacak bellek satırını adlandıran, biri değeri taşıyan ve talimatı kapatan bir STEP token'ı — böylece işlemci Qwen üretirken yürütülüyor.

Çekirdek, tam RV32IM komut setini, Zba uzantısını ve büyük sayı aritmetiği için küçük bir bignum birimini uyguluyor. Henüz Linux sınıfı bir çip değil. Yazar, resmi riscv-tests'leri geçtiğini, qemu'nun çıktısıyla birebir örtüştüğünü ve 18 milyon talimatı serbest çalışma modunda — yalnızca kendi çıktılarıyla devam ederek, adımlar arasında onu düzelten bir referans makine olmadan — tek bir hata bile yapmadan tamamladığını bildiriyor.

Qwen onu nasıl kullanıyor ve rakamlar

Qwen 3.5 4B, dahili CPU'yu hiçbir post-training olmadan kullanıyor. Tasarım, dil modellerinin zaten eğitilmiş olduğu tool-call formatına biniyor: Qwen talimatları yazar, derlenmiş katmanlar bunları yürütüp yanıtı geri yazar, hepsi dahili olarak. RvChat adlı küçük bir sürücü, firmware'i GDN state'ine yüklüyor. Qwen'un özgün ağırlıklarına dokunulmuyor; bilgisayar ağırlıkları ek boyutlara ve katmanlara ekleniyor.

Bildirilen benchmark'lar bir Python aracına karşı ayakta kalıyor. DeepMind aritmetik setlerinde Qwenputer, div_big'de %97,5 alırken Python aracı verilen temel Qwen %95, araçsız ise %72,5 aldı; mul_big'de %97,5'a karşı araçla %100 ve temel modelde %55; mul_div_multiple_longer'da %100'e karşı %97,5 ve %90; add_or_sub_big'de ise %97,5 ile aracıyla eşit. NUPA uzun tamsayı aritmetiğinde temel modeli %48,6'dan %100'e çıkarıyor ve Python aracıyla eşitleniyor. Bir referans makineye karşı yeniden oynatılan yaklaşık 230.000 çıktı konumunda sıfır uyumsuzluk görüldü ve genel metin davranışı özgün modelin gürültü aralığında kalıyor (5e-4 gürültü tabanına karşı 6e-4 KL ıraksaması).

State içinde bir dosya sistemi

Yapı, gerçek araç çağrıları yerine dahili put, append, get, list ve delete işlemleriyle açığa çıkarılan model içi dosya depolamayla daha da ileri gidiyor. Dosya adları, DeltaNet state'indeki 1.024 dizin slotundan birine hash'leniyor; içerikler satır başına sekiz token olacak şekilde satırlar boyunca zincirleniyor. Kapasite 512 dosya, kabaca 53.000 token metin. State, bir konuşmanın sonunda kaydedilip bir sonrakine yüklenebiliyor ve sohbetler arasında değişen gerçeklerle ilgili sorularda model %90 oranında doğru yanıt veriyor.

Neden önemli

Bu, bir LLM'nin dahili state'inin, yalnızca sürücü olarak kullanılan sampling ile deterministik, genel amaçlı hesaplama barındırabileceğinin çarpıcı bir gösterimi. İddialar doğruysa, derlenmiş ağırlıklar harici araçların sunamayacağı bir şey sunuyor: modelin kendisinin atlayamayacağı veya kurcalayamayacağı bir hesaplama — yazarın sonraki çalışması bunu yerleşik izleme araçları olarak inceliyor. Aynı özellik iki yönlü kesiyor — bir başka takip çalışması, hibrit modellerin muhakemelerini RNN state'lerinde saklamayı ve chain-of-thought izlemesinden kaçınmayı öğrenebildiğini gösteriyor. Ayrıca sampling'in aritmetik sınırlarının ötesine pratik bir yol gösteriyor: CPU'nun çıktıları tam ve bir referans makineye karşı yeniden oynatıldığında hiçbir uyumsuzluk göstermedi. Model Hugging Face ve ModelScope'ta mevcut, kod ise GitHub'da.

  • #llm
  • #risc-v
  • #qwen
  • #research
  • #open-source

İlgili yazılar