48 GB'a sığan en uzun bağlam: beş model
Aynı anda tek model yüklüyken iki Qwen3.6 modeli de 262K'lık bağlamın tamamını W7800'ümün VRAM'inde tutuyor. Gemma 4 31B tutamıyor — 64K'nın üstünde işlemciye taşıyor.
- 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.31.1 (ROCm), flash attention açık, q8_0 KV önbelleği
- Modeller
qwen3.6:27bQ8_0test edilen
qwen3.6:35b-a3bQ8_0test edilen
gemma4:31b-itQ8_0test edilen
translategemma:27b-itQ8_0test edilen
Karar
48 GB'lık bir kartı aynı anda tek büyük modelle kullanın: Qwen modelleri 262K'lık pencerenin tamamını 7–10 GB boşlukla GPU'da tutuyor. Gemma 4 31B'nin tamamen VRAM'de kalması için 64K sınırı gerekiyor.
İşe yarayan
- qwen3.6:27b Q8_0, 262K'da: 38,66 GB, tamamen GPU'da
- qwen3.6:35b-a3b Q8_0, 262K'da: 41,29 GB, tamamen GPU'da
- Global 262K varsayılanı daha küçük pencereli modelleri bozmuyor — Ollama onları sessizce kırpıyor
Yaramayan
- İki Qwen modeli asla birlikte sığmıyor: yalnız ağırlıkları 65,9 GB
- Gemma 4 31B, 262K'da 12,9 GB'ı işlemciye taşıyor ve yavaşlıyor
- Kart VRAM'i (rocm-smi)
- 48,3GB
- 27B KV önbelleği / 1K token
- ~40MB
- 35B-A3B KV önbelleği / 1K token
- ~13,6MB
- Gemma 4 taşmasız sınır
- 65.536token
En yüksek bağlamda VRAM
düşük olan iyiHer model gerçekten yüklenerek ölçüldü, formülle değil. Kart toplamı 48,3 GB.
- VRAM
- İşlemciye taşan
Veri
| VRAM | İşlemciye taşan | |
|---|---|---|
| qwen3.6:27b Q8_0 @ 262K | 38,66 GB | 0,00 GB |
| qwen3.6:35b-a3b Q8_0 @ 262K | 41,29 GB | 0,00 GB |
| translategemma:27b Q8_0 @ 131K | 31,85 GB | 0,00 GB |
| gemma4:31b Q8_0 @ 262K | 30,88 GB | 12,87 GB |
Gemma 4 31B: taşma nerede başlıyor
Toplam model boyutu ve VRAM'e düşen kısım
- Toplam boyut
- VRAM'de
Veri
| Toplam boyut | VRAM'de | |
|---|---|---|
| 262.144 token | 43,75 GB | 30,88 GB |
| 131.072 token | 37,88 GB | 35,42 GB |
| 65.536 token | 35,34 GB | 35,34 GB |
| 32.768 token | 34,77 GB | 34,77 GB |
| 16.384 token | 34,48 GB | 34,48 GB |
Soru
Kart aynı anda tek model tutuyorsa, işlemciye hiçbir şey taşmadan her modelin bağlamını ne kadar uzatabilirim? Global bağlam varsayılanını yükseltmek küçük modelleri bozar mı?
İki model neden asla birlikte sığmıyor
Her modeli iki farklı bağlam boyutunda yükleyip sonuçlardan düz bir çizgi geçirdim. Bu, token başına KV önbelleği büyümesini ve sıfır bağlamdaki ağırlık ayak izini veriyor:
| Model | Ağırlık (bağlam → 0) | 1K token başına KV önbelleği |
|---|---|---|
qwen3.6:27b-q8_0 |
28,27 GB | ~40 MB |
qwen3.6:35b-a3b-q8_0 (MoE) |
37,63 GB | ~13,6 MB |
İki modelin yalnızca ağırlıkları 65,9 GB — daha tek token bağlam olmadan 48,3 GB’lık karttan 17,6 GB fazla.
OLLAMA_MAX_LOADED_MODELS=2 hiçbir şeyi değiştirmiyor: Ollama birini boşaltıp geçiyor.
MoE’nin token başına KV önbelleği yoğun modelinkinin üçte biri. Ağırlıkları daha büyük olduğu hâlde tam penceresinin yoğun modelinkinden pek fazla yer tutmamasının nedeni bu.
Aynı anda tek model: her model kendi en yüksek bağlamında
| Model | Mimari sınırı | En yüksek bağlamda VRAM (ölçülen) | Boşluk |
|---|---|---|---|
qwen3.6:27b-q8_0 |
262.144 | 38,66 GB, taşma yok | ~9,6 GB |
qwen3.6:35b-a3b-q8_0 |
262.144 | 41,29 GB, taşma yok | ~5,5–7 GB |
gemma4:31b-it-q8_0 |
262.144 | 30,88 GB VRAM + 12,9 GB işlemci | taşıyor — yavaş |
translategemma:27b-it-q8_0 |
131.072 (kırpıldı) | 31,85 GB, taşma yok | rahat |
OLLAMA_CONTEXT_LENGTH=262144’ü global ayarlamak güvenli çıktı: modelin kendi sınırı daha küçükse Ollama hata vermek
yerine isteği sessizce kırpıyor. Gemma 4’ün istisna olmasının tek nedeni kendi mimari sınırının da 262K olması.
Gemma 4: sınırı bulmak için adım adım inmek
| num_ctx | Toplam | VRAM’de | İşlemciye taşan |
|---|---|---|---|
| 262.144 | 43,75 GB | 30,88 GB | 12,87 GB |
| 131.072 | 37,88 GB | 35,42 GB | 2,46 GB |
| 65.536 | 35,34 GB | 35,34 GB | 0 |
| 32.768 | 34,77 GB | 34,77 GB | 0 |
| 16.384 | 34,48 GB | 34,48 GB | 0 |
Yani bu kartta Gemma 4 31B Q8_0 için taşmasız pratik tavan 65.536.
Varsayılanı model başına ezmek
Global ayar yalnızca bir varsayılan. Bir modeli daha aşağıda sabitlemenin iki yolu var:
-
İstek başına — API gövdesinde
"options": {"num_ctx": 65536}. 262K varsayılanını ezdiğini kontrol ettim. -
Yeni bir etiket olarak — iki satırlık bir Modelfile:
FROM gemma4:31b-it-q8_0 PARAMETER num_ctx 65536ollama create gemma4:31b-it-q8_0-64k -f Modelfileher seferinde 65.536 ile yükleniyor. Ölçtüğümdesize == size_vram(35,34 GB): işlemciye sıfır taşma.
Ölçmediklerim
medgemma:27b’yi (TranslateGemma ile aynı mimari) ve qwen3-embedding’i en yüksek bağlamlarında yüklemedim. Aynı
davranışı beklerim, ama doğrulamadım.