- llama-cpp içindeki
--cpu-moe seçeneği kullanılarak MOE uzman katmanları CPU’da işleniyor, yalnızca attention katmanları GPU’ya offload edilerek 5~8GB VRAM ile hızlı prefill performansı elde ediliyor
- GPU’da yalnızca KV cache, Attention ağırlıkları ve aktivasyonları, routing table, LayerNorm vb. uzman olmayan parametreler tutulduğu için bellek kullanımı düşük kalıyor
- RTX 3060Ti seviyesinde bir GPU ve 64GB~96GB sistem RAM’i ile bile 120B model rahatça çalıştırılabiliyor; BF16 destekli GPU’larda (RTX 3000+) en iyi performansı veriyor
- 5GB VRAM kullanımında token başına 8.15ms (122.66 token/sn), 8GB VRAM kullanımında ise 7.44ms’ye (134.44 token/sn) kadar iyileşen performans kaydedildi
- 120B mimarisi, tüketici donanımına optimize edilmiş bir tasarım sayesinde GPU kaynağının sınırlı olduğu ortamlarda da yüksek hızda çalışabiliyor
CPU-MOE ve GPU offload yapısı
--cpu-moe seçeneğiyle uzman (MOE) katmanlarının tamamı CPU’da işleniyor
- Örnek:
--n-cpu-moe 36 → 36 MOE bloğunun tamamı CPU’da çalışır
- Gerekirse performansı ayarlamak için MOE’nin bir kısmı GPU’ya taşınabilir
- VRAM’den tasarruf etmek için GPU’da yalnızca şunlar tutuluyor
- KV cache (sequence)
- Attention ağırlıkları ve aktivasyonları
- Routing table
- LayerNorm ve diğer uzman olmayan parametreler
- MOE ağırlıkları GPU’da tutulmadığı için büyük MLP parametrelerinin yükü oluşmuyor
Bellek ve donanım gereksinimleri
- GPU: 5~8GB VRAM yeterli (ör. RTX 3060Ti)
- BF16 desteği varsa GPU en iyi sonucu verir (RTX 3000 serisi ve üzeri)
- Sistem RAM’i: en az 64GB, ideal olarak 96GB
- Linux mmap kullanılarak modelin tamamı belleğe sığmasa bile “hot” uzman katmanları bellekte tutulabiliyor
Performans değerleri
5GB VRAM ortamı
- Prompt işleme: 8.15ms/token (122.66 token/sn)
- Çıkarım: 55.44ms/token (18.04 token/sn)
8GB VRAM ortamı (--n-cpu-moe 36, geri kalanı GPU)
- Prompt işleme: 7.44ms/token (134.44 token/sn)
- Çıkarım: 39.03ms/token (25.62 token/sn)
22GB VRAM ortamı (MOE’nin bir kısmı GPU’da)
- Prompt işleme: 6.13ms/token (163.01 token/sn)
- Çıkarım: 32.45ms/token (30.82 token/sn)
Sonuç
- GPT-OSS-120B’nin tasarımı, tüketici donanımında bile büyük modelleri yüksek hızda çalıştıracak şekilde optimize edilmiş
- VRAM kullanımını azaltırken hızı koruyan CPU-MOE yapısı sayesinde, GPU kaynaklarının sınırlı olduğu ortamlara özellikle uygun
Temel sorular ve yanıtlar
S1. Bu ayarda gerçek VRAM kullanımı ne kadar?
- Orijinal yazar: Tüm MOE CPU’da çalıştırıldığında yaklaşık 5GB VRAM; GPU’ya yalnızca attention katmanları yükleniyor
- Ek açıklama: GPU’da yalnızca KV cache, Attention ağırlıkları ve aktivasyonları, routing table, LayerNorm tutuluyor
S2. Minimum ne kadar RAM gerekiyor?
- Orijinal yazar: Minimum 64GB, ideal olarak 96GB öneriliyor
- Neden: Linux mmap, “hot” uzman katmanlarını bellekte tutarak tüm modeli yüklemeye gerek kalmadan hızlı erişim sağlıyor
S3. MOE katmanlarının bir kısmını GPU’ya taşımak hızı çok artırıyor mu?
- Orijinal yazar: Biraz hızlanabilir ama büyük bir fark yok
- Örnek:
- Tüm MOE CPU’da: prompt 134 token/sn, çıkarım 25 token/sn
- 8 MOE GPU’da: prompt 163 token/sn, çıkarım 30 token/sn
- VRAM kullanımı 22GB’ye çıkıyor
S4. Hangi GPU uygun?
- Orijinal yazar: RTX 3060Ti ve üzeri yeterli, BF16 desteği (RTX 3000+) öneriliyor
- Neden: MOE dışındaki tüm katmanlar BF16 ile çalışıyor
S5. Komut ayarı nasıl yapılır?
Henüz yorum yok.