Makaleler · arXiv 2609.18063
Bellek Duvarının Diğer Yarısı: Eğitilmiş Yönlendirme Tahmini ile SSD Üzerinden 35B MoE Modellerinin Sunulması
The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction
Üç satırda özet
- 🎯 35B sınıfı MoE modelleri int4'te bile ~19,5 GB gerektirerek tüketici RAM'ini aşar; doğrudan SSD'ye aktarım ise katman yönlendirmesi bir önceki katmanın çıktısına bağlı olduğu için disk gecikmesine takılır.
- 🔧 Edge0, yönlendirmeyi bir token önceden tahmin eden katman başına bir ön yönlendirici kullanarak 'yönlendirme olarak tahmin' yaklaşımını benimser ve öğrenci yolunda damıtılmış birleştirilmemiş paralel bir kurtarma LoRA'sı ile MoE uzmanlarını SSD'den akışa alır.
- 📈 24 GB Mac mini M4 Pro üzerinde 2,9 GiB tepe bellekle bir 35B MoE'yi ~20,4 tok/sn hızında sunar ve fp16 öğretmen modele kıyasla ortalama sadece 3,9 kıyaslama puanı geridedir.
Özet
Tüketici donanımlarında uzman karışımı (MoE) çıkarımı ağırlık belleğiyle sınırlıdır: 35B sınıfı bir model 4-bit'te 19,5 GB'tır ve seyreklik token başına düşen hesaplamayı küçültse de tutulması gereken bayt miktarını azaltmaz. SSD'ye doğrudan boşaltma (offloading) tek başına işe yaramaz; çünkü katman N+1'in uzmanları katman N'in çıktısı var olmadan önce seçilmelidir, dolayısıyla okuma işlemleri hesaplamanın arkasına gizlenecek kadar erken başlayamaz. Bu açığı bir ön yönlendirici (prerouter) ile kapatan akış tabanlı bir MoE çıkarım motoru olan Edge0'ı sunuyoruz: katman başına bir başlık, sonraki katmanın yönlendirmesini bir token önceden tahmin eder ve bu tahmin doğrudan yönlendirmenin kendisi olarak kabul edilir; böylece hazırlanan uzman kümesi yönlendirilen kümeye eşit olur ve hiçbir şey düşürülmez. Öğrenci yolu üzerinde eğitilen birleştirilmemiş bir kurtarma LoRA'sı, int4 niceleme ve yönlendirme değişiminden kaynaklanan kalite kaybını telafi eder. Tek bir 24 GB'lık makinede Edge0, 35B MoE'yi 3 GiB'lik tepe aktif bellek içinde 20 tok/sn hızında ve beş genel kıyaslamanın ortalamasında fp16 öğretmen modeline birkaç puan yakınlıkta sunar. Aynı çerçeve üzerinde bir 8B modeli de çalışmaktadır; çerçeve, kontrol noktaları ve adaptörler açık kaynaklıdır.
Orijinal özet (İngilizce)
Mixture-of-experts (MoE) inference on consumer hardware is bounded by weight memory: a 35B-class model is 19.5GB at 4-bit, and sparsity shrinks the compute per token, not the bytes that must be held. Naive offloading to SSD does not help on its own, because layer N+1's experts must be chosen before layer N's output exists, so the reads cannot start early enough to hide behind compute. We present Edge0, a streaming MoE inference engine that closes the gap with a prerouter: a per-layer head predicts the next layer's routing one token ahead, and the prediction is consumed as the routing itself, so the staged expert set equals the routed set and nothing is dropped. An unmerged recovery LoRA, trained on the student path, pays back the quality lost to int4 quantization and routing replacement. On a single 24GB machine, Edge0 serves a 35B MoE at 20tok/s inside 3GiB of peak active memory, within a few points of its fp16 teacher on average across five public benchmarks. An 8B tier runs on the same framework, and the framework, checkpoints, and adapters are open source.
Okuma rehberi
Problem ve motivasyon
Uzman Karışımı (MoE) modelleri, token başına aktif parametreleri düşük tutarken (ör. 35B'lik bir modelde token başına ~3B parametre etkinleştirerek) toplam parametreleri ölçeklendirir. Ancak, tüketici donanımında çıkarım statik ağırlık belleği ile kısıtlı kalmaya devam eder: 35B'lik bir MoE, int4 seviyesine nicelendiğinde bile yaklaşık 19,5 GB bellek gerektirir. 24 GB'lık bir makinede bu durum işletim sistemini ve KV önbelleğini tamamen sıkıştırarak ciddi bellek sayfalamasına (paging) ve düşük kod çözme verimine yol açar (örneğin, bir M4 Pro Mac mini'de bellekte tutulan yerleşik model için 3,9 tok/sn).
Uzman ağırlıklarını SSD'ye boşaltmak bellek ayak izini azaltır; ancak talep üzerine (on-demand) yükleme yaklaşımı katı bir serileştirme darboğazı yaratır: katmanı için uzman seçimi, katmanının çıktısına bağlıdır. SSD okumaları hesaplamanın arkasına gizlenecek kadar erken başlayamaz ve her token başına katman düzeyinde disk gecikmesine takılarak çalışmayı durdurur.
Temel fikirler
- Ağırlık Katmanı Olarak SSD: MoE uzman ağırlıkları SSD üzerinde int4 formatında kalır ve kompakt bir akış havuzuna bellekle eşlenir (
mmap). Tepe bellek kullanımı, toplam model parametre boyutu yerine aktif çalışma kümesi tarafından belirlenir. - Yönlendirme Olarak Tahmin (Prediction as Routing): Katman 'in tamamlanmasını beklemek yerine, katman başına bir ön yönlendirici (prerouter), katman 'in yönlendirmesini tam bir token önceden tahmin eder. Kritik olarak model, kod çözme sırasında tahmini doğrudan yönlendirmenin kendisi olarak ele alır. Bu sayede hazırlanan küme birebir yönlendirilen kümeye eşit olduğundan düşürülen token'lar veya geri dönüş yüklemeleri yapısal olarak ortadan kalkar.
- Birleştirilmemiş Kurtarma LoRA'sı: 4-bit niceleme ve yaklaşık yönlendirme kalite kaybına yol açar. Edge0, öğrenci yönlendirme yolu üzerinde damıtma (distillation) yoluyla düşük dereceli bir adaptör (LoRA) eğitir. LoRA'yı int4 tabanına dahil edip yeniden nicelemek farkın çoğunu sildiği için (logit düzeyinde yalnızca %18'lik bir koruma kalır), Edge0 bu adaptörü önemsiz bir ek yükle paralel ve birleştirilmemiş bir fark olarak çalıştırır.
Yöntem
Ön Yönlendirici Başlık Mimarisi
Katman 'e ait her bir ön yönlendirici başlık, dikkat sonrası katman normalizasyonu (post-attention layer norm) çıktısı üzerinde token'ında çalışır ve token'ındaki katmanı için yönlendirmeyi tahmin eder. Girdi öznitelikleri, gizli durumu iki adet top- one-hot yönlendirme vektörüyle (mevcut ve önceki token) birleştirir:
35B seviyesi için bu değer 'tır. Başlık şu hesaplamayı yapar:
burada , bir sonraki katmanın yönlendirici ağırlıklarıyla sıcak başlatılmış (warm-started) doğrusal bir artık yoldur.
Birleştirilmemiş Adaptör Yürütme
Sunulan MoE katmanı, nicelenmiş taban baytlarını korur ve paralel LoRA farkını çalıştırır:
Üç Aşamalı Eğitim
- Başlık Damıtma (Head Distillation): Ön yönlendirici başlıklar, ağın geri kalanı dondurulmuş halde tutulurken öğretmenin bir sonraki katmanındaki gerçek yönlendirici kararlarını taklit etmek üzere eğitilir.
- Öğrenci-Yolu SFT: Kurtarma LoRA adaptörleri (dikkat, doğrusal-dikkat ve paylaşılan-uzman projeksiyonlarına eklenir, akış uzmanlarına eklenmez), yönlendirme ön yönlendirici üzerinden zorlanarak öğretmen tarafından üretilen metinler kullanılarak eğitilir.
- Politika İçi Damıtma (On-Policy Distillation): Öğrenci, ön yönlendirmeli yürütme altında metin üretir; fp16 taban öğretmen bu üretimleri puanlar ve LoRA parametreleri, kuyruk duyarlı (tail-aware) bir top- olasılık hedefi ile ters Kullback–Leibler ıraksaması aracılığıyla optimize edilir.
Sonuçlar
- Verim ve Bellek (Mac mini M4 Pro, 24 GB):
- edge0-35b (): 19,5 GB int4 kontrol noktasından yalnızca 2,9 GiB tepe aktif bellek kullanarak 20,4 tok/sn kod çözme hızına ulaşır (tamamen bellekte olduğunda 3,9 tok/sn ve 18,2 GiB).
- edge0-8b (): 1,5 GiB tepe bellek içinde 28,0 tok/sn kod çözme hızına ulaşır.
- Ön Getirme Hızlandırması (MacBook M2, 16 GB):
- Tamamen reaktif talep üzerine akış ile karşılaştırıldığında, 1 token'lık ön yönlendirici ön getirmesi, yönlendirme genişlikleri genelinde kod çözme hızını %+80 ile %+84 oranında artırır (: 4,8'den 8,6 tok/sn'ye; : 3,5'ten 6,4 tok/sn'ye; : 1,8'den 3,3 tok/sn'ye).
- Ana iş parçacığında engellenen yükleme süresi dramatik bir şekilde düşer (örneğin, için adım başına 244,0 ms'den 101,9 ms'ye).
- Model Kalitesi (OpenCompass):
- Beş kıyaslama genelinde (AIME 2026, HumanEval, GPQA-Diamond, MMLU-Pro, IFBench), edge0-35b, fp16 Qwen3.6 taban modelinin 83,2 puanına kıyasla ortalama 79,2 puan alır (3,9 puanlık fark).
- edge0-8b, Ling 3.0 tiny fp16 taban modelinin 72,7 puanına kıyasla 69,9 puan elde eder (2,8 puanlık fark).
Kısıtlamalar ve açık sorular
- Eşzamanlı Sunum: Edge0 tekil istekler için FIFO-serileştirilmiş olarak çalışır; toplu işleme (batching), uzman çalışma kümesini ve önbellek dinamiklerini tek akış profillerinde ele alınmayan şekillerde değiştirir.
- CPU Grafik Oluşturma Ek Yükü: Kod çözme hızı, SSD optimizasyonlarının hafifletemeyeceği CPU tarafındaki çerçeve ek yüküyle (40 katmanda MLX grafik oluşturmada adım başına ~44 ms) sınırlıdır.
- Muhakemede Kalite Düşüşü: Performans kaybı karmaşık muhakeme kıyaslamalarında yoğunlaşmaktadır (örneğin, 35B için AIME'de 6,1 puanlık ve 8B için 10,0 puanlık bir düşüş).
- Donanım Bağımlılığı: Ön yönlendiricinin göreceli verim kazanımları disk gecikmesine bağlıdır ve ağırlık önbellekleri sıcak olduğunda veya ultra hızlı depolama katmanlarında çalıştırıldığında bu kazanımlar azalır.
Temel terimler
- Edge0
- Yönlendirme tahmini yoluyla okumaları hesaplama ile örtüştürerek modelleri SSD'den sunan ve kalite kaybını birleştirilmemiş bir kurtarma LoRA'sı ile telafi eden akış tabanlı bir MoE çıkarım motoru.
- prerouter (ön yönlendirici)
- Katman N'in gizli durumunu ve son yönlendirme geçmişini kullanarak katman N+1'in yönlendirme kararlarını bir token önceden tahmin eden hafif, katman başına bir sinirsel başlık.
- prediction-as-routing (yönlendirme olarak tahmin)
- Ön yönlendiricinin tahmin ettiği uzman kümesinin kod çözme sırasında doğrudan fiili katman yönlendirmesi olarak çalıştırıldığı, böylece çalışma zamanında token düşürme veya ıskalama cezalarını ortadan kaldıran tasarım ilkesi.
- recovery LoRA (kurtarma LoRA'sı)
- Öğrencinin önceden yönlendirilmiş yolu üzerinde damıtma yoluyla eğitilen ve int4 niceleme ile yönlendirme yaklaşımı hatalarını telafi etmek için birleştirilmemiş paralel bir dal olarak çalıştırılan düşük dereceli bir adaptör.
- staged decode (aşamalı kod çözme)
- Her adımda yeniden bellek ayırmayı önlemek amacıyla uzman indekslerinin GPU üzerindeki bir yuva tablosu aracılığıyla eşlendiği, sabit yuvalı çift tamponlama kullanan bir uzman çalıştırma modu.
- incremental sticky-slot stack (incr_stack) (artan yapışkan yuva yığını)
- Tüm uzman tensörlerini her adımda yeniden bir araya getirmek yerine yalnızca değişen uzman yuvalarını güncelleyerek kalıcı yığılmış uzman tensörlerini yerinde değiştiren bir mekanizma.
- unmerged delta (birleştirilmemiş fark)
- Bir LoRA adaptörünü nicelenmiş taban ağırlıklarına kaynaştırmak yerine bunlarla paralel olarak çalıştırmak; böylece yeniden niceleme sırasında ince taneli adaptasyon bilgisinin kaybolmasını önleyen yöntem.
- memory wall (bellek duvarı)
- İşlemci verimi ile DRAM bant genişliği/kapasitesi arasındaki uçurum; yerel LLM sunumunda bu durum dinamik KV önbellek durumu ile statik model ağırlık depolaması arasında ikiye bölünür.
Sorular
Edge0 neden tahminleri ipucu olarak ele almak yerine yönlendirmenin kendisi olarak kullanıyor?
Tahminleri ipucu olarak ele almak, tahminler ıskaladığında çalışma zamanında geri dönüş mekanizmaları gerektirir veya token'ların düşürülmesine neden olur. Tahmini doğrudan yönlendirme olarak kabul etmek, hazırlanan uzman kümesinin her zaman yönlendirilen kümeyle eşleşmesini sağlar ve yaklaşım maliyetini çevrimdışı eğitime kaydırarak kalitenin damıtma (distillation) yoluyla geri kazanılmasına olanak tanır.
Kurtarma LoRA'sı neden 4-bit ağırlıklarla kaynaştırılmak yerine birleştirilmemiş olarak sunuluyor?
LoRA ağırlık farklarının RMS değeri yaklaşık 10^-3 civarındadır ve bu değer 4-bit nicelemenin adım aralığından daha küçüktür. Birleştirme ve yeniden niceleme işlemleri adaptörün etkisinin çoğunu silerek logit düzeyinde yalnızca %18'lik bir koruma bırakır; oysa paralel birleştirilmemiş bir fark %100 aslına uygunluk sağlar.
Edge0 neden aynı token içinde değil de bir token önceden tahmin yapıyor?
Aynı token içinde tahmin yapmak, adım başına 30 ila 100 ms süren katman bazlı GPU işlem hattı boşaltmaları (pipeline flushes) gerektirir; bu süre gizlemeye çalıştığı yükleme süresinden daha uzundur. Tam bir token önde olmak, hazırlanan tüm katmanların tek bir toplu işlemle tahmin edilmesine imkan tanıyarak SSD G/Ç süresini gizlemek için tam bir kod çözme adımı kadar hesaplama süresi kazandırır.
Edge0, 24 GB'lık bir makinede tamamen bellekte çalışan bir temel modele göre nasıl daha hızlı kod çözüyor?
Tamamen bellekte tutulan 19,5 GB'lık bir model 18,2 GiB RAM tüketerek işletim sistemi ve KV önbelleği için neredeyse hiç yer bırakmaz; bu durum ciddi işletim sistemi bellek sayfalamasına (paging) neden olur ve kod çözme hızını 3,9 tok/sn'ye düşürür. Edge0 ise uzmanları SSD'den ~2,9 GiB tepe aktif bellek içinde akışa alarak işletim sistemi bellek baskısını tamamen ortadan kaldırır ve 20,4 tok/sn hızında çalışır.
Bu sayfadaki açıklama yapay zekâ tarafından makaleden yazılmıştır ve hata içerebilir. Ayrıntılar için makaleyi okuyun.