Orkun Soylu

2 dk okuma

Qwen3.6 35B-A3B MoE vs 27B @26k token prompt

48 GB'lık W7800'ümde uzman karışımı (MoE) model, yoğun 27B'den 3,4 kat hızlı üretiyor. Bağlamın dörtte birini doldurmak üretim hızını neredeyse hiç etkilemiyor — beklemenin neredeyse tamamı prefill.

Test tarihi
Kurulum

Radeon Pro W7800 48 GB — fiziksel iş istasyonuFiziksel makine, Linux, ROCm (Ollama) · AMD Ryzen 5 7600 (6 çekirdek / 12 iş parçacığı, AVX-512) · 64 GB DDR5-6400

Radeon RX 7900 XTX 24 GB — fiziksel makineFiziksel makine, Ollama (ROCm)

Çalışma ortamı
Ollama 0.31.1 (ROCm), flash attention açık, q8_0 KV önbelleği
Modeller

qwen3.6:35b-a3bQ8_0test edilen

qwen3.6:27bQ8_0test edilen

qwen3.6:27b (7900 XTX)Q4_K_Mkarşılaştırma

Karar

Hızda MoE açık ara önde (66'ya karşı 20 tok/s). Yalnızca ayarladığınız bağlam sadece VRAM'e mal oluyor; gerçekten doldurduğunuz bağlam ise üretim hızına değil, çoğunlukla prefill süresine — en azından ~26K token'a kadar.

İşe yarayan

  • 35B-A3B MoE: tek W7800'de kısa prompt'ta 66 tok/s üretim, 1.711 tok/s prefill
  • 26K token'lık prompt'ta üretim yalnız %14–16 düşüyor
  • Ayarlanan bağlamı 32K'dan 64K'ya çıkarmak ~1,3 GB VRAM'e mal oluyor, hıza değil

Yaramayan

  • Yoğun 27B Q8_0, 25K'lık prompt'ta ilk token için 43,5 sn bekletiyor
  • 7900 XTX ölçümü farklı bir kuantizasyonla (Q4_K_M) yapıldı; ekran kartının etkisini ayıramıyor
MoE üretim, kısa prompt
66,3tok/s
Yoğun model üretim, kısa prompt
19,6tok/s
26K prefill, MoE / yoğun
15,5 / 43,5sn
~26K bağlamda yavaşlama
−16 / −14%

Üretim hızı

yüksek olan iyi

Ollama /api/generate eval hızı, kısa (28 token) ve ~26K token'lık prompt

  • Kısa prompt
  • ~26K token'lık prompt
35B-A3B MoE Q8_0 · W7800
66,3 tok/sKısa prompt · 66,3 tok/s
55,9 tok/s~26K token'lık prompt · 55,9 tok/s
27B yoğun Q8_0 · W7800
19,6 tok/sKısa prompt · 19,6 tok/s
16,8 tok/s~26K token'lık prompt · 16,8 tok/s
27B yoğun Q4_K_M · 7900 XTX
33,6 tok/sKısa prompt · 33,6 tok/s
31,1 tok/s~26K token'lık prompt · 31,1 tok/s
Veri
Kısa prompt~26K token'lık prompt
35B-A3B MoE Q8_0 · W780066,3 tok/s55,9 tok/s
27B yoğun Q8_0 · W780019,6 tok/s16,8 tok/s
27B yoğun Q4_K_M · 7900 XTX33,6 tok/s31,1 tok/s

Prefill (prompt okuma) hızı

yüksek olan iyi

~25–26K token'lık prompt

35B-A3B MoE Q8_0 · W7800
1.711,3 tok/sPrefill · 1.711,3 tok/s
27B yoğun Q8_0 · W7800
582,6 tok/sPrefill · 582,6 tok/s
27B yoğun Q4_K_M · 7900 XTX
768,0 tok/sPrefill · 768,0 tok/s
Veri
Prefill
35B-A3B MoE Q8_0 · W78001.711,3 tok/s
27B yoğun Q8_0 · W7800582,6 tok/s
27B yoğun Q4_K_M · 7900 XTX768,0 tok/s

Nasıl ölçtüm

  • Kısa prompt: 28 token’lık bir soru (“Türkiye’nin başkenti neresidir?”).
  • Uzun prompt: ~99.000 karakterlik tekrar eden dolgu metni ve kısa bir talimat. Bu 25.344 (yoğun) / 26.444 (MoE) token ediyor — test için ayarladığım 64K bağlamın kabaca %40’ı.
  • Rakamlar doğrudan Ollama’nın /api/generate yanıtındaki prompt_eval_count/duration (prefill) ve eval_count/duration (üretim) alanlarından.
  • Sunucu ayarları: OLLAMA_CONTEXT_LENGTH=65536, OLLAMA_FLASH_ATTENTION=1, OLLAMA_KV_CACHE_TYPE=q8_0.

Sonuçlar — W7800 48 GB

qwen3.6:35b-a3b Q8_0 (MoE, toplam 36B / ~3B aktif)

Kısa prompt (28 tok) Uzun prompt (26.444 tok)
Prefill 299,7 tok/s 1.711,3 tok/s
Prefill süresi 0,09 sn 15,45 sn
Üretim 66,3 tok/s 55,9 tok/s
Toplam süre anında 22,4 sn

qwen3.6:27b Q8_0 (yoğun, 27,8B — her token’da bütün parametreler çalışıyor)

Kısa prompt (28 tok) Uzun prompt (25.344 tok)
Prefill 145,7 tok/s 582,6 tok/s
Prefill süresi 0,19 sn 43,50 sn
Üretim 19,6 tok/s 16,8 tok/s
Toplam süre anında 66,0 sn

Sonuçlar — RX 7900 XTX 24 GB

Bu karta yalnız qwen3.6:27b-q4_K_M sığıyor (Q8_0 ~30 GB); onu da varsayılan 32K bağlamla çalıştırdım.

Kısa prompt (28 tok) Uzun prompt (25.344 tok)
Prefill 188,5 tok/s 768,0 tok/s
Prefill süresi 0,15 sn 33,00 sn
Üretim 33,6 tok/s 31,1 tok/s
VRAM 18,7 GB 18,7 GB

7900 XTX, W7800’deki yoğun Q8_0’ın ~1,7 katı çıkıyor — ama kuantizasyon farklı, yani farkın çoğu ekran kartından değil Q4 ile Q8 arasındaki farktan geliyor. Temiz, tek değişkenli kart karşılaştırmasını altı hafta sonra yaptım: W7800 ve RX 7900 XTX.

7900 XTX’te 33 tok/s bir arıza mı?

Bana düşük göründü. Kartın bant genişliği ~960 GB/s, model 18,7 GB; bu da tavanı ~51 tok/s’ye koyuyor. Yani 33,6 yalnızca ~%65 verim. İki şüpheliye baktım:

  1. Flash attention / q8_0 KV eksik miydi? İkisini de ekleyip servisi yeniden başlattım: 32,6–32,7 tok/s, fark yok. Şaşırtıcı değil — kısa prompt’ta KV önbelleği zaten minik.
  2. Saat hızı mı kısılıyor? Çıkarım sırasında rocm-smi’yi canlı izledim: ~2.600 MHz, %96 meşgul, ~303 W. Kart tam boost’ta.

Yani 33 tok/s bu karttaki Q4_K_M’in gerçek tavanı. Muhtemel nedenini sonradan doğruladım: K-quant ağırlıkları açmanın bant genişliği hesabının görmediği bir hesap maliyeti var ve RDNA3’ün tüketici çekirdekleri bunu ağır ödüyor.

Öğrendiklerim

  1. Ayarlanan bağlam (neredeyse) bedava. 32K’dan 64K’ya çıkmak daha fazla KV önbelleği ayırıyor (27B’de ~1,3 GB), ama kısa prompt’ta hız hiç kıpırdamıyor.
  2. Doldurulan bağlam çoğunlukla prefill’e mal oluyor. ~26K token’da üretim yalnız %16 (MoE) / %14 (yoğun) düşüyor. Asıl hissettiğiniz, ilk token’ı beklemek: MoE’de 15,5 sn, yoğun modelde 43,5 sn.
  3. Hız istiyorsanız MoE. Token başına yalnız ~3B parametre hesaplandığı için 35B-A3B ~3,4 kat hızlı üretiyor ve 2–3 kat hızlı prefill yapıyor. VRAM’den tasarruf ettirmiyor — bütün uzmanlar bellekte duruyor — ama 48 GB’lık kartta kısıt o değil.

Bunların hepsi ~26K token için geçerli. 168K’da tablo keskin biçimde değişiyor — bkz. Yoğun bir 27B’de 168K token’lık bağlam.