Top-p (nucleus): Pravděpodobnostní ořez slovní zásoby při generování

Co je top-p (nucleus) sampling a proč na něm záleží

Top-p (též nazývaný nucleus sampling) je stochastická dekódovací strategie pro generativní jazykové modely, která v každém kroku výběru dalšího tokenu omezuje kandidáty na nejmenší množinu slovní zásoby, jejíž kumulativní pravděpodobnost dosáhne prahu p (např. 0,9). Zbývající tokeny (součet < p) jsou „orezány“. Na rozdíl od pevného počtu kandidátů (jako u top-k) tak top-p adaptivně reaguje na tvar distribuce: při „ostrém“ (peakovaném) rozložení je jádro malé, u „plochého“ (diffuzního) větší.

Formální definice a intuice

  • Nechť P(t|h) je softmax pravděpodobnost tokenu t v kontextu h.
  • Seřadíme tokeny sestupně podle P a najdeme nejmenší prefix S, že Σ_{t∈S} P(t|h) ≥ p.
  • Vzorkujeme z distribuce renormalizované na S: P'(t|h) = P(t|h) / Σ_{u∈S} P(u|h) pro t∈S, jinak 0.

Intuice: jádro („nucleus“) představuje nejpravděpodobnější významovou „masu“. Vysoké p → širší jádro (více kreativity), nízké p → užší jádro (více deterministický výstup).

Porovnání s top-k a teplotou

Top-p vs. top-k vs. teplota (T)
Technika Mechanismus Adaptivita Kontrola rizika „off-topic“ Typické použití
Top-k Ořeže na k nejpravděpodobnějších tokenů Nízká (fixní k) Dobrá při malém k Chat, kód, konzervativní texty
Top-p Ořeže na kumulativní pravděpodobnost p Vysoká (mění se podle distribuce) Vyvážená Kreativní, vícejazyčné, dlouhé výstupy
Teplota T Globální „zploštění“ logitů Střední (na celé rozdělení) Citlivé na nastavení Ladění variability při fixním top-p/k

V praxi se top-p často kombinuje s teplotou: logits/T upraví tvar distribuce a top-p následně adaptivně vyřízne chvost.

Algoritmus krok za krokem

  1. Vypočítejte softmax pravděpodobnosti tokenů (po aplikaci teploty, penalizací opakování apod.).
  2. Seřaďte tokeny sestupně podle pravděpodobnosti a akumulujte jejich součet.
  3. Najděte nejmenší prefix s kumulativní pravděpodobností ≥ p.
  4. Renormalizujte pravděpodobnosti v jádru tak, aby daly součet 1.
  5. Vzorkujte jeden token z této prořezené distribuce.

Stabilitní poznámka: při rovnostech na hranici p je vhodné přidat drobnou stochastiku (tie-breaking) nebo deterministicky preferovat token s vyšší pravděpodobností, aby se předešlo oscilacím.

Vliv na kvalitu textu: koherence vs. diverzita

  • Koherence: nižší p snižuje riziko „topic driftu“, zkracuje průměrnou délku vět a redukuje slang či idiomy.
  • Diverzita: vyšší p zvyšuje lexikální i syntaktickou pestrost, podporuje originální n-gramy.
  • Opakování: samotný top-p nebrání repeticím; kombinujte s penalizací opakování (např. repetition_penalty, no_repeat_ngram_size).

Doporučené rozsahy a výchozí nastavení

  • Přesné/informační odpovědi: p = 0.80–0.92, T = 0.7–0.9, mírná penalizace opakování.
  • Kreativní psaní: p = 0.90–0.97, T = 0.9–1.1, menší obsahová omezení.
  • Kód a strukturovaný text: p = 0.70–0.90, T = 0.2–0.8, silnější pravidla proti opakování.
  • Vícejazyčné generování: p = 0.88–0.95, T = 0.8–1.0 (nižší riziko „code-switchingu“).

Praktické tipy pro SEO/AIO/AEO kontext

  • Answer-first výstupy: používejte konzervativnější p a nižší T pro stabilní úvodní věty a správné citace.
  • Variace meta-nadpisů/popisků: zvýšte p o 0,03–0,05 nad baseline pro generování diverzity bez ztráty tématu.
  • Snippety a FAQ: p ≤ 0.9 udrží odpovědi „na kolejích“, což je důležité pro extrakty v asistentských odpovědích.
  • Programmatické SEO šablony: při dlouhém chvostu se vyhněte extrémům; kombinujte top-p s pravidlovým templatingem.

Kalibrace a metriky kvality

  • Automatické: per-token entropie, distinct-n (unikátní n-gramy), self-BLEU (mezi variantami), skóre opakování.
  • Lidské: srozumitelnost, faktická přesnost, „on-brand“ tón; hodnotící škály 1–5, párové porovnávání variant při různých p.
  • Obchodní: CTR snippetu, čas do informace, míra eskalace; sledujte v A/B testech proti baseline.

Interakce s dalšími omezeními (safety, styl, délka)

  • Bezpečnostní filtry: aplikujte je před top-p (logit bias) i po vzorkování (toxicity gating) – dvojí ochrana.
  • Stylistické omezení: při přísném stylu (právní text) snižte p a T; při marketingu povolte širší jádro.
  • Délka: vyšší p může zvyšovat „rozkecávání“; kontrolujte pomocí stoppointů (povinné sekce, odrážky).

Hranice a časté omyly

  • „Vyšší p je vždy lepší“: nikoliv; nad cca 0,97 často roste nepřesnost a odbočky od tématu.
  • „Top-p nahrazuje teplotu“: ne; teplota mění globálně tvar distribuce, top-p reguluje chvost adaptivně.
  • „Stačí jednou nastavit“: ne; rozumné je kontextové přepínání profilů podle úkolu a jazyka.

Kontextově adaptivní profily

Příklad profilů top-p/teplota podle typu obsahu
Scénář p T Další nastavení
Lexikon/definice 0.85 0.7 no-repeat-bigram=2; cite-first
Produktové karty 0.88 0.8 tone=autoritatativní; CTA guardrails
Blog kreativita 0.94 0.95 diversity-penalty=lehké
Kódové ukázky 0.80 0.4 no-repeat-ngram=3; syntax checker

Implementační poznámky (pseudokód bez <pre> bloků)

# logits: vektor skóre; T: teplota; p: prah jádra
logits = logits / T
probs = softmax(logits)
idx = argsort_desc(probs)
cum = cumsum(probs[idx])
k = argmin_i ( cum[i] ≥ p )
S = idx[0..k]
probs_S = probs[S] / sum(probs[S])
t = sample_from(probs_S)
return S[t]

Ladění v praxi: postup „od konzervy ke kreativitě“

  1. Začněte konzervativně: p=0.9, T=0.8, anti-repeat zapnutý.
  2. Otestujte 3–5 variant na 20–50 promtů; měřte distinct-n, faktickou správnost a lidské hodnocení.
  3. Podle cíle upravujte p po krocích 0.02–0.05; teplotu po 0.05–0.1.
  4. Zamkněte profil pro daný typ obsahu; sledujte metriky v A/B testech.

Vliv jazyka a domény

  • Méně zdrojové (low-resource) jazyky: mírně vyšší p může napomoci diverzitě, ale kontrolujte faktickou správnost.
  • Odborné domény: nižší p podporuje terminologickou konzistenci; přidejte terminologické slovníky a logit bias.

Propojení s optimalizací webů pro LLM (AIO/AEO)

  • Stabilní jádro textu: konzervativní profil pro sekce, které budou modely často citovat (definice, metodiky).
  • Variace nadpisů a shrnutí: kreativní profil pro „explore“ fázi a testování CTR v asistentech.
  • Kontrola atribuce: nižší p usnadní reprodukovatelné citovatelné věty se stejnými kotvami.

Diagnostika problémů

  • Zvýšené halucinace: snižte p o 0.05 a T o 0.1; posilte retrieval a citace.
  • Monotónnost textu: zvyšte p o 0.03, zmírněte anti-repeat a přidejte stylistické nápovědy.
  • Topic drift v dlouhých výstupech: zavádějte sekční „reset“ prompty a mezititulky; držte p ≤ 0.92.

FAQ pro rozhodování

  • Má smysl kombinovat top-p a top-k? Ano, zejména jako „pojistku“: např. p=0.95 a k≤50 na odřezání extrémně dlouhých chvostů.
  • Co s délkou výstupu? Top-p ovlivňuje lokální výběr tokenu; délku řiďte pomocí max_tokens a sekčních cílů.
  • Je top-p deterministický? Ne; pro reprodukovatelnost nastavte random_seed a pevný deterministický tie-break.

Top-p (nucleus) sampling je praktický, adaptivní mechanismus pro vyvážení koherence a kreativity. V optimalizaci pro ChatGPT/LLM, AIO/AEO a moderní SEO umožňuje řídit „výběr slov“ tak, aby odpovědi byly konzistentní, citovatelné a zároveň dostatečně rozmanité pro testování variant. Kombinací s teplotou, penalizacemi opakování a retrievalem získáte robustní dekódovací profil, který lze škálovat napříč typy obsahu a jazyky.