30 puan yazan GN⁺ 2025-08-13 | Henüz yorum yok. | WhatsApp'ta paylaş
  • 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?

  • Orijinal yazar: PR #15157 baz alınarak örnek verilmiş
    ~/build/llama.cpp/build-cuda/bin/llama-server \  
        -m $LLAMA_MODEL_DIR/gpt-oss-120b-mxfp4-00001-of-00003.gguf \  
        --n-cpu-moe 36 \  
        --n-gpu-layers 999 \  
        -c 0 -fa \  
        --jinja --reasoning-format none \  
        --host 0.0.0.0 --port 8502 --api-key "dummy"  
    

Henüz yorum yok.

Henüz yorum yok.