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:

  1. Malý model (napr. 8B parametrov) rýchlo vygeneruje k tokenov dopredu — typicky 4–8
  2. Veľký model (napr. 70B) overí všetkých k tokenov naraz v jedinom paralelnom prechode
  3. Overovanie je oveľa lacnejšie ako generovanie, pretože transformerová architektúra spracuje celú sekvenciu súbežne
  4. Ak veľký model súhlasí s navrhnutými tokenmi, všetky sa akceptujú — skok o k tokenov naraz
  5. 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-model flag — 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.