Spekulatívne dekódovanie
Spekulatívne dekódovanie je technika, ktorá umožňuje veľkým jazykovým modelom generovať text 2–4× rýchlejšie bez akejkoľvek straty kvality — a stala sa tichým štandardom produkčnej AI infraštruktúry od Googlu po lokálne nasadenia na notebooku.
1. Problém: Prečo je generovanie tokenov pomalé?
Veľké jazykové modely generujú text token po tokene. Každý ďalší token vyžaduje úplný prechod cez miliardovú sieť — model nemôže spustiť výpočet tokenu N+1, kým nedokončí token N. Tento autoregresívny proces je zo svojej podstaty sekvenčný.
Výsledok: aj s rýchlym hardvérom (H100, Blackwell GPU) je latencia na token obmedzená veľkosťou modelu. Pri modeloch s 70–400 miliardami parametrov to znamená desiatky milisekúnd na token, čo je pre interaktívne aplikácie príliš pomalé.
Kľúčové obmedzenia klasickej inferencie:
- Sekvenčná závislosť — token N blokuje token N+1
- Podvyužitý paralelizmus GPU — výkonná matica čaká na jediný výstup
- Nelineárne škálovanie: 2× väčší model ≠ 2× lepší výsledok, ale zaručene 2× pomalší výstup
2. Riešenie: Navrh + overenie
Spekulatívne dekódovanie (speculative decoding, Leviathan et al., 2022) rieši problém rozdelením práce medzi draftovací model (malý, rýchly) a verifikačný model (veľký, kvalitný).
Postup krok za krokom:
- Malý model (napr. 8B parametrov) rýchlo vygeneruje k tokenov dopredu — typicky 4–8
- Veľký model (napr. 70B) overí všetkých k tokenov naraz v jedinom paralelnom prechode
- Overovanie je oveľa lacnejšie ako generovanie, pretože transformerová architektúra spracuje celú sekvenciu súbežne
- Ak veľký model súhlasí s navrhnutými tokenmi, všetky sa akceptujú — skok o k tokenov naraz
- Ak veľký model nesúhlasí od pozície j, akceptujú sa tokeny 1 až j−1, zahodí sa zvyšok a pokračuje sa ďalej
Kľúčový insight: Rozdiel medzi generovaním a overovaním sekvencie je zásadný. GPU môže overiť 8 tokenov rýchlejšie, ako by ich dokázalo vygenerovať jedno po druhom — tým vzniká priestor pre zisk.
3. Porovnanie hlavných variánt
| Metóda | Draft mechanizmus | Typický speedup | Zmena kvality | Reprezentatívne nasadenie |
|---|---|---|---|---|
| Klasické spec. dekódovanie | Samostatný malý model | 2–3× | Žiadna (matematicky garantovaná) | Llama 8B → Llama 70B |
| Medusa | Extra predikčné hlavy na hlavnom modeli | 1,5–2,5× | Minimálna | Medusa-Vicuna, Medusa-LLaMA |
| EAGLE / EAGLE-2 | Autoregresívna draftovacia vrstva | 3–4× | Žiadna | EAGLE-2 na Llama 3.1 |
| Self-speculative (LayerSkip) | Hlavný model preskakuje vrstvy | 1,5–2× | Minimálna | Meta interné experimenty |
| Jacobi decoding | Iteratívny paralelný odhad celej sekvencie | 1,3–1,8× | Žiadna | Stále prevažne výskumná fáza |
Spoločný menovateľ všetkých variánt: veľký model je orákulom kvality a nikdy negeneruje horší výstup ako pri klasickom prístupe — v najhoršom prípade sa jednoducho ignorujú navrhy draftovacieho modelu.
4. Kde sa to dnes reálne používa
Spekulatívne dekódovanie prešlo z akademického článku do produkcie takmer všetkých veľkých AI platforiem:
Nasadenia v praxi:
- Google Gemini: interné spec. dekódovanie v produkčnom systéme od roku 2024, kombinácia Gemini Nano ako draftu
- Anthropic Claude: EAGLE-inspirovaný variant pre vrstvenie Haiku → Sonnet
- Meta Llama: knižnica TGI (Text Generation Inference) podporuje spec. dekódovanie natívne cez
--speculative-decoding - llama.cpp / Ollama:
--draft-modelflag — dostupné pre každého lokálne bez špeciálneho hardvéru - NVIDIA TensorRT-LLM: zabudované ako štandardná produkčná optimalizácia
Príklad lokálneho spustenia cez llama.cpp:
# Hlavný model: Llama-3-70B, draftovací: Llama-3-8B
./llama-cli \
-m llama-3-70b-instruct.gguf \
--draft-model llama-3-8b-instruct.gguf \
--draft 8 \
-p "Vysvetli kvantovú kryptografiu"
Draftovací model musí pochádzať z rovnakej rodiny ako hlavný — inak je miera akceptácie príliš nízka a technika nepriniesie zisk. Llama 8B a Llama 70B zdieľajú tokenizer aj základnú distribúciu, preto fungujú spolu dobre.
5. Limity, riziká a čo ďalej
Súčasné obmedzenia:
- Doménová závislosť: ak draftovací model neovláda špecifickú oblasť (medicína, právo, nízkoúrovňový kód), miera akceptácie tokenov klesá pod 50 % a speedup zmizne
- Pamäťové nároky: oba modely musia byť súčasne v pamäti — Llama 70B + Llama 8B vyžaduje ~96 GB VRAM vo FP16
- Vysoká teplota generovania: kreatívne úlohy so sampling temperature > 0,8 znižujú zhodu draft → main modelu, čím sa zisk zmenšuje
- Dávkové spracovanie (batching): pri vysokom počte súbežných požiadaviek je GPU vyťažená aj bez spec. dekódovania — technika prináša najväčší úžitok pri nízkej konkurencii požiadaviek
Vývojové smery:
- Multi-draft stromy: viacero draftovacích vláken paralelne, výber najlepšej vetvy tokenov (tree-based speculative decoding)
- Distilované draft modely: malé modely trénované špeciálne na maximalizáciu miery akceptácie pre konkrétny veľký model (nie generický malý model, ale „junior verzia" senior modelu)
- Hardvérová podpora: čipy ako Groq LPU a Cerebras WSE sú navrhované s ohľadom na spec. dekódovanie — sekvenčná závislosť hrá na ich architektúru menej
- Multimodálne rozšírenie: výskum aplikácie techniky na modely s obrazovými tokenmi (Vision-Language Models)
Zhrnutie: Spekulatívne dekódovanie je jedna z najdôležitejších optimalizácií LLM inferencie posledných rokov — umožňuje 2–4× vyšší výkon bez kompromisu na kvalite výstupu, a dnes beží v pozadí väčšiny produkčných AI systémov, ktoré každodenne používame, väčšinou bez toho, aby to ktokoľvek vedel.