Čo je top-p (nucleus) sampling a prečo na ňom záleží
Top-p (nazývaný aj nucleus sampling) je stochastická dekódovacia stratégia pre generatívne jazykové modely, ktorá v každom kroku výberu ďalšieho tokenu obmedzí kandidátov na najmenšiu množinu slovnej zásoby, ktorej kumulatívna pravdepodobnosť dosiahne prah p (napr. 0.9). Zvyšné tokeny (súčet < p) sú „orezané“. Namiesto fixného počtu kandidátov (ako top-k) tak top-p adaptívne reaguje na tvar distribúcie: pri „ostrej“ (peaked) distribúcii je jadro malé, pri „plochej“ (diffuse) väčšie.
Formálna definícia a intuícia
- Nech
P(t|h)je softmax pravdepodobnosť tokenutpri kontexteh. - Zoradíme tokeny zostupne podľa
Pa nájdeme najmenší prefixS, žeΣ_{t∈S} P(t|h) ≥ p. - Vzorkujeme z distribúcie renormalizovanej na
S:P'(t|h) = P(t|h) / Σ_{u∈S} P(u|h)pret∈S; inak 0.
Intuícia: jadro („nucleus“) predstavuje najpravdepodobnejší významový masív. Vysoké p → širšie jadro (viac kreativity), nízke p → užšie jadro (viac deterministický výstup).
Porovnanie s top-k a teplotou
| Technika | Mechanizmus | Adaptivita | Kontrola rizika „off-topic“ | Typické použitie |
|---|---|---|---|---|
| Top-k | Rezne na k naj tokenov | Nízka (fixné k) | Dobrá pri malom k | Chat, kód, konzervatívne texty |
| Top-p | Rezne na kumulatívnu pravdepodobnosť p | Vysoká (mení sa podľa distribúcie) | Vyvážená | Kreatívne, viacjazyčné, dlhé výstupy |
| Teplota T | Globálne „zploštenie“ logitov | Stredná (na celé rozdelenie) | Citlivé na nastavenie | Ladenie variability pri fixnom top-p/k |
V praxi sa top-p často kombinuje s teplotou: logits/T upravia tvar distribúcie a top-p následne adaptívne vyreže chvost.
Algoritmus krok za krokom
- Vypočítajte softmax pravdepodobnosti tokenov (po aplikovaní teploty, penalizácií opakovania a pod.).
- Zoradíte tokeny zostupne podľa pravdepodobnosti a kumulujete súčet.
- Nájdete najmenší prefix s kumulatívom ≥
p. - Renormalizujete pravdepodobnosti v jadre na 1.
- Vzorkujete jeden token z tejto prerezanej distribúcie.
Stabilitná poznámka: pri rovnostiach na hranici p je dobré pridať drobnú stochastiku (tie-breaking) alebo deterministicky preferovať vyšší pravdepodobnostný token, aby ste predišli osciláciám.
Vplyv na kvalitu textu: koherencia vs. diverzita
- Koherencia: nižšie
pznižuje riziko „topic driftu“, skracuje strednú dĺžku viet a redukuje slang/idiomy. - Diverzita: vyššie
pzvyšuje lexikálnu aj syntaktickú pestrosť, podporuje originálne n-gramy. - Opakovania: samotné top-p nebráni repetíciám; kombinujte s penalizáciou opakovania (napr.
repetition_penalty,no_repeat_ngram_size).
Odporúčané rozsahy a predvolené nastavenia
- Presné/informačné odpovede:
p = 0.80–0.92,T = 0.7–0.9, opakovací penalty mierny. - Kreatívne písanie:
p = 0.90–0.97,T = 0.9–1.1, menšie obsahové obmedzenia. - Kód a štruktúrovaný text:
p = 0.70–0.90,T = 0.2–0.8, silnejšie anti-repeat pravidlá. - Viacjazyčné generovanie:
p = 0.88–0.95,T = 0.8–1.0(nižšie riziko „code-switchingu“).
Praktické rady pre SEO/AIO/AEO kontext
- Answer-first výstupy: používajte konzervatívnejšie
pa nižšiuTpre stabilné lead-vety a správne citácie. - Variácie meta-titles/descr.: zvýšte
po 0.03–0.05 nad baseline na generovanie diverzity bez straty témy. - Snippety a FAQ:
p ≤ 0.9udrží odpovede „na koľajniciach“, dôležité pre extrakty v odpovediach asistentov. - Programmatic SEO šablóny: pri dlhom chvoste sa vyhnite extrémom; kombinujte top-p s pravidlovým templatingom.
Kalibrácia a metriky kvality
- Automatické: per-token entropia, distinct-n (unikátne n-gramy), self-BLEU (medzi variantmi), repetičné skóre.
- Ľudské: zrozumiteľnosť, faktická presnosť, „on-brand“ tón; hodnotiace škály 1–5, párové porovnávanie variantov pri rôznych
p. - Biznis: CTR snippetu, čas do informácie, miera eskalácie; trackujte v A/B testoch proti baseline.
Interakcia s ďalšími obmedzeniami (safety, štýl, dĺžka)
- Bezpečnostné filtre: priraďujte ich pred top-p (logit bias) aj po vzorkovaní (toxicity gating) – dvojitý pás.
- Štylistické constrainty: pri striktnom štýle (právny text) znížte
paT; pri marketingu povoľte širšie jadro. - Dĺžka: vyššie
pmôže zvyšovať „rambling“; kontrolujte cez stoppointy (povinné sekcie, odrážky).
Hranice a časté omyly
- „Vyššie p je vždy lepšie“: nie; nad ~0.97 často rastie nepresnosť a tangenty.
- „Top-p nahrádza teplotu“: nie; teplota mení krivku globálne, top-p reguluje chvost adaptívne.
- „Stačí raz nastaviť“: nie; rozumné je kontextové prepínanie profilov podľa úlohy a jazyka.
Kontextovo adaptívne profily
| Scenár | p | T | Ďalšie nastavenia |
|---|---|---|---|
| Lexikón/definície | 0.85 | 0.7 | no-repeat-bigram=2; cite-first |
| Produktové karty | 0.88 | 0.8 | tone=autoritatívny; CTA guardrails |
| Blog kreatíva | 0.94 | 0.95 | diversity-penalty=ľahký |
| Kódové ukážky | 0.80 | 0.4 | no-repeat-ngram=3; syntax checker |
Implementačné poznámky (pseudokód bez <pre> blokov)
# logits: vektor skóre; T: teplota; p: jadrový prah
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]
Ladenie v praxi: postup „od konzervy ku kreativite“
- Začnite konzervatívne:
p=0.9,T=0.8, anti-repeat = zapnutý. - Otestujte 3–5 variantov na 20–50 promptoch; merajte distinct-n, faktickosť a ľudské hodnotenia.
- Podľa cieľa upravte
ppo krokoch 0.02–0.05; teplotu po 0.05–0.1. - Zamknite profil pre daný typ obsahu; sledujte metriky v A/B.
Vplyv jazyka a domény
- Menej zdrojov (low-resource) jazyky: mierne vyššie
pmôže pomôcť diverzite, ale kontrolujte faktickosť. - Odborné domény: nižšie
pnapomáha terminologickej konzistencii; pridajte terminologické slovníky a logit bias.
Prepojenie s optimalizáciou webov pre LLM (AIO/AEO)
- Stabilné jadro textu: konzervatívny profil pre sekcie, ktoré budú modely často citovať (definície, metodiky).
- Variácie nadpisov a zhrnutí: kreatívny profil pre „explore“ fázu a testovanie CTR v asistentoch.
- Kontrola atribúcie: nižšie
puľahčí reprodukovateľné citovateľné vety s identickými kotvami.
Diagnostika problémov
- Hallucinácie stúpajú: znížte
po 0.05 aTo 0.1; posilnite retrieval a citácie. - Monotónnosť textu: zvýšte
po 0.03, uvoľnite anti-repeat a pridajte štylistické hinty. - Topic drift v dlhých výstupoch: zavádzajte sekčné „reset“ prompty a medzititulky; držte
p ≤ 0.92.
FAQ pre rozhodovanie
- Má zmysel kombinovať top-p a top-k? Áno, najmä ako „poistku“: napr.
p=0.95ak≤50na odrezanie extrémne dlhých chvostov. - Čo s dĺžkou výstupu? Top-p ovplyvňuje lokálnu voľbu tokenu; dĺžku kontrolujte cez
max_tokensa sekčné ciele. - Je top-p deterministický? Nie; pre reprodukovateľnosť nastavte
random_seeda fixný deterministický tie-break.
Top-p (nucleus) sampling je praktický, adaptívny mechanizmus na vyváženie koherencie a kreativity. V optimalizácii pre ChatGPT/LLM, AIO/AEO a moderné SEO umožňuje riadiť „výber slov“ tak, aby odpovede boli konzistentné, citovateľné a zároveň dostatočne rozmanité pre testovanie variantov. Kombináciou s teplotou, penalizáciami opakovania a retrievalom získate robustný dekódovací profil, ktorý sa dá škálovať naprieč typmi obsahu a jazykmi.