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.

HassasiyetByte / parametreLlama 3.1 8B InstructQwen2.5 32B InstructLlama 3.3 70B InstructLlama 3.1 405B Instruct
FP32429,91 GiB122,0 GiB262,8 GiB1511,9 GiB
BF16 / FP16214,96 GiB61,02 GiB131,4 GiB756,0 GiB
FP818,46 GiB31,96 GiB67,66 GiB381,9 GiB
INT818,46 GiB31,96 GiB67,66 GiB381,9 GiB
INT40,535,41 GiB18,34 GiB37,78 GiB206,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

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