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 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 (jejichž součet je < p) jsou „odříznuty“. Namísto pevného počtu kandidátů (jako top-k) tak top-p adaptivně reaguje na tvar distribuce: při „ostrém“ (peaked) rozdělení je jádro malé, při „plochém“ (diffuse) větší.
Formální definice a intuice
- Nechť
P(t|h)je softmax pravděpodobnost tokenutza kontextuh. - Seřadíme tokeny sestupně podle
Pa nalezneme nejmenší prefixS, žeΣ_{t∈S} P(t|h) ≥ p. - Vzorkujeme z distribuce renormalizované na
S:P'(t|h) = P(t|h) / Σ_{u∈S} P(u|h)prot∈S; jinak 0.
Intuice: jádro („nucleus“) představuje nejpravděpodobnější významový souhrn. 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
| Technika | Mechanismus | Adaptivita | Kontrola rizika „off-topic“ | Typické použití |
|---|---|---|---|---|
| Top-k | Ořezává 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řezává podle kumulativní pravděpodobnosti 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ě odřeže chvost.
Algoritmus krok za krokem
- Vypočítejte softmax pravděpodobnosti tokenů (po aplikaci teploty, penalizací opakování apod.).
- Seřaďte tokeny sestupně podle pravděpodobnosti a spočítejte kumulativní součet.
- Nalezněte nejmenší prefix s kumulativní pravděpodobností ≥
p. - Renormalizujte pravděpodobnosti v jádru na 1.
- Vzorkujte jeden token z této ořezané distribuce.
Stabilita: při rovnostech na hranici p je vhodné přidat drobnou stochastiku (tie-breaking) nebo deterministicky preferovat token s vyšší pravděpodobností, aby se zabránilo oscilacím.
Vliv na kvalitu textu: koherence vs. diverzita
- Koherence: nižší
psnižuje riziko „topic driftu“, zkracuje průměrnou délku vět a redukuje slang/idiomy. - Diverzita: vyšší
pzvyšuje lexikální i syntaktickou pestrost, podporuje originální n-gramy. - Opakování: samotné top-p nebrání opakováním; doporučuje se kombinovat 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, méně obsahových 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á generace:
p = 0.88–0.95,T = 0.8–1.0(nižší riziko „code-switchingu“).
Praktické rady pro SEO/AIO/AEO kontext
- Answer-first výstupy: používejte konzervativnější
pa nižšíTpro stabilní úvodní věty a přesné citace. - Variace meta-titles/descr.: zvýšte
po 0.03–0.05 nad základ pro generování divergence bez ztráty tématu. - Snippety a FAQ:
p ≤ 0.9udržuje odpovědi „na kolejích“, důležité pro výpisy v asistentech. - Programatické SEO šablony: u dlouhých chvostů se vyhněte extrémním hodnotá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ání variant při různých
p. - Obchodní: CTR snippetu, čas do informace, míra eskalace; sledujte v A/B testech vůči baseline.
Interakce s dalšími omezeními (safety, styl, délka)
- Bezpečnostní filtry: aplikujte před top-p (logit bias) i po vzorkování (toxicity gating) – dvojitý bezpečnostní pás.
- Stylistické omezení: při striktním stylu (právní text) snižte
paT; při marketingu povolte širší jádro. - Délka: vyšší
pmůže zvyšovat „rozvláčnost“; kontrolujte pomoci stop-pointů (povinné sekce, odrážky).
Hranice a časté chyby
- „Vyšší p je vždy lepší“: ne; nad ~0.97 často narůstá nepřesnost a odbočky.
- „Top-p nahrazuje teplotu“: ne; teplota mění křivku globálně, top-p reguluje chvost adaptivně.
- „Stačí nastavit jednou“: ne; vhodné je kontextové přepínání profilů podle úlohy a jazyka.
Kontextově adaptivní profily
| 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=autoritatívní; CTA guardrails |
| Blogová 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: práh 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ě“
- Začněte konzervativně:
p=0.9,T=0.8, anti-repeat zapnuto. - Otestujte 3–5 variant na 20–50 promtů; měřte distinct-n, faktickou přesnost a lidská hodnocení.
- Podle cíle upravujte
ppo krocích 0.02–0.05; teplotu po 0.05–0.1. - 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šší
pmůže pomoci diverzitě, ale kontrolujte faktickou správnost. - Odborné domény: nižší
pnapomáhá terminologické 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 u asistentů.
- Kontrola atribuce: nižší
pusnadní reprodukovatelné citovatelné věty s identickými kotvami.
Diagnostika problémů
- Halucinace narůstají: snižte
po 0.05 aTo 0.1; posilte retrieval a citace. - Monotónnost textu: zvyšte
po 0.03, uvolněte anti-repeat a přidejte stylistické náznaky. - 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.95ak≤50pro ořezání extrémně dlouhých chvostů. - Co s délkou výstupu? Top-p ovlivňuje lokální volbu tokenu; délku kontrolujte pomocí
max_tokensa sekčních cílů. - Je top-p deterministický? Ne; pro reprodukovatelnost nastavte
random_seeda fixní 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 „volbu 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.



























