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

Top-p (nucleus): Pravdepodobnostné orezanie slovnej zásoby pri generovaní

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

Top-p (nazývaný také nucleus sampling) je stochastická dekódovací strategie pro generativní jazykové modely, která v každém kroku výběru dalšího tokenu omezí 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 „oříznuty“. Namísto pevného počtu kandidátů (jako u top-k) tak top-p adaptivně reaguje na tvar distribuce: při „ostré“ (peaked) distribuci je jádro malé, při „ploché“ (diffuse) větší.

Formální definice a intuice

  • Nechť P(t|h) je softmaxová pravděpodobnost tokenu t při kontextu h.
  • Seřadíme tokeny sestupně podle P a najdeme nejmenší prefix S, pro který platí Σ_{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ýznamový celek. Vysoké p → širší jádro (více kreativity), nízké p → užší jádro (více deterministický výstup).

Srovnání s top-k a teplotou

Top-p vs. top-k vs. teplota (T)
Technika Mechanismus Adaptivita Kontrola rizika „odklonu od tématu“ Typické použití
Top-k Ořízne výběr na k nejpravděpodobnějších tokenů Nízká (pevné k) Dobrá při malém k Chat, kód, konzervativní texty
Top-p Ořízne výběr podle kumulativní pravděpodobnosti p Vysoká (mění se podle distribuce) Vyvážená Kreativní, vícejazyčné a dlouhé výstupy
Teplota T Globálně „zplošťuje“ logity Střední (pro celé rozdělení) Citlivá na nastavení Úprava variability při pevném top-p/k

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

Algoritmus krok za krokem

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

Poznámka ke stabilitě: při shodě na hranici p je vhodné přidat drobnou stochastiku (tie-breaking) nebo deterministicky upřednostnit token s vyšší pravděpodobností, abyste předešli oscilacím.

Vliv na kvalitu textu: koherence vs. diverzita

  • Koherence: nižší p snižuje riziko „odklonu od tématu“, zkracuje průměrnou délku vět a omezuje slang a idiomy.
  • Diverzita: vyšší p zvyšuje lexikální i syntaktickou pestrost a podporuje originální n-gramy.
  • Opakování: samotné top-p opakování nezabraňuje; kombinujte ho 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ší omezení obsahu.
  • Kód a strukturovaný text: p = 0.70–0.90, T = 0.2–0.8, přísnější pravidla proti opakování.
  • Vícejazyčné generování: p = 0.88–0.95, T = 0.8–1.0 (nižší riziko „přepínání jazyků“).

Praktické rady pro kontext SEO/AIO/AEO

  • Výstupy s odpovědí na prvním místě: používejte konzervativnější p a nižší T, abyste zajistili stabilní úvodní věty a správné citace.
  • Varianty meta titles/descr.: zvýšením p o 0.03–0.05 nad výchozí hodnotu vytvoříte rozmanitější výstupy bez ztráty tématu.
  • Snippetové úryvky a FAQ: hodnota p ≤ 0.9 udrží odpovědi „na správné cestě“, což je důležité pro výňatky v odpovědích asistentů.
  • Šablony pro programatické SEO: u dlouhého chvostu se vyhněte extrémům; kombinujte top-p s šablonami založenými na pravidlech.

Kalibrace a metriky kvality

  • Automatické: entropie na token, distinct-n (unikátní n-gramy), self-BLEU (mezi variantami), skóre opakování.
  • Lidské: srozumitelnost, faktická přesnost, tón „v souladu se značkou“; hodnoticí škály 1–5, párové porovnávání variant při různých hodnotách p.
  • Obchodní: CTR snippetového úryvku, čas potřebný k získání informace, míra eskalace; sledujte je v A/B testech oproti výchozí hodnotě.

Interakce s dalšími omezeními (bezpečnost, styl, délka)

  • Bezpečnostní filtry: aplikujte je před top-p (logit bias) i po vzorkování (toxicity gating) – dvojité jištění.
  • Stylová omezení: při striktním stylu (právní text) snižte p a T; u marketingu povolte širší jádro.
  • Délka: vyšší p může vést k „zbytečnému rozvádění“; délku kontrolujte pomocí bodů ukončení (povinné sekce, odrážky).

Limity a časté omyly

  • „Vyšší p je vždy lepší“: není; nad ~0.97 často narůstá nepřesnost a odklon od tématu.
  • „Top-p nahrazuje teplotu“: ne; teplota mění křivku globálně, top-p adaptivně reguluje chvost.
  • „Stačí ho nastavit jednou“: ne; rozumné je přepínat profily podle úlohy a jazyka.

Kontextově adaptivní profily

Příklad profilů top-p/teploty 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=autoritativní; CTA guardrails
Kreativní blogové texty 0.94 0.95 diversity-penalty=mírný
Ukázky kódu 0.80 0.4 no-repeat-ngram=3; syntax checker

Poznámky k implementaci (pseudokód bez bloků <pre>)

# 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]

Praktické ladění: postup „od konzervativního ke kreativnímu“

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

Vliv jazyka a oboru

  • Jazyky s menším množstvím zdrojů (low-resource): mírně vyšší p může pomoci zvýšit diverzitu, kontrolujte však faktickou přesnost.
  • Odborné obory: 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).
  • Varianty nadpisů a shrnutí: kreativní profil pro fázi „explore“ a testování CTR v asistentech.
  • Kontrola atribuce: nižší p usnadní tvorbu reprodukovatelných, citovatelných vět se stejnými kotvami.

Diagnostika problémů

  • Přibývá halucinací: snižte p o 0.05 a T o 0.1; posilte retrieval a citace.
  • Monotónní text: zvyšte p o 0.03, uvolněte pravidla proti opakování a přidejte stylové pokyny.
  • Odklon od tématu v dlouhých výstupech: zavádějte sekční prompty pro „reset“ a mezititulky; udržujte 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 pro oříznutí extrémně dlouhých chvostů.
  • Co délka výstupu? Top-p ovlivňuje lokální výběr tokenu; délku kontrolujte pomocí max_tokens a cílů pro jednotlivé sekce.
  • Je top-p deterministický? Ne; pro reprodukovatelnost nastavte random_seed a pevné deterministické rozhodování při shodě.

Top-p (nucleus) sampling je praktický, adaptivní mechanismus pro vyvážení koherence a kreativity. Při 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.