F· AI engineeringinferens-optimering· ca 90 min· volatil — kontrolleras ofta· verifierad 2026-09-20
Kvantisering i praktiken: GPTQ, AWQ, GGUF
Kunna kvantisera en modell med olika metoder och mäta kvalitet och hastighet.
Förkunskaper
- FKvantiseringkrävs
Intuition
| Metod/format | Vad | När |
|---|---|---|
| bitsandbytes (nf4/int8) | kvantiserar vid laddning, ingen kalibrering | snabbt att prova, GPU, finjustering (QLoRA) |
| GPTQ | 4-bit med kalibreringsdata, lagervis optimering | GPU-inferens, bästa kvalitet/bit, tar 10–60 min att skapa |
| AWQ | skyddar «viktiga» vikter via aktiveringsstatistik | GPU, ofta lite bättre än GPTQ på små modeller |
| GGUF (llama.cpp) | K-kvantar (Q4_K_M, Q5_K_M, Q8_0), blandad precision | CPU/Apple Silicon/lokalt, bästa portabilitet |
Mät alltid tre saker: perplexitet på en hållen text (WikiText eller egen), din egen eval (uppgiftskvalitet — det är den som räknas), och tokens/s vid din batchstorlek. En modell som tappat 0,5 PPL men 8 pe på din eval är inte «nästan lika bra».
Tumregel: Q8 ≈ förlustfritt, Q5_K_M mycket bra, Q4_K_M bra kompromiss, under Q4 bara om nöden kräver.
Kod
# GGUF via llama.cpp
python convert_hf_to_gguf.py models/qwen2.5-7b-instruct --outfile q7b-f16.gguf
./llama-quantize q7b-f16.gguf q7b-Q4_K_M.gguf Q4_K_M
./llama-perplexity -m q7b-Q4_K_M.gguf -f wikitext-2-raw/wiki.test.raw -c 2048 # PPL
./llama-bench -m q7b-Q4_K_M.gguf -p 512 -n 128 # tokens/s
# AWQ i Python
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer
m = AutoAWQForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct"); tok = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
m.quantize(tok, quant_config={"w_bit": 4, "q_group_size": 128, "zero_point": True, "version": "GEMM"})
m.save_quantized("qwen7b-awq")
# därefter: kör er eval-harness på f16, AWQ och Q4_K_M — samma fall, samma prompt, temperatur 0
Rapporttabell: format · GB · PPL · egen eval · tokens/s · plattform.
Behärskning innebär
- Kvantiserar en modell med GPTQ/AWQ och till GGUF
- Mäter perplexitet, uppgiftskvalitet och tokens/s före/efter
- Väljer format efter körmiljö
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- llama.cpp (MIT) — MIT
- arXiv — AWQ: Activation-aware Weight Quantization — arXiv (öppen åtkomst; licens per artikel)
- Hugging Face — dokumentation (Apache-2.0) — Apache-2.0