Top-k sampling (SV)
Top-k-sampling är en stokastisk avkodningsmetod som används i autoregressiva språkmodeller, inklusive stora språkmodeller (LLM), för textgenerering. Dess huvudsakliga syfte är att begränsa urvalet av nästa token till ett fast antal () av de mest sannolika kandidaterna, vilket gör det möjligt att undvika generering av osannolika och ofta olämpliga ord. Denna metod var en av de första förbättringarna av enkel slumpmässig sampling och har länge varit ett populärt sätt att förbättra koherensen i genererad text.
Enkel förklaring
Top-k-sampling kan förstås som att välja nästa ord inte från alla möjliga alternativ, utan bara från en begränsad lista med de mest sannolika.
Till exempel kompletterar modellen frasen "Idag ute regnade det starkt…". I dess ordförråd finns tusentals fortsättningar: "regn", "vind", "snö", "störtregn" — och någonstans långt bort "kvantum" eller ett slumpmässigt tecken. Utan begränsningar är textgenerering utsatt för olika former av degradering (text degeneration). Maximeringsmetoder (greedy decoding, beam search) producerar tråkig, repetitiv text, medan ren sampling utan trunkering riskerar att bli osammanhängande på grund av valet av osannolika tokens från distributionens "opålitliga svans". Top-k bekämpar i första hand just det andra problemet — genom att skära bort svansen minskar den risken för meningslösa fortsättningar, även om den i sig inte eliminerar upprepning. Top-k säger: "Ta bara av de mest sannolika orden, glöm resten, beräkna om sannolikheterna bland dem och välj ett slumpmässigt".
Enkelt uttryckt:
- modellen sätter samman en lista över de mest sannolika fortsättningarna;
- tar bara de första alternativen;
- väljer slumpmässigt ett av dem.
Ju mindre , desto försiktigare och mer förutsägbart blir resultatet. Ju större , desto friare och mer varierad blir genereringen.
Analogier:
- Restaurangmeny: Istället för att slumpmässigt välja från 5 000 rätter (risk att få något oätligt) eller alltid beställa samma populäraste rätt (tråkigt) tar servitören bara fram topp-40 rekommenderade rätter — välj från en rimlig lista. Det händer dock att just den ovanliga rätten du skulle ha gillat finns i den bortklippta delen av menyn — det är priset för förutsägbarhet.
- Kort lista med finalister: Av 1 000 jobbsökande behålls de 40 bästa CV:n, och sedan genomförs intervjuer.
Koncept och matematik
Vid varje steg i textgenereringen producerar en standardspråkmodell en sannolikhetsfördelning över hela ordförrådet . Top-k-sampling modifierar denna process på följande sätt:
- Urval av kandidater: Från hela ordförrådet väljs en delmängd bestående av tokens med de högsta sannolikheterna.
- Avskärning: Logits (modellens råa prediktioner innan Softmax tillämpas) för alla tokens som inte ingår i tilldelas värdet , vilket efter normalisering ger en sannolikhet som är exakt 0.
- Omfördelning (normalisering): Sannolikheterna för de återstående tokens skalas så att deras nya summa är lika med 1.
- Urval: Nästa token väljs slumpmässigt från denna nya, trunkerade fördelning.
Sålunda inför Top-k ett hårt tröskelvärde baserat på antal kandidater: ord med sannolikhetsrang lägre än kommer aldrig att väljas.
Påverkan av parametern
- Litet (t.ex. – ): Gör genereringen mer konservativ och förutsägbar. Modellen väljer bara från en mycket begränsad uppsättning av de mest sannolika orden. Detta förbättrar koherensen men kan leda till repetitiv och tråkig text.
- Stort (t.ex. – ): Ökar textens mångfald och kreativitet, eftersom fler alternativ inkluderas i urvalet. Detta ökar dock även risken för att mindre relevanta eller olämpliga tokens inkluderas.
- Gränsfall:
- : Motsvarar greedy decoding. Modellen väljer alltid den mest sannolika token.
- = ordförrådets storlek: Motsvarar standard-sampling från den fullständiga fördelningen, utan avskärning.
Historisk betydelse
Top-k-sampling som avkodningsmetod var en av de tidiga framgångsrika tillämpningarna i Angela Fans och hennes kollegors arbete (2018) "Hierarchical Neural Story Generation", där författarna använde top-k random sampling (med ) i ett system för hierarkisk berättelsegenerering och visade att denna strategi är väsentligt effektivare än beam search och fullständig slumpmässig sampling, som riskerar att introducera osannolika ord.
Den nyckelreferens som systematiskt analyserade problemet med textdegradation och visade att trunkeringsmetoder, inklusive top-k, avsevärt förbättrar genereringskvaliteten, var dock artikeln av Holtzman m.fl. (2019) "The Curious Case of Neural Text Degeneration". Där föreslog författarna top-p (nucleus sampling) som ett mer adaptivt alternativ till top-k, och visade med sitt HUSE-mått att nucleus sampling ger bättre resultat bland de jämförda strategierna.
Till exempel användes värdet `top_k=40` i stor utsträckning i tidiga demonstrationer och rekommendationer för GPT-2 (det nämns i OpenAIs kod som "generally a good value"), vilket hjälpte till att generera långa och koherenta texter.
Jämförelse med andra avkodningsmetoder
Top-k vs. Top-p
Top-k har i stor utsträckning kompletterats, och i vissa uppgifter ersatts, av den mer avancerade metoden Top-p (nucleus) sampling.
- Huvudnackdelen med Top-k är dess icke-adaptivitet. Det fasta värdet tar inte hänsyn till sannolikhetsfördelningens form:
- När fördelningen är spetsig (modellen är säker på ett fåtal tokens) kan Top-k artificiellt utvidga urvalet och inkludera osannolika kandidater.
- När fördelningen är platt (modellen är osäker och många tokens har liknande sannolikhet) kan Top-k i förtid skära bort många lämpliga alternativ.
- Dessutom skär Top-k hårt av distributionens "svans" (tail truncation), varför kontextuellt lämpliga men sällsynta tokens kan gå förlorade — metoden offrar potentiell kreativitet för sammanhang.
- Top-p, däremot, anpassar dynamiskt urvalets storlek genom att välja tokens baserat på deras kumulativa sannolikhet. Detta gör det mer flexibelt och tillförlitligt.
- I praktiken används båda metoderna ofta tillsammans som sekventiella filter: den ena begränsar grovt antalet kandidater, den andra begränsar dynamiskt urvalet baserat på modellens säkerhet. Den exakta ordningen för deras tillämpning beror på implementationen i det specifika ramverket.
Top-k vs. Temperatur
- Temperatur ändrar formen på hela sannolikhetsfördelningen men skär inte av tokens. Den påverkar de relativa sannolikheterna för alla kandidater.
- Top-k inför ett hårt avskärningströskel som fullständigt utesluter tokens utanför topp-.
I praktiken kan Top-k användas tillsammans med temperatur och Top-p. Den exakta ordningen för filtrens tillämpning beror på ramverket: i Hugging Face Transformers ser konvejern ut som Temperatur → Top-k → Top-p, det vill säga att temperaturen först skalas logits (), sedan skär Top-k av den långa "svansen" av skräp-tokens, och därefter begränsar Top-p dynamiskt urvalet beroende på modellens säkerhet. Enskilda steg kan hoppas över beroende på inställningarna: om tillämpas inte Top-k-steget; om tillämpas inte Top-p-steget.
Praktisk tillämpning
Trots att Top-p är en mer adaptiv metod och ofta används som standard för öppen textgenerering finns det ingen universellt bästa avkodningsmetod — det optimala valet beror på uppgiften, modellen och prioriteringarna (kvalitet, hastighet, robusthet). Top-k förblir en brett stödd parameter i alla större ramverk (Hugging Face Transformers, vLLM m.fl.) och används aktivt både självständigt och i kombination med andra metoder.
- Typiska värden: I praktiken används ofta värden för i storleksordningen tiotals tokens (t.ex. 10, 40, 50), men optimum beror på modellen och uppgiften.
- Rekommendationer: För öppen textgenerering föredras ofta Top-p. Om Top-k används bör det kombineras med en måttlig temperatur och värdet bör noggrant anpassas till den specifika uppgiften. Top-k är också praktiskt som ett extra "säkerhetsskydd" vid hög temperatur.
- Notering: I ramverk kan Top-k kombineras med Repetition Penalty (straff för upprepningar) och parametern
no_repeat_ngram_sizeför att förhindra att modellen fastnar i samma ord från topp--listan.
Litteratur
Grundläggande arbeten
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. ACL Anthology. arXiv:1805.04833.
- Holtzman, A. et al. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751 (ICLR 2020).
- Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o (ICLR 2024).
Vidare läsning
- Meister, C. et al. (2022). Locally Typical Sampling. arXiv:2202.00666 (TACL 2023).
- Su, Y.; Lan, T.; Wang, Y.; Yogatama, D.; Kong, L.; Collier, N. (2022). A Contrastive Framework for Neural Text Generation. arXiv:2202.06417 (NeurIPS 2022).
- O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. ACL Anthology. arXiv:2402.06925.
- Ravfogel, S.; Goldberg, Y.; Goldberger, J. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
- Chen, S. J. et al. (2024). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968 (ICLR 2025).
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
Se även
- Stora språkmodeller