deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

Yedi ESP32-S3 kartı SPI zinciri üzerinde 1.58-bit BitNet LLM çalıştırıyor

Açık kaynak bir proje, yaklaşık yarım milyar parametreli BitNet modelini transformer katmanlarını SPI zinciri üzerinden bölerek yedi ESP32-S3 mikrodenetleyicisinde çalıştırıyor.

Yedi ESP32-S3 kartı SPI zinciri üzerinde 1.58-bit BitNet LLM çalıştırıyor

Bir geliştirici, BitNet tarzı bir büyük dil modelini yedi ESP32-S3 mikrodenetleyicisinden oluşan bir kümede çalıştıran açık kaynak bir proje yayımladı; kartların altısı, ağın transformer katmanlarının birer dilimini işliyor. Hacker News ana sayfasında öne çıkan projenin GitHub deposuna göre tasarım bir pipeline: kartlar tek bir hidden-state vektörünü zincir boyunca aktarıyor ve her biri, kendi dört transformer bloğuyla bu vektörü dönüştürerek bir sonrakine iletiyor.

Küme nasıl bağlandı

Bir ESP32-S3 master olarak görev yapıyor. BPE tokenizer'ı ve token-embedding aramasını çalıştırıyor, ardından ortaya çıkan FP32 hidden-state vektörünü tek bir SPI kanalı üzerinden ilk işlem düğümüne iletiyor. Altı işlem düğümünün her biri dört transformer bloğu çalıştırıyor — birinci düğüm 0'dan 3'e kadar katmanları, son düğüm ise toplam 24 blok olacak şekilde 20'den 23'e kadar katmanları kapsıyor — ve güncellenmiş durumu bir sonraki karta iletiyor. Son düğüm, durumu master'a geri gönderiyor; master son RMS normalizasyonunu, embedding matrisine bağlı bir dil modeli başlığını ve greedy örnekleme uygulayarak bir sonraki tokeni üretiyor.

README, bağlantıyı yüksek hızlı bir SPI zinciri olarak tanımlıyor ve kartlar arasında veri aktaran tek şey hidden state.

Model boyutu, hikayenin ortaya çıktığı iki yerde biraz farklı belirtilmiş: Hacker News özeti modeli 0.4B parametreli olarak nitelendirirken, README küme boyunca bölünmüş 0.5B'lik bir modelden söz ediyor.

1.58 bit nereye gidiyor

Proje, her ağırlığı üç değerden biri olarak saklayan ve ağırlık başına yaklaşık 1.58 bite denk gelen BitNet tarzı üçlü (ternary) nicemlemeye dayanıyor. Depoya göre her bloktaki attention projeksiyonları (Q, K, V ve çıktı) ile MLP projeksiyonları (gate, up ve down) bu üçlü biçimi kullanıyor; rotary position embeddings ve KV cache ise PSRAM'de tutuluyor. Normalizasyon katmanları FP32'e ölçeklenmiş FP16 ile çalışıyor.

Her şey üçlü değil. Embedding'ler INT4'e nicemlenmiş durumda ve yaklaşık 14MB flash kaplıyor; final-norm ağırlıkları ayrı bir 64KB bölümlük alanda duruyor ve LM başlığı INT4 embedding ağırlıklarını yeniden kullanıyor. ESP-IDF üzerine kurulu düğüm firmware'i, üçlü lineer katmanlar için elle yazılmış bir assembly multiply-accumulate çekirdeği ve ek hız için lookup tabloları içeriyor. Attention runtime'ı, olası temel model olarak Qwen ailesine işaret eden qwen_attention.cpp adlı bir dosyada yaşıyor.

Modelin hazırlanması

Bir dizi PC tarafı Python betiği, herhangi bir şey flash'lanmadan önce ağır işi üstleniyor. Biri tokenizer kelime dağarcığını 32.000 tokena kadar buduyor; bir diğeri buna uygun olarak embedding matrisini dilimliyor; üçüncüsü, model sonradan nicemlenmek yerine üçlü ağırlıklara uyum sağlasın diye nicemleme duyarlı ince ayar (quantization-aware fine-tuning) çalıştırıyor. Diğer betikler ağırlıkları ve tokenizer'ı flash hizalı binary'lere paketliyor ve toplu betikler birden çok kartı paralel olarak flash'lıyor. Proje MIT lisanslı ve BitNet kavramının yanı sıra ilham kaynakları olarak iki önceki ESP32 LLM çabasına — tek kartlı nicemlenmiş bir dağıtıma ve dağıtık çok düğümlü bir tasarıma — atıf yapıyor.

Neden önemli

ESP32-S3, mikrodenetleyici sınıfı bir çip: GPU yok, sınırlı on-chip bellek var ve günlük donanımlara gömülecek kadar ucuz. Böyle çiplarda herhangi bir LLM çalıştırmak ancak şu yüzden makul: üçlü ağırlıklar, transformer katmanlarındaki multiply-accumulate işinin çoğunu basit toplamalarla değiştiriyor — ki BitNet tam da bu ödünleşimi yapmak için tasarlanmıştı. Küme yaklaşımı ikinci bir hüner ekliyor: 24 transformer katmanını yedi karta yayarak tasarım, tek bir mikrodenetleyicinin bellek tavanını aşarken kartlar arasında yalnızca küçük bir hidden-state vektörü hareket ettiriyor.

Uyarılar gerçek — depoya göre aktarım hızları yayımlanmamış, örnekleme yalnızca greedy ve 0.4B-0.5B aralığındaki bir modelin yetenekleri sınırlı. Yine de proje, tamamen yerel ve çevrimdışı metin çıkarımının sıradan gömülü donatıya doğru kaymakta olduğunun çalışan bir kanıtı; bu da bağlantının, güç bütçesinin veya gizliliğin bulut tabanlı modelleri dışladığı cihazlar için anlam taşıyor.

  • #edge-ai
  • #esp32
  • #bitnet
  • #llm
  • #quantization

İlgili yazılar