Top-k sampling (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

Top-k vzorkování — je stochastická metoda dekódování používaná v autoregresivních jazykových modelech, včetně velkých jazykových modelů (LLM), pro generování textu. Jejím hlavním cílem je omezit výběr dalšího tokenu na pevný počet (k) nejpravděpodobnějších kandidátů, čímž se zabraňuje generování málo pravděpodobných a často nevhodných slov. Tato metoda byla jedním z prvních vylepšení prostého náhodného vzorkování a po dlouhou dobu představovala oblíbený způsob zlepšení koherence generovaného textu.

Jednoduché vysvětlení

Top-k vzorkování lze představit jako výběr dalšího slova nikoli ze všech možných variant, ale pouze z omezeného seznamu nejpravděpodobnějších.

Například model dopisuje větu „Dnes venku bylo silné…". V jeho slovníku jsou tisíce pokračování: „déšť", „vítr", „sníh", „liják" — a někde daleko „kvantový" nebo náhodný symbol. Bez omezení je generování textu náchylné k různým formám degenerace (text degeneration). Maximalizační metody (greedy decoding, beam search) produkují nudný, opakující se text, zatímco čisté vzorkování bez ořezání riskuje ztrátu soudržnosti kvůli výběru málo pravděpodobných tokenů z „nespolehlivého chvostu" distribuce. Top-k bojuje především s tímto druhým problémem — odříznutím chvostu snižuje riziko nesmyslných pokračování, ačkoli sám o sobě neeliminuje opakování. Top-k říká: „Vezmi jen k nejpravděpodobnějších slov, zapomeň na ostatní, přepočítej pravděpodobnosti mezi nimi a vyber jedno náhodně".

Jednoduše řečeno:

  • model sestaví seznam nejpravděpodobnějších pokračování;
  • vezme pouze prvních k variant;
  • náhodně vybere jedno z nich.

Čím menší k, tím opatrnější a předvídatelnější výsledek. Čím větší k, tím volnější a rozmanitější generování.

Analogie:

  • Restaurační menu: místo náhodného výběru z 5 000 položek (riziko, že dostanete nepoživatelné) nebo vždy jednoho nejpopulárnějšího jídla (nudné) číšník přinese pouze top-40 doporučených — vybírejte z rozumného seznamu. Pravda, někdy se v odříznuté části menu mohlo nacházet právě to neobvyklé jídlo, které by vám chutnalo — to je cena za předvídatelnost.
  • Krátký seznam finalistů: z 1 000 uchazečů o práci se ponechá 40 nejlepších životopisů a teprve pak se provádějí pohovory.

Koncept a matematika

V každém kroku generování textu standardní jazykový model vydává pravděpodobnostní distribuci P(x|x1:i1) přes celý slovník V. Top-k vzorkování tento proces modifikuje následovně:

  • Výběr kandidátů: Z celého slovníku se vybere podmnožina V(k) sestávající z k tokenů s nejvyššími pravděpodobnostmi.
  • Ořezání: Logitům (surowym predikcím modelu před aplikací Softmax) všech tokenů, které se nedostaly do V(k), je přiřazena hodnota , což po normalizaci dává pravděpodobnost striktně rovnou 0.
  • Přerozdělení (normalizace): Pravděpodobnosti zbývajících k tokenů jsou škálovány tak, aby jejich nový součet byl roven 1.
  • Vzorkování: Další token je náhodně vybrán z tohoto nového, ořezaného rozdělení.

Top-k tak zavádí pevný práh podle počtu kandidátů: slova s pořadím pravděpodobnosti nižším než k nebudou nikdy vybrána.

Vliv parametru k

  • Malé k (například k=510): Generování je konzervativnější a předvídatelnější. Model vybírá pouze z velmi omezeného souboru nejpravděpodobnějších slov. To zvyšuje koherenci, ale může vést k opakujícímu se a nudnému textu.
  • Velké k (například k=50100): Zvyšuje rozmanitost a kreativitu textu, protože do výběru se dostane více variant. To však také zvyšuje riziko zahrnutí méně relevantních nebo nevhodných tokenů.
  • Hraniční případy:
    • k=1: Ekvivalentní greedy decoding. Model vždy vybere nejpravděpodobnější token.
    • k = velikost slovníku: Ekvivalentní standardnímu vzorkování z úplného rozdělení, bez ořezání.

Historický význam

Top-k vzorkování jako metoda dekódování bylo jedním z prvních úspěšných použití v práci Angely Fan a jejích kolegů (2018) „Hierarchical Neural Story Generation", kde autoři využili top-k random sampling (s k=10) v systému hierarchického generování příběhů a ukázali, že tato strategie je výrazně efektivnější než beam search a úplné náhodné vzorkování, které riskuje vnášení málo pravděpodobných slov.

Klíčovou prací, která systematicky analyzovala problém degenerace textu a ukázala, že metody ořezání včetně top-k podstatně zlepšují kvalitu generování, se stala studie Holtzman et al. (2019) „The Curious Case of Neural Text Degeneration". Autoři přitom navrhli top-p (nucleus sampling) jako adaptivnější alternativu k top-k a na základě vlastní metriky HUSE ukázali, že nucleus sampling dosahuje lepších výsledků mezi porovnávanými strategiemi.

Například v raných demonstracích a doporučeních pro GPT-2 se hojně používala hodnota `top_k=40` (je zmíněna v kódu OpenAI jako „generally a good value"), což pomáhalo generovat dlouhé a koherentní texty.

Srovnání s jinými metodami dekódování

Top-k vs. Top-p

Top-k bylo z velké části doplněno, a v řadě úloh nahrazeno pokročilejší metodou — Top-p (nucleus) vzorkováním.

  • Hlavní nevýhodou Top-k je jeho neadaptivnost. Pevná hodnota k nezohledňuje tvar pravděpodobnostní distribuce:
    • Když je distribuce ostrá (model si je jistý několika tokeny), Top-k může uměle rozšířit výběr zahrnutím málo pravděpodobných kandidátů.
    • Když je distribuce plochá (model si není jistý a mnoho tokenů má podobnou pravděpodobnost), Top-k může předčasně odříznout mnoho vhodných variant.
    • Navíc Top-k pevně odřezává „chvost" distribuce (tail truncation), kvůli čemuž mohou být kontextově vhodné, ale vzácné tokeny ztraceny — metoda obětuje potenciální kreativitu ve prospěch soudržnosti.
  • Top-p naproti tomu dynamicky adaptuje velikost výběru tím, že vybírá tokeny na základě jejich kumulativní pravděpodobnosti. To jej činí flexibilnějším a spolehlivějším.
  • V praxi se obě metody nezřídka používají společně jako sekvenční filtry: jedna hrubě omezuje počet kandidátů, druhá dynamicky zužuje výběr podle jistoty modelu. Přesné pořadí jejich aplikace závisí na implementaci konkrétního frameworku.

Top-k vs. Teplota

  • Teplota mění tvar celého pravděpodobnostního rozdělení, ale tokeny neořezává. Ovlivňuje relativní pravděpodobnosti všech kandidátů.
  • Top-k zavádí pevné ořezání, zcela vylučující tokeny mimo top-k.

V praxi lze Top-k kombinovat s teplotou a Top-p. Přesné pořadí aplikace filtrů závisí na frameworku: například v Hugging Face Transformers vypadá pipeline jako Teplota → Top-k → Top-p, tedy teplota nejprve škáluje logity (l=l/au), poté Top-k odřízne dlouhý „chvost" nežádoucích tokenů a teprve poté Top-p dynamicky zúží výběr v závislosti na jistotě modelu. Přitom jednotlivé kroky mohou být přeskočeny v závislosti na nastavení: pokud top_k=0, krok Top-k se neaplikuje; pokud top_p=1.0, krok Top-p se neaplikuje.

Praktické použití

Přestože Top-p je adaptivnější metodou a často se používá jako výchozí pro otevřené generování textu, univerzálně nejlepší metoda dekódování neexistuje — optimální volba závisí na úloze, modelu a prioritách (kvalita, rychlost, robustnost). Top-k zůstává široce podporovaným parametrem ve všech hlavních frameworcích (Hugging Face Transformers, vLLM a další) a aktivně se používá jak samostatně, tak v kombinaci s jinými metodami.

  • Typické hodnoty: V praxi se často používají hodnoty k v řádu desítek tokenů (například 10, 40, 50), ale optimum závisí na modelu a úloze.
  • Doporučení: Pro otevřené generování textu se často preferuje Top-p. Pokud se používá Top-k, mělo by být kombinováno s mírnou teplotou a hodnota k by měla být pečlivě nastavena pro konkrétní úlohu. Top-k je také vhodný jako dodatečný „pojistný ventil" při vysoké teplotě.
  • Poznámka: Ve frameworcích lze Top-k kombinovat s Repetition Penalty (penalizací za opakování) a parametrem no_repeat_ngram_size, aby se zabránilo zacyklení modelu na stejných slovech z top-k seznamu.

Literatura

Základní práce

  • Fan, A. et al. (2018). Hierarchical Neural Story Generation. ACL Anthology. arXiv:1805.04833.
  • Holtzman, A. et al. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751 (ICLR 2020).
  • Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o (ICLR 2024).

Doporučená literatura

  • Meister, C. et al. (2022). Locally Typical Sampling. arXiv:2202.00666 (TACL 2023).
  • Su, Y.; Lan, T.; Wang, Y.; Yogatama, D.; Kong, L.; Collier, N. (2022). A Contrastive Framework for Neural Text Generation. arXiv:2202.06417 (NeurIPS 2022).
  • O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
  • Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. ACL Anthology. arXiv:2402.06925.
  • Ravfogel, S.; Goldberg, Y.; Goldberger, J. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
  • Chen, S. J. et al. (2024). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968 (ICLR 2025).
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.

Viz také

  • Velké jazykové modely