Top-k sampling (NL)

From Systems analysis Wiki
Jump to navigation Jump to search

Top-k sampling — dit is een stochastische decoderingsmethode die wordt gebruikt in autoregressieve taalmodellen, waaronder grote taalmodellen (LLM), voor het genereren van tekst. Het belangrijkste doel is om de selectie van het volgende token te beperken tot een vast aantal (k) meest waarschijnlijke kandidaten, waardoor het genereren van weinig waarschijnlijke en vaak ongepaste woorden wordt vermeden. Deze methode was een van de eerste verbeteringen op eenvoudige willekeurige sampling en was lange tijd een populaire manier om de coherentie van gegenereerde tekst te verbeteren.

Eenvoudige uitleg

Top-k sampling kan worden voorgesteld als het kiezen van het volgende woord niet uit alle mogelijke opties, maar alleen uit een beperkte lijst van de meest waarschijnlijke.

Bijvoorbeeld, een model maakt de zin «Vandaag buiten viel er zware…» af. In het woordenboek zijn er duizenden vervolgingen: «regen», «wind», «sneeuw», «stortregen» — en ergens ver weg «kwantum» of een willekeurig teken. Zonder beperkingen is tekstgeneratie vatbaar voor verschillende vormen van degeneratie (text degeneration). Maximalisatiemethoden (greedy decoding, beam search) produceren saaie, repetitieve tekst, terwijl pure sampling zonder afkapping het risico loopt in onsamenhangendheid te vervallen door de selectie van weinig waarschijnlijke tokens uit de «onbetrouwbare staart» van de verdeling. Top-k bestrijdt in de eerste plaats dit tweede probleem — door de staart af te snijden vermindert het de kans op betekenisloze vervolgingen, hoewel het op zichzelf geen herhaling elimineert. Top-k zegt: «Neem alleen de k meest waarschijnlijke woorden, vergeet de rest, herbereken de kansen daarbinnen en kies er willekeurig één».

Kort gezegd:

  • het model stelt een lijst op van de meest waarschijnlijke vervolgingen;
  • neemt alleen de eerste k opties;
  • kiest er willekeurig één.

Hoe kleiner k, hoe voorzichtiger en voorspelbaarder het resultaat. Hoe groter k, hoe vrijer en gevarieerder de generatie.

Analogieën:

  • Restaurantmenu: in plaats van willekeurig te kiezen uit 5.000 gerechten (risico op iets oneetbaars) of altijd hetzelfde meest populaire gerecht te nemen (saai), brengt de ober alleen de top-40 aanbevolen gerechten — kies uit een redelijke lijst. Soms kon het juist die bijzondere schotel in het afgekapte deel van het menu zijn die u had aangesproken — dat is de prijs voor voorspelbaarheid.
  • Korte lijst van finalisten: uit 1.000 sollicitanten worden de 40 beste cv's geselecteerd, waarna pas sollicitatiegesprekken plaatsvinden.

Concept en wiskunde

Bij elke stap van tekstgeneratie produceert een standaard taalmodel een kansenverdeling P(x|x1:i1) over het volledige woordenboek V. Top-k sampling wijzigt dit proces als volgt:

  • Selectie van kandidaten: Uit het volledige woordenboek wordt een deelverzameling V(k) geselecteerd, bestaande uit k tokens met de hoogste kansen.
  • Afkapping: De logits (ruwe modelvoorspellingen vóór toepassing van Softmax) van alle tokens die niet in V(k) zijn opgenomen, krijgen de waarde toegewezen, wat na normalisatie een kans geeft die strikt gelijk is aan 0.
  • Herverdeling (normalisatie): De kansen van de resterende k tokens worden geschaald zodat hun nieuwe som gelijk is aan 1.
  • Sampling: Het volgende token wordt willekeurig gekozen uit deze nieuwe, afgekapte verdeling.

Zo introduceert Top-k een harde drempel op het aantal kandidaten: woorden met een kangsrang lager dan k worden nooit geselecteerd.

Invloed van parameter k

  • Kleine k (bijvoorbeeld k=510): Maakt de generatie conservatiever en voorspelbaarder. Het model kiest alleen uit een zeer beperkte set van de meest waarschijnlijke woorden. Dit verhoogt de coherentie, maar kan leiden tot repetitieve en saaie tekst.
  • Grote k (bijvoorbeeld k=50100): Vergroot de diversiteit en creativiteit van de tekst, omdat meer opties in de selectie terechtkomen. Dit verhoogt echter ook het risico op minder relevante of ongepaste tokens.
  • Grensgevallen:
    • k=1: Equivalent aan greedy decoding. Het model kiest altijd het meest waarschijnlijke token.
    • k = woordenboekgrootte: Equivalent aan standaard sampling uit de volledige verdeling, zonder afkapping.

Historische betekenis

Top-k sampling als decoderingsmethode was een van de vroege succesvolle toepassingen in het werk van Angela Fan en haar collega's (2018) «Hierarchical Neural Story Generation», waarbij de auteurs top-k random sampling (met k=10) gebruikten in een systeem voor hiërarchische verhaalsgeneratie en aantoonden dat deze strategie aanzienlijk effectiever is dan beam search en volledige willekeurige sampling, die het risico loopt weinig waarschijnlijke woorden te introduceren.

De sleutelwerk die het probleem van tekstdegeneratie systematisch analyseerde en aantoonde dat truncation-methoden, waaronder top-k, de kwaliteit van de generatie aanzienlijk verbeteren, was het artikel van Holtzman et al. (2019) «The Curious Case of Neural Text Degeneration». Daarbij stelden de auteurs top-p (nucleus sampling) voor als een meer adaptief alternatief voor top-k, en toonden op basis van hun HUSE-metriek aan dat nucleus sampling betere resultaten geeft dan de vergeleken strategieën.

Bijvoorbeeld, in vroege demonstraties en aanbevelingen voor GPT-2 werd de waarde `top_k=40` veelvuldig gebruikt (vermeld in de OpenAI-code als «generally a good value»), wat hielp lange en coherente teksten te genereren.

Vergelijking met andere decoderingsmethoden

Top-k vs. Top-p

Top-k werd in veel opzichten aangevuld en in een aantal taken vervangen door een geavanceerdere methode — Top-p (nucleus) sampling.

  • Het grootste nadeel van Top-k is zijn niet-adaptiviteit. De vaste waarde k houdt geen rekening met de vorm van de kansenverdeling:
    • Wanneer de verdeling scherp is (het model is zeker over enkele tokens), kan Top-k de selectie kunstmatig verbreden door weinig waarschijnlijke kandidaten op te nemen.
    • Wanneer de verdeling vlak is (het model is onzeker en veel tokens hebben vergelijkbare kansen), kan Top-k te vroeg veel geschikte opties afsnijden.
    • Bovendien kapt Top-k de «staart» van de verdeling hard af (tail truncation), waardoor contextrelevante maar zeldzame tokens verloren kunnen gaan — de methode offert potentiële creativiteit op voor samenhang.
  • Top-p daarentegen past de steekproefgrootte dynamisch aan, door tokens te selecteren op basis van hun cumulatieve kans. Dit maakt het flexibeler en betrouwbaarder.
  • In de praktijk worden beide methoden vaak samen gebruikt als opeenvolgende filters: de ene beperkt het aantal kandidaten globaal, de andere verkleint de selectie dynamisch op basis van de modelzekerheid. De exacte volgorde van toepassing hangt af van de implementatie van het specifieke framework.

Top-k vs. Temperatuur

  • Temperatuur verandert de vorm van de gehele kansenverdeling, maar kapt geen tokens af. Het beïnvloedt de relatieve kansen van alle kandidaten.
  • Top-k introduceert harde afkapping, waarbij tokens buiten de top-k volledig worden uitgesloten.

In de praktijk kan Top-k samen met temperatuur en Top-p worden gebruikt. De exacte volgorde van filtertoepassing hangt af van het framework: in Hugging Face Transformers ziet de pipeline er bijvoorbeeld uit als Temperatuur → Top-k → Top-p, dat wil zeggen dat temperatuur eerst de logits schaalt (l=l/τ), vervolgens kapt Top-k de lange «staart» van overbodige tokens af, en daarna verkleint Top-p de selectie dynamisch afhankelijk van de modelzekerheid. Afzonderlijke stappen kunnen worden overgeslagen afhankelijk van de instellingen: als top_k=0, wordt de Top-k-stap niet toegepast; als top_p=1.0, wordt de Top-p-stap niet toegepast.

Praktische toepassing

Ondanks dat Top-p een meer adaptieve methode is en vaak wordt gebruikt als standaard voor open tekstgeneratie, bestaat er geen universeel beste decoderingsmethode — de optimale keuze hangt af van de taak, het model en de prioriteiten (kwaliteit, snelheid, robuustheid). Top-k blijft een breed ondersteunde parameter in alle belangrijke frameworks (Hugging Face Transformers, vLLM en andere) en wordt actief gebruikt, zowel zelfstandig als in combinatie met andere methoden.

  • Typische waarden: In de praktijk worden vaak waarden van k in de orde van tientallen tokens gebruikt (bijvoorbeeld 10, 40, 50), maar het optimum hangt af van het model en de taak.
  • Aanbevelingen: Voor open tekstgeneratie heeft Top-p vaak de voorkeur. Als Top-k wordt gebruikt, dient het te worden gecombineerd met een gematigde temperatuur en de waarde k zorgvuldig te worden afgestemd op de specifieke taak. Top-k is ook handig als extra «veiligheidsklep» bij een hoge temperatuur.
  • Opmerking: In frameworks kan Top-k worden gecombineerd met Repetition Penalty (straf voor herhalingen) en de parameter no_repeat_ngram_size om te voorkomen dat het model blijft hangen op dezelfde woorden uit de top-k-lijst.

Literatuur

Fundamentele werken

  • 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).

Aanvullende literatuur

  • 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.

Zie ook

  • Grote taalmodellen