Quantization ve VRAM: BF16, FP8, INT8 ve INT4
Quantization, bir modelin ağırlıklarını daha az bitle saklar. Ağırlıklar genelde GPU belleğinin en büyük kısmıdır, bu yüzden ilk başvurulan araçtır — ama yalnızca ağırlıkları küçültür ve her adım biraz doğruluktan feragat eder.
Parametre başına byte
Ağırlıklar parametre × parametre başına byte yer tutar. Referans BF16 ve FP16'dır — çoğu model bunlardan biriyle yayımlanır — ve diğer her hassasiyet bunun bir katıdır.
| Hassasiyet | Byte / parametre | Llama 3.1 8B Instruct | Qwen2.5 32B Instruct | Llama 3.3 70B Instruct | Llama 3.1 405B Instruct |
|---|---|---|---|---|---|
| FP32 | 4 | 29,91 GiB | 122,0 GiB | 262,8 GiB | 1511,9 GiB |
| BF16 / FP16 | 2 | 14,96 GiB | 61,02 GiB | 131,4 GiB | 756,0 GiB |
| FP8 | 1 | 8,46 GiB | 31,96 GiB | 67,66 GiB | 381,9 GiB |
| INT8 | 1 | 8,46 GiB | 31,96 GiB | 67,66 GiB | 381,9 GiB |
| INT4 | 0,53 | 5,41 GiB | 18,34 GiB | 37,78 GiB | 206,5 GiB |
Yalnızca ağırlıklar; KV cache ve ek yük hariç. FP8, INT8 ve INT4'te embedding ve çıkış katmanı 16 bitte kalır.
Karşılaşacağın formatlar
- BF16 ve FP16 — 16-bit kayan nokta. BF16, FP32'nin aralığını daha düşük hassasiyetle korur; eğitimin ve yayımlanan çoğu checkpoint'in onu kullanmasının nedeni budur.
- FP8 — 8-bit kayan nokta, ağırlık başına bir byte; yeni NVIDIA GPU'larında (Ada Lovelace, Hopper ve sonrası) donanım desteği vardır. Bazı modeller FP8 checkpoint'leriyle gelir.
- INT8 — ölçek katsayılarıyla 8-bit tam sayılar, ağırlık başına bir byte.
- AWQ ve GPTQ — 4-bit, yalnızca ağırlık yöntemleri: ağırlıklar 4 bitte saklanır, 16 bitte hesaplanır. safetensors olarak gelirler ve vLLM gibi GPU servis motorlarını hedeflerler.
- GGUF — llama.cpp'nin dosya formatı; quantization seviyeleri bit sayısıyla adlandırılır (Q4, Q5, Q8…) ve CPU, Apple Silicon ve tüketici GPU'larında kullanılır.
- NVFP4 ve MXFP4 — ortak ölçekli 4-bit kayan nokta formatları. gpt-oss uzman ağırlıklarını MXFP4 ile yayımlar; gpt-oss 120B modelinin tek bir 80 GB GPU'ya sığması bu sayededir: 8k context ve tek kullanıcıyla 64,48 GiB, H100 SXM 80GB üzerindeki 72,82 GiB kullanılabilir belleğe karşı.
- NF4 — QLoRA'nın 4-bit NormalFloat'ı; dondurulmuş, quantize edilmiş bir temel model üzerinde adaptör eğitmek için.
4-bit neden tam yarım byte değil
Gerçek 4-bit formatlar ölçek katsayılarını da saklar — AWQ ve GPTQ'da her 128 ağırlık için 16-bit bir ölçek, MXFP4'te her 32'lik blok için 8-bit bir ölçek — bu da ağırlık başına yaklaşık 4,25 bit eder; embedding'i ve çıkış katmanını da 16 bitte tutarlar. LLMScale ikisini de sayar, bu yüzden 4-bit sonucu BF16'nın yarısından belirgin biçimde büyük çıkar: Qwen2.5-7B, Qwen'in kendi AWQ checkpoint'inin %2 yakınına düşer; FP8'deki Qwen3-8B ise RedHat'in FP8 checkpoint'iyle GiB'ın yüzde biri hassasiyetinde örtüşür. Hazır quantize edilmiş bir checkpoint kendi dosyalarıyla boyutlandırılır. QLoRA'nın çift quantization'lı NF4'ü parametre başına 4,127 bit, yani 0,516 byte ölçülür ve ince ayar hesaplayıcısının kullandığı sayı budur.
KV cache'i küçültmez
KV cache'in kendi hassasiyeti vardır; bunu ağırlıkların formatı değil, servis motoru belirler. Tek kullanıcı ve 128k context'le Llama 3.3 70B Instruct: ağırlıkları BF16'da 131,4 GiB, INT4'te 37,78 GiB tutar, KV cache ise FP16'da 40,00 GiB olarak kalır — INT4 ağırlıklardan fazla. Önbelleği FP8'de saklamak onu yarıya indiren ayrı bir tercihtir; bkz. KV cache boyutu.
Mixture-of-Experts modeller
Her uzman quantize edilir ve her uzmanın yine bellekte olması gerekir. Mixtral 8x7B Instruct 46,70B parametre tutar: BF16'da 86,99 GiB, INT4'te 23,46 GiB ağırlık. 12,90B aktif parametresi her token'ın ne kadar iş yaptığını belirler, modelin ne kadar bellek tuttuğunu değil.
Hassasiyet seçmek
- Sığandan başla. Bir model kartı aştığında hesaplayıcı, sığan ilk hafif hassasiyeti gösterir.
- Bedelini ölç. Her adım bellek için doğruluktan feragat eder ve ne kadar olduğu modele ve yönteme bağlıdır; servis etmeden önce kendi görevinde dene.
- Önceden quantize edilmiş checkpoint kendini anlatsın. LLMScale hassasiyetini
quantization_config'ten, depo adından ya da safetensors başlığından okur; vLLM de AWQ, GPTQ ve FP8 checkpoint'lerini--quantizationbayrağı olmadan yükler.