Orkun Soylu

2 dk okuma

ISTA IQ3_S vs Unsloth UD-IQ3_S @16 GB

RTX 4070 Ti SUPER'ımda vLLM altında ISTA'nın IQ3_S'i daha küçük bir dosyadan %1,2 daha düşük perplexity alıyor ve %8 daha hızlı prefill yapıyor; Unsloth'unki %5 daha hızlı üretiyor ve KV'ye biraz daha yer bırakıyor.

Test tarihi
Kurulum

GeForce RTX 4070 Ti SUPER 16 GB — Proxmox sanal makinesi (GPU passthrough)PCIe passthrough ile Proxmox VE konuğu, Ubuntu 24.04, NVIDIA 595 açık sürücü · Intel Core i5-13400 sunucu; konukta 8 vCPU · Konukta 32 GB; sunucuda 64 GB DDR5

Çalışma ortamı
vLLM 0.29.0 + vllm-gguf-plugin (main d4c1f0d), torch 2.13 + CUDA 13.0
Modeller

Qwen3.8-27B GSQ-RCOISTA IQ3_S (3.50 bpw)test edilen

Qwen3.8-27B UDUnsloth UD-IQ3_S (3.52 bpw)test edilen

Karar

ISTA GSQ-RCO IQ3_S: daha küçük dosyadan daha iyi perplexity ve daha hızlı prefill. Unsloth biraz daha hızlı üretiyor. İkisi de 16 GB'a sığıyor — ama ancak ayarlanmış bellek ayarlarıyla ve toplamda ~20K token'lık KV ile.

İşe yarayan

  • ISTA: wikitext-2 perplexity 6,619'a karşı 6,543; dosya 0,25 GiB daha küçük
  • ISTA: 8K prompt'ta 768'e karşı 833 tok/s prefill
  • İkisi de kontrol sorularını doğru cevaplıyor

Yaramayan

  • vLLM varsayılanlarıyla başlamıyor: KV için yalnız 0,3 GiB kalıyor
  • Hız farkları tek koşu — yön gösteriyor, kesin değil
  • Doğal 262K bağlam çok uzakta: bütün istekler toplam ~20K token KV'yi paylaşıyor
Perplexity, ISTA / Unsloth
6,543 / 6,619
Üretim, tek istek
34,5 / 36,3tok/s
8K prefill
833 / 768tok/s
KV kapasitesi
~20Ktoken

Wikitext-2 perplexity

düşük olan iyi

40 × 2.048 token'lık parça, 81.880 puanlanan token, iki dosya için birebir aynı

  • ISTA GSQ-RCO IQ3_S
  • Unsloth UD-IQ3_S
Perplexity
6,543ISTA GSQ-RCO IQ3_S · 6,543
6,619Unsloth UD-IQ3_S · 6,619
Veri
ISTA GSQ-RCO IQ3_SUnsloth UD-IQ3_S
Perplexity6,5436,619

vLLM altında verim

yüksek olan iyi
  • ISTA GSQ-RCO IQ3_S
  • Unsloth UD-IQ3_S
Üretim, tek istek
34,5 tok/sISTA GSQ-RCO IQ3_S · 34,5 tok/s
36,3 tok/sUnsloth UD-IQ3_S · 36,3 tok/s
Üretim, 4 eşzamanlı (toplam)
54,9 tok/sISTA GSQ-RCO IQ3_S · 54,9 tok/s
54,0 tok/sUnsloth UD-IQ3_S · 54,0 tok/s
Veri
ISTA GSQ-RCO IQ3_SUnsloth UD-IQ3_S
Üretim, tek istek34,5 tok/s36,3 tok/s
Üretim, 4 eşzamanlı (toplam)54,9 tok/s54,0 tok/s

Kurulum

  • vLLM 0.29.0, torch 2.13.0+cu130, NVIDIA sürücüsü 595.91.07. vllm-gguf-plugin’i main’den (d4c1f0d082) derlemem gerekti — PyPI sürümü (0.0.5) Qwen3.5/3.8’i desteklemiyordu.
  • Dosyalar, Hugging Face LFS’e karşı SHA-256 ile kontrol edildi:
    • ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-GGUF → Qwen3.8-27B-GSQ-RCO-IQ3_S.gguf (10,96 GiB, 3,50 bpw)
    • unsloth/Qwen3.8-27B-GGUF → Qwen3.8-27B-UD-IQ3_S.gguf (11,21 GiB, 3,52 bpw, içinde MTP bloğu var)
  • İkisi için de aynı motor ayarları: gpu_memory_utilization=0.97, max_model_len=8192, max_num_seqs=4, max_num_batched_tokens=2048 (perplexity’de 512), fp16 KV, CUDA graph açık, yalnız metin.
  • Perplexity: wikitext-2-raw test, iki dosya için de aynı 40 çakışmasız 2.048 token’lık parça, vLLM’in prompt log-prob’larından.

Sonuçlar

ISTA GSQ-RCO IQ3_S Unsloth UD-IQ3_S
Dosya 10,96 GiB 11,21 GiB
VRAM’deki ağırlık 11,99 GiB 11,86 GiB
KV kapasitesi (servis ayarları) 19.757 token 20.720 token
Wikitext-2 perplexity (bağlam 2048) 6,543 6,619 (+%1,2)
Üretim, tek istek 34,5 tok/s 36,3 tok/s (+%5)
Üretim, 4 eşzamanlı (toplam) 54,9 tok/s 54,0 tok/s
Prefill, 8K token’lık prompt 833 tok/s 768 tok/s
Kontrol soruları (17×23, Fibonacci, bir Türkçe bilgi) hepsi doğru hepsi doğru

27B, 16 GB’a sığar mı?

Evet — şartlı. Kart torch’a 15,57 GiB veriyor (sürücü ~430 MiB’ı kendine ayırıyor), ağırlıklar da ~12 GiB tutuyor.

Kalem vLLM varsayılanı (0,92 / 8192) Ayarlı (0,97 / 2048)
Bütçe 14,33 GiB 15,10 GiB
Ağırlıklar + torch dışı ~12,1 GiB 12,12 GiB
Aktivasyon tepesi + CUDA graph ~2,0 GiB 1,17 GiB
KV önbelleği 0,3 GiB → motor başlamıyor (8K’lık bir istek 0,81 GiB istiyor) 2,0 GiB → 19.757 token

Mimari hibrit: 64 katmanın yalnızca 16’sı klasik attention kullanıyor (token başına ~64 KiB KV); 2 GiB’ın ~20K token tutmasının nedeni bu. Ama bu, bütün eşzamanlı isteklerin toplamı. Yükleme sırasında art arda CUDACachingAllocator ... OOM uyarıları akıyor — bunlar yalnızca ayırıcının yeniden denemeleri, yükleme başarılı.

Karşılaştırmayı nasıl okuyorum

  • ISTA’nın %1,2’lik perplexity üstünlüğü, kendi model kartındaki farkla aynı yönde ve büyüklükte (farklı bir bağlam uzunluğunda 7,16’ya karşı 7,07). Yine de perplexity görev başarısı değil ve karttaki AIME25/GPQA/LiveCodeBench rakamlarını yeniden koşmadım.
  • Unsloth’un dosyası diskte büyük ama VRAM’de küçük: içindeki MTP bloğu spekülatif çözme kapalıyken yüklenmiyor ve ~960 token’lık fazladan KV yeri açıyor. ISTA bunun yerine ayrı bir -mtp dosyası yayımlıyor.
  • Hız farkını tensör karışımları açıklıyor: ISTA gömme katmanına (Q3_K yerine IQ2_S) ve çıkış katmanına (Q5_K yerine Q4_K) daha az bit, gövdedeki IQ4_XS katmanlarına daha çok bit harcıyor.