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 tokenutv kontextuh. - Seřadíme tokeny sestupně podle
Pa najdeme 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ý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
| 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
- Vypočítejte softmax pravděpodobnosti tokenů (po aplikaci teploty, penalizací opakování apod.).
- Seřaďte tokeny sestupně podle pravděpodobnosti a akumulujte jejich součet.
- Najděte nejmenší prefix s kumulativní pravděpodobností ≥
p. - Renormalizujte pravděpodobnosti v jádru tak, aby daly součet 1.
- 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žší
psnižuje riziko „topic driftu“, zkracuje průměrnou délku vět a redukuje slang či idiomy. - Diverzita: vyšší
pzvyš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ší
pa nižšíTpro stabilní úvodní věty a správné citace. - Variace meta-nadpisů/popisků: zvýšte
po 0,03–0,05 nad baseline pro generování diverzity bez ztráty tématu. - Snippety a FAQ:
p ≤ 0.9udrží 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
paT; při marketingu povolte širší jádro. - Délka: vyšší
pmůž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
| 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ě“
- Začněte konzervativně:
p=0.9,T=0.8, anti-repeat zapnutý. - Otestujte 3–5 variant na 20–50 promtů; měřte distinct-n, faktickou správnost 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 napomoci diverzitě, ale kontrolujte faktickou správnost. - Odborné domény: nižší
ppodporuje 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žší
pusnadní reprodukovatelné citovatelné věty se stejnými kotvami.
Diagnostika problémů
- Zvýšené halucinace: snižte
po 0.05 aTo 0.1; posilte retrieval a citace. - Monotónnost textu: zvyšte
po 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.95ak≤50na 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_tokensa sekčních cílů. - Je top-p deterministický? Ne; pro reprodukovatelnost nastavte
random_seeda 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.



























