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.