Kvantizácia modelov — ako spustiť 70B AI na bežnom počítači
Kvantizácia je technika, ktorá redukuje presnos číselných reprezentácií váh neurónových sietí — vďaka nej dnes beží Llama 4 70B na laptope s 32 GB RAM bez potreby akéhokoľvek cloudového servera.
1. Čo je kvantizácia a prečo záleží
Každý LLM je v podstate obrovská sada čísel — váhy, ktoré určujú, ako model reaguje na vstup. V plnom natívnom formáte sú tieto čísla uložené ako 32-bitové alebo 16-bitové desatinné čísla (fp32, bf16). Pre 7-miliardový model to znamená ~14 GB len pre parametre; 70B model potrebuje okolo 140 GB.
Kvantizácia tieto čísla zaokrúhli do menšieho formátu — typicky 8-bitový (INT8) alebo 4-bitový (INT4) celočíselný. Výsledok:
- 70B model v INT4 ≈ 35–40 GB namiesto 140 GB
- Rýchlejšia inference (menší objem dát cez pamäťovú zbernicu)
- Možnosť spúšťania na spotrebiteľskom hardvéri bez cloud API
Kompromis: kvantizácia vnáša zaokrúhľovaciu chybu — model stráca kúsok presnosti. Pri dobre navrhnutej kvantizácii je tento pokles minimálny (typicky menej ako 2 % na štandardných benchmarkoch).
2. Typy a formáty kvantizácie
Post-Training Quantization (PTQ) — kvantizácia po tréningu, bez ďalšieho dolaďovania. Najrýchlejšia metóda, no s vyšším poklesom kvality pri agresívnych úrovniach (napr. INT2).
Quantization-Aware Training (QAT) — model sa trénuje so simulovanou kvantizáciou. Lepšia výsledná kvalita, ale vyžaduje prístup k tréningovým dátam a výpočtovým zdrojom.
Formáty a metódy:
- GGUF (GPT-Generated Unified Format) — nástupca GGML, dnes štandard pre llama.cpp a Ollama. Obsahuje model aj metadata v jednom súbore. Podporuje Q2_K až Q8_0 a mix-precision varianty.
- GPTQ — PTQ pre GPU, minimalizuje kvantizačnú chybu na úrovni vrstiev pomocou Hessianskej aproximácie. Implementuje ho knižnica AutoGPTQ.
- AWQ (Activation-aware Weight Quantization) — identifikuje dôležité váhy podľa veľkosti aktivácií a chráni ich pred agresívnou kvantizáciou. Dosahuje lepšiu kvalitu ako GPTQ pri rovnakej bitovej šírke.
- BitsAndBytes (bnb) — integrácia priamo do Hugging Face transformers pre 4-bit a 8-bit načítanie. NF4 (normalized float 4) je štandard pre QLoRA finetuning.
3. Porovnanie metód a nástrojov
| Metóda | Bitov | Pokles kvality | Hardvér | Nástroj | Vhodné pre |
|---|---|---|---|---|---|
| fp16 | 16 | žiadny (referencia) | GPU | transformers | produkcia na GPU |
| GGUF Q8_0 | 8 | < 0,5 % | CPU / GPU | llama.cpp, Ollama | lokálna inference, max kvalita |
| GGUF Q4_K_M | 4 | ~1–2 % | CPU / GPU | llama.cpp, Ollama | bežné notebooky |
| GGUF Q2_K | 2 | 5–10 % | CPU | llama.cpp | experimentálne, extrémna RAM |
| GPTQ INT4 | 4 | ~1–2 % | GPU | AutoGPTQ | GPU servery |
| AWQ INT4 | 4 | < 1 % | GPU | AutoAWQ | GPU, lepší výkon ako GPTQ |
| BitsAndBytes NF4 | 4 | ~1–2 % | GPU | transformers | QLoRA finetuning |
Pravidlo palca: Pre CPU a lokálny beh → GGUF Q4_K_M alebo Q5_K_M. Pre GPU inference → AWQ INT4. Pre finetuning vlastného modelu → BitsAndBytes NF4.
4. Praktické použitie
Ollama (najjednoduchší štart):
# Stiahne a spustí kvantizovaný model (GGUF Q4_K_M)
ollama run llama4:70b
# Beží lokálne, žiadne cloudové API volania ani náklady
Priamy llama.cpp:
./llama-cli -m llama-4-70b-Q4_K_M.gguf -n 512 -p "Vysvetli kvantizáciu"
Hugging Face s BitsAndBytes pre QLoRA:
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
import torch
quant_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-4-70B",
quantization_config=quant_config,
device_map="auto",
)
Kvantizované modely sú dostupné priamo na Hugging Face — profily ako bartowski alebo unsloth pravidelne publikujú GGUF verzie všetkých populárnych modelov krátko po ich vydaní, čo znamená nulové úsilie na strane vývojára.
5. Limity a čo treba sledovať
Regresie pri dlhom kontexte — pri 4-bit kvantizácii sa zaokrúhľovacie chyby hromadia v čase; u modelov s kontextovým oknom 128K+ môže byť skutočný pokles výraznejší ako napovedajú štandardné benchmarky, ktoré pracujú s kratšími sekveniciami.
Závislosť od architektúry — nie každý model kvantizuje rovnako. Architektúry s Group Query Attention (GQA) reagujú lepšie na agresívnu kvantizáciu ako staršie multi-head attention modely.
Mix-precision je dôležitý detail — moderné GGUF varianty (Q4_K_M, Q5_K_M) zachovávajú citlivé vrstvy v embedding a output časti v vyššej bitovej šírke. Porovnávanie "INT4" naprieč rôznymi nástrojmi bez znalosti tohto detailu vedie k zavádzajúcim výsledkom.
Kompatibilita GGUF súborov — formát sa aktívne vyvíja; staršie súbory nemusia byť kompatibilné s novšou verziou llama.cpp. Pri inštalácii nového vydania llama.cpp vždy overiť verziu GGUF súborov.
Finetuning si vyžaduje viac ako len kvantizáciu — samotný 4-bit model sa nedá efektívne doladiť. QLoRA kombinuje NF4 kvantizáciu s LoRA adaptérmi; len táto kombinácia umožňuje finetuning na spotrebiteľskom GPU.
Zhrnutie: Kvantizácia zmenila pravidlá hry — modely, ktoré v roku 2023 vyžadovali drahý cloudový server, dnes bežia na laptope s minimálnym dopadom na kvalitu, a to vďaka vyspelým formátom ako GGUF a metódam ako AWQ.