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 tokenutpři kontextuh. - Seřadíme tokeny sestupně podle
Pa najdeme nejmenší prefixS, 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)prot∈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
| 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
- Vypočítejte softmaxové pravděpodobnosti tokenů (po aplikaci teploty, penalizací opakování apod.).
- Seřaďte tokeny sestupně podle pravděpodobnosti a kumulujte součet.
- Najděte nejmenší prefix s kumulativní pravděpodobností ≥
p. - Renormalizujte pravděpodobnosti v jádru tak, aby jejich součet byl 1.
- 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žší
psnižuje riziko „odklonu od tématu“, zkracuje průměrnou délku vět a omezuje slang a idiomy. - Diverzita: vyšší
pzvyš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ší
pa nižšíT, abyste zajistili stabilní úvodní věty a správné citace. - Varianty meta titles/descr.: zvýšením
po 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.9udrží 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
paT; u marketingu povolte širší jádro. - Délka: vyšší
pmůž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
| 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“
- Začněte konzervativně:
p=0.9,T=0.8, anti-repeat = zapnuto. - Otestujte 3–5 variant na 20–50 promptech; měřte distinct-n, faktickou přesnost a lidská hodnocení.
- Podle cíle upravujte
ppo krocích 0.02–0.05 a teplotu po 0.05–0.1. - 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šší
pmůže pomoci zvýšit diverzitu, kontrolujte však faktickou přesnost. - Odborné obory: 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).
- Varianty nadpisů a shrnutí: kreativní profil pro fázi „explore“ a testování CTR v asistentech.
- Kontrola atribuce: nižší
pusnadní tvorbu reprodukovatelných, citovatelných vět se stejnými kotvami.
Diagnostika problémů
- Přibývá halucinací: snižte
po 0.05 aTo 0.1; posilte retrieval a citace. - Monotónní text: zvyšte
po 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.95ak≤50pro 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_tokensa cílů pro jednotlivé sekce. - Je top-p deterministický? Ne; pro reprodukovatelnost nastavte
random_seeda 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.
