Kwantisatie maakt een AI-model kleiner door zijn getallen minder precies op te slaan, zoals je prijzen afrondt op hele euro's. Het model heeft dan minder geheugen nodig en werkt vaak sneller, zodat het op een goedkopere computer of zelfs een laptop past. Dat helpt een bedrijf dat een model op eigen hardware wil draaien, bijvoorbeeld om klantgegevens in huis te houden. De prijs is wat kwaliteitsverlies.
Hoe werkt het?
Een model bestaat uit miljarden getallen, de gewichten. Die worden opgeslagen als 32-bit floating-pointgetallen of, steeds vaker, als 16-bitgetallen (fp16 of bf16), en kwantisatie slaat ze op in minder bits, tot gehele getallen als int8 of int4 aan toe (Hugging Face). Een geheel getal van 8 bits kan 256 verschillende waarden aannemen en een van 4 bits 16, tegen 65.536 bij 16 bits. Elk gewicht wordt afgerond op de dichtstbijzijnde beschikbare waarde. De term komt uit de signaalverwerking, waar kwantisatie betekent dat je een grote verzameling waarden afbeeldt op een kleinere, met afronden als typisch voorbeeld.
Om de gehele getallen terug te rekenen, bewaart de methode per tensor of per kanaal een schaal en een nulpunt. In het affiene schema uit de conceptgids van Hugging Face is een waarde x = S * (x_q - Z), met x_q het opgeslagen gehele getal, S de schaal en Z het nulpunt. De besparing volgt uit de bits: de gewichten van een model met 70 miljard parameters nemen bij 16 bits ongeveer 140 GB in beslag en bij 4 bits ongeveer 35 GB.
Wanneer wordt een model gekwantiseerd?
- Na de training (post-training quantization, PTQ). Het afgetrainde model wordt omgezet zonder verdere training, soms met een kleine kalibratieset om de bereiken van de waarden te meten. GPTQ (Frantar e.a., 2022) kalibreert op 128 tekstfragmenten en bracht OPT-175B en BLOOM-176B in ongeveer vier GPU-uur terug naar 3 of 4 bits, met een verwaarloosbaar verlies aan nauwkeurigheid. AWQ (Lin e.a., 2023) ontdekte dat het beschermen van 1% van de gewichten, gekozen op basis van de activaties die ze tegenkomen, de afrondingsfout sterk verkleint.
- Tijdens de training (quantization-aware training, QAT). De training bootst het afronden na, zodat het model ermee leert omgaan. Google trainde Gemma 3 zo ongeveer 5.000 stappen, wat het kwaliteitsverlies bij 4 bits, gemeten als perplexity, met 54% verkleinde (Google, april 2025).
Grote modellen vragen extra zorg. LLM.int8() (Dettmers e.a., 2022) ontdekte dat vanaf ongeveer 6,7 miljard parameters een paar kenmerkdimensies extreme waarden aannemen, waardoor gewone 8-bitmethoden falen. Het houdt die dimensies op 16 bits en de overige 99,9% op 8 bits, en halveert zo het geheugen voor inferentie zonder verlies, tot 175 miljard parameters.
Wordt een model er sneller van?
Vaak wel, omdat tekst genereren vooral begrensd wordt door hoe snel de gewichten uit het geheugen te lezen zijn. De kernels van GPTQ pakken de 3-bitgewichten tijdens het rekenen uit, en OPT-175B genereerde daarmee een token ongeveer 3,25 keer zo snel op één A100 als het 16-bitmodel op vijf, en 4,5 keer zo snel op twee NVIDIA A6000-kaarten als op acht. LLM.int8() bespaart geheugen, maar draait ongeveer even snel als 16 bits, en van begin tot eind iets trager, omdat het omzetten van de waarden tijd kost.
Waar kom je het tegen?
llama.cpp draait modellen lokaal met kwantisatie van 1,5 tot 8 bits. De modellen komen als GGUF-bestanden, een binair formaat om snel te laden, van de maker van llama.cpp (Hugging Face Hub). Bij fine-tuning traint QLoRA LoRA-adapters bovenop een 4-bitmodel, genoeg om een model van 65 miljard parameters te fine-tunen op één GPU van 48 GB (Dettmers e.a., 2023). Ook de KV-cache, het geheugen dat een model tijdens het schrijven gebruikt, kun je kwantiseren.
Voorbeeld
Stel: een accountantskantoor wil een chatassistent op één kantoor-pc met een NVIDIA RTX 3090 (24 GB), zodat klantdossiers het pand nooit verlaten. Gemma 3 27B heeft bij 16 bits 54 GB nodig voor zijn gewichten en past niet. De int4-versie van Google heeft 14,1 GB nodig, wat ongeveer 10 GB overlaat voor de KV-cache; Google wijst erop dat die cache bovenop de gewichten komt.
Bronnen
- Hugging Face: Quantization overview (Transformers documentation)Web
- Google: Gemma 3 QAT Models, Bringing state-of-the-Art AI to consumer GPUsRSS
- Frantar et al.: GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers (2022)arXiv
- Dettmers et al.: LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale (2022)arXiv
- Lin et al.: AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration (2023)arXiv
- ggml-org: llama.cpp, LLM inference in C/C++GitHub
