Dense 27B @168k token prompt
W7800'ümde Qwen3.8-27B Q8_0'a 168.084 token'lık bir prompt verdim: prefill 11,7 dakika sürdü, üretim 20,2'den 9,6 tok/s'ye düştü. Yine de en baştaki işareti kusursuz hatırladı.
- 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
- Çalışma ortamı
- Ollama 0.32.14, flash attention açık, q8_0 KV önbelleği, NUM_PARALLEL=1
- Modeller
qwen3.8-27b-uncensoredQ8_0test edilen
Karar
Uzun bağlam çalışıyor ve doğru kalıyor, ama bu donanımda başında beklenecek bir şey değil, arka plan işi: 26K'da geçerli olan 'üretim pek yavaşlamaz' kuralı tutmuyor — 168K'da hız yarıya iniyor.
İşe yarayan
- Token 0'a konan işaret 168K token sonra doğru hatırlandı — sessiz kırpma yok
- Baştan sona %100 GPU; KV önceden ayrıldığı için VRAM 39,5 GB'ta sabit
- Prefill doğrusal-altı ölçekleniyor: bağlam 6,7 kat, token başına yavaşlama 2,4 kat
Yaramayan
- İlk token'a kadar 702,9 sn (11,7 dk)
- Üretim −%52: 20,2 → 9,64 tok/s
- Prefill boyunca kart 230 W güç sınırında
- Prompt
- 168.084token
- Prefill süresi
- 11,7dk
- 168K'da üretim
- 9,64tok/s
- İşaretin hatırlanması
- Doğru
Doldurulan bağlama göre üretim hızı
yüksek olan iyiW7800'de yoğun 27B Q8_0; 26K ve 31K noktaları önceki koşulardan
Veri
| Üretim | |
|---|---|
| Kısa prompt (~20 tok) | 20,20 tok/s |
| ~25K token (Qwen3.6, Temmuz) | 16,80 tok/s |
| 31K token (Qwen3.8, 18 Ağu) | 16,77 tok/s |
| 168K token | 9,64 tok/s |
Prompt uzunluğuna göre prefill hızı
yüksek olan iyiVeri
| Prefill | |
|---|---|
| ~25K token (Qwen3.6, Temmuz) | 582,6 tok/s |
| 31K token (Qwen3.8, 18 Ağu) | 533,6 tok/s |
| 168K token | 239,1 tok/s |
Kurulum
- Model:
qwen3.8-27b-uncensored:q8_0— abliterated bir Qwen3.8-27B’yi f16 görsel projektörüyle birlikte Hugging Face’ten elle içe aktardım; mimari olarak resmi yoğun 27B ile aynı. - Sunucu:
OLLAMA_CONTEXT_LENGTH=262144,KV_CACHE_TYPE=q8_0,FLASH_ATTENTION=1,NUM_PARALLEL=1(bu test için 2’den düşürdüm), Modelfile’danum_ctxyok. - Prompt: 780.112 karakterlik tekrar eden dolgu metni; en başında bir işaret dizesi (
MARKER-ALPHA-7391), sonunda o işareti soran bir soru.num_predict=40. - Rakamlar nereden: API yanıtından değil, Ollama’nın kendi
print_timinglog satırlarından.
Sonuçlar
| Kısa prompt (~20 tok) | Uzun prompt (168.084 tok) | |
|---|---|---|
| Prefill | — | 239,1 tok/s (token başına 4,18 ms) |
| Prefill süresi | anında | 702,9 sn (11,7 dk) |
| Üretim | 20,2 tok/s | 9,64 tok/s (token başına 103,7 ms) |
| Toplam | anında | 707,0 sn |
| VRAM | 39,5 / 48,3 GB | aynı (KV önceden ayrılıyor) |
| İşlemci | %100 GPU | %100 GPU |
Koşu boyunca kart güç sınırına dayanmıştı: 229/230 W, 82 °C kenar, fan %55, 2.482 MHz.
Bulduklarım
- 168K’da üretim yarıya iniyor. 25–26K’da yavaşlama %14–16’ydı ve “büyük bir kayıp değil” deyip geçmiştim. 168K’da %52. KV önbelleği her token için baştan sona taranıyor ve bu maliyet bağlamla büyüyor. Yani “maliyet prefill’de, üretim pek değişmez” kuralım ancak belli bir aralıkta geçerli — 25K’da doğru, 168K’da yanlış.
- Prefill daha yumuşak yavaşlıyor. 25K’da 582 tok/s → 168K’da 239 tok/s: bağlam 6,7 kat, token başına 2,4 kat yavaş. Bu doğrusal-altı; attention’ın karesel bileşeni henüz baskın değil.
- 168K, on iki dakika beklemek demek. Prefill (702,9 sn) üretimin (4,0 sn) yanında ezici. Bu donanımda gerçekten uzun bağlamı etkileşimli kullanmak gerçekçi değil; toplu ve arka plan işleri ise gayet olur. Uzun bir öneki önbellekten yeniden kullanan her şey çok kazanır.
- Doğruluk kaybı yok. 168K token sonra en baştaki işareti doğru hatırladı — pencereden sessizce bir şey kırpılmamış.
- Tek slot 131.072’yi aşabiliyor.
NUM_PARALLEL=1ile tek bir istek 168.084 token işledi. 2 slottan 1’e geçince VRAM birebir aynı kaldı (39,5 GB); bu, bağlamın slotlara bölündüğü fikriyle uyuşuyor — ama 2 slotlu durumu ölçmedim.
Çekinceler
Dolgu metni tekrarlı (log graphs reused = 126 diyor); çeşitli metinden oluşan gerçek bir 168K’lık belge daha yavaş
olabilir. num_predict=40 cevabı düşünme bloğunun ortasında kesti, ama model işareti o noktada zaten doğru okumuştu.