30 puan yazan GN⁺ 2025-08-13 | 6 yorum | 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
Reklam

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
Reklam

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"  
    

6 yorum

 
kaydash 2025-08-14

Ben gerçekten denedim ama çok yavaş. GPU clock neredeyse hiç kullanılmıyor. 8 GB GPU ayrılmış belleği ve 64 GB fiziksel bellek tamamen kullanılıyor, 16 vCore'un ise sadece yarısı kullanılıyor. Yani mesele sadece çalışıyor olması; tüm kaynakları kullanan bir yapı değildi. Bir sorgu 6 ila 8 dakika sürdü.

 
cronex 2025-08-13

Benzer şekilde ben de bir denemeliyim.

 
crawler 2025-08-13

32 GB'nin yeterli olacağını sanmıştım ama...

 
cnaa97 2025-08-13

Öncelikle LM Studio M4 Max 64GB'de çalışmıyor :(

 
jinucho 2025-08-13

65 GB olduğu için... üzücü T_T

 
GN⁺ 2025-08-13
Hacker News görüşleri
  • Modeli doğrudan kendi donanımında çalıştırınca guardrail'leri devre dışı bırakmanın mümkün olup olmadığı merak ediliyor
    • Guardrail'leri aşmak için, reddetme tepkisine yol açan nöron yollarını izleyip silmeye dayanan bir tür abliterated finetune bulmak gerekiyor
    • Yakın zamanda okunan bir yazıya göre GPT-OSS yalnızca sentetik/üretilmiş verilerle eğitildiği için baştan itibaren fazla “yasaklı bilgi” içermiyor
      İlgili yazı
    • jailbreak prompt'larıyla aşmak mümkün; biraz uğraştırıcı ama iyi çalışıyor
    • Guardrail'leri kısmen kaldırılmış sürümlerde performans ciddi biçimde düştüğü için, kişisel olarak buna değmediği düşünülüyor
    • Temelde modelin içine gömülü, ancak bunu kırıp değiştiren topluluklar da var
  • 5950x + 128GB RAM + 12GB 3060 GPU ortamında token üretim hızı hızlı, ancak context biraz büyüyünce işleme hızı çok yavaşlıyor
    Bu yüzden çoğunlukla qwen, mistral, gemma gibi başka modeller kullanılıyor
    • “Hızlı” ve “yavaş” gibi öznel ifadeler yerine somut token değerleri merak ediliyor
    • Basit sohbet/metin işleme dışında bu modelle tam olarak ne yapılmak istendiği soruluyor
  • 32GB RAM + 16GB VRAM ortamında 20B modeli tamamen VRAM'e sığdırmak mümkün, ancak context penceresi 8k token'ın üstüne çıkınca VRAM yetmiyor
    Başkaları daha az VRAM ile 120B modeli çalıştırabiliyor; bunun nedeni muhtemelen ROCm desteği olmaması ve Vulkan kullanımı olabilir
    Yine de donanımı sınırına kadar zorlamak eğlenceli
    • Context boyutu büyüdükçe daha fazla katmanı sistem RAM'ine offload etmek gerekiyor
      llama.cpp GPU'da hesaplanacak katman sayısını elle ayarlamaya izin veriyor, ancak ollama bunu otomatik yapıyor
      Oturum uzunluğuna göre RAM/VRAM oranını dinamik olarak ayarlayabilmek güzel olurdu
  • 64GB RAM + 8GB VRAM için “ancak” denmesi komik bulunuyor; bazıları için bu birkaç bin dolarlık bir kurulum
    • Masaüstü sistemde RAM yaklaşık 300 CAD, GPU yaklaşık 400 CAD olduğu için uygun fiyatlı kurulabiliyor
    • Orta-alt seviye bir oyuncu PC'si düzeyinde; birkaç yüz dolarlık yükseltmeyle evde hemen çalıştırmak mümkün
    • Yaklaşık $1599~$1999 aralığında, pahalı sayılmayacak ön sipariş ürünleri de var
    • 1000 ABD dolarının altında yeni parçalarla toplamak mümkün; ikinci elde daha da ucuz olabilir ve GPU performansı da daha iyi çıkabilir
    • DDR5 64GB yaklaşık $150, 12GB 3060 ise yaklaşık $300; eBay'de daha da ucuza bulunabiliyor
  • MacBook Air M4 veya RTX 3060 üzerinde 20B modeli çalıştırmayı deneyen olup olmadığı soruluyor
  • RAM yetersiz olduğu için büyük modeller kullanılamıyor, ama 20B model MacBook'ta hızlı ve kullanım amacı için yeterli
    Ancak llama.cpp içinde function calling hâlâ bozuk durumda
    • İlgili hata bu PR ile düzeltilmiş
    • Bunun RAM sınırı değil hata olmasına sevinenler var; 16GB RAM'li MacBook Air'de de çeşitli modeller iyi çalışıyor
      Odada $149'lık mini PC ile bir AI chatbot barındırma planı var ve Qwen3 4B modeli iyi görünüyor
      İlgili plan
  • OpenWebUI veya başka bir GUI'de bu donanımla ayar optimizasyonu yapmanın mümkün olup olmadığı merak ediliyor; 20B modelin daha iyi olabileceği düşünülüyor
  • LLM konusunda yeni olan biri, bu optimizasyonun tüm MoE modellerine uygulanıp uygulanamayacağını soruyor
    • Bu yöntem katman adlarına regex uygulamaya dayanıyor; benzer adlandırma varsa başka modellerde de mümkün
      Örneğin Qwen 3'te de çalıştı ve regex'i elle belirleyerek belirli katmanları belirli bir cihaza taşıyabiliyorsunuz
  • mlx için optimize edilmiş sürümün 64GB Mac'te çalışıp çalışmayacağı soruluyor
    • LM Studio tahminine göre 3-bit quantization (~50GB) ile sorunsuz çalışmalı