Expert • Les 16

Quantisatie: modellen comprimeren voor efficiënte inferentie

Quantisatie is de techniek waarbij modelgewichten worden opgeslagen in een lagere numerieke precisie. Een FP32-gewicht gebruikt 32 bits; een INT8-gewicht slechts 8 bits. Dit resulteert in 4x kleinere modellen en significant snellere inferentie, met beperkt kwaliteitsverlies als het goed wordt uitgevoerd.

Post-Training Quantization (PTQ)

PTQ wordt toegepast na training zonder modelgewichten opnieuw te trainen. GPTQ en AWQ zijn populaire PTQ-methoden voor LLMs. GPTQ gebruikt tweede-orde gradienten om per laag de optimale quantisatieparameters te vinden. AWQ (Activation-aware Weight Quantization) identificeert de belangrijkste gewichten op basis van activatiestatistieken en beschermt die met hogere precisie.

Quantization-Aware Training (QAT)

QAT simuleert quantisatie-effecten tijdens training, zodat het model leert robuust te zijn voor lagere precisie. De trainingsgradiënten worden berekend op FP32 maar de forward-pass gebruikt gesimuleerde lage-precisie gewichten (straight-through estimator). QAT geeft betere kwaliteit dan PTQ maar vereist hertraining.

GGUF en llama.cpp

GGUF is het standaard serialisatieformaat voor gequantiseerde LLMs in het llama.cpp-ecosysteem. Het ondersteunt mixed quantisatie: gevoelige lagen (eerste en laatste) blijven in hogere precisie; middelste lagen worden sterker gequantiseerd. Populaire quantisatieniveaus zijn Q4_K_M (goede balans kwaliteit/grootte), Q5_K_M en Q8_0 (hoge kwaliteit, minder compressie).

KV-cache quantisatie

Naast gewichtenquantisatie kan ook de KV-cache worden gequantiseerd. Bij lange contexten is de KV-cache een significant geheugensverbruiker. INT8-KV-cache quantisatie reduceert dit met 50% met minimaal kwaliteitsverlies. FP8-training (Transformer Engine van NVIDIA) past FP8-precisie toe tijdens training voor snelheidswinst.