Top-p sampling, ook wel nucleus sampling genoemd, is een instelling die bepaalt uit welke woorden een AI-model mag kiezen terwijl het schrijft. Bij top-p 0,9 kiest het model alleen uit de waarschijnlijkste volgende woorden die samen 90% van de kans uitmaken, en slaat het de lange staart van onwaarschijnlijke woorden over. Een lagere waarde geeft voorspelbaardere tekst, een hogere waarde gevarieerdere tekst. OpenAI noemt het een alternatief voor temperature.
Hoe werkt het?
Holtzman e.a. introduceerden nucleus sampling in 2019. Een groot taalmodel schrijft één token tegelijk en geeft bij elke stap elk mogelijk volgend token een kans. Top-p zet de tokens op volgorde van meest naar minst waarschijnlijk, houdt de kleinste groep over waarvan de kansen samen minstens p zijn, schaalt die kansen op zodat ze weer samen 1 zijn, en trekt het volgende token uit die groep. De documentatie van Google geeft een voorbeeld: hebben tokens A, B en C kansen van 0,3, 0,2 en 0,1 en staat top-p op 0,5, dan kiest het model A of B en nooit C.
De groep past zich aan. Volgens Holtzman e.a. telt deze nucleus tussen de één en duizend kandidaat-tokens. Top-k sampling houdt daarentegen altijd een vast aantal k over: als een paar tokens bijna alle kans hebben, laat een grote k onwaarschijnlijke tokens toe, en als veel woorden passen, snijdt een kleine k goede opties weg.
De volgorde met temperature verschilt per systeem. De bibliotheek Transformers van Hugging Face past eerst temperature toe en snijdt daarna af met top-k en top-p (broncode). Google beschrijft Gemini andersom: eerst top-k, dan top-p, en temperature voor de laatste trekking.
Wordt de tekst er beter van?
Bij lange, open tekst wel, in de tests van Holtzman e.a. met GPT-2 Large. Met p = 0,95 kwam nucleus sampling in perplexity het dichtst bij menselijke tekst en scoorde het het hoogst op HUSE, een gecombineerde menselijke en statistische beoordeling. Methoden die altijd de waarschijnlijkste woorden kiezen, zoals greedy decoding en beam search, bleven zichzelf herhalen, en puur samplen ontspoorde in onsamenhangende tekst.
Meer variatie geeft ook meer ruimte voor fouten. Lee e.a. (2022) telden namen en andere entiteiten in gegenereerde tekst die niet in de bron voorkomen, een vorm van hallucinatie. Bij hun model van 530 miljard parameters was met top-p 0,9 33,3% van die entiteiten fout, tegen 20,9% met greedy decoding, dat op zijn beurt veel vaker in herhaling eindigde (15,9% van de teksten tegen 0,1%). Hun factual-nucleus sampling verlaagt p stap voor stap binnen elke zin en zet hem bij de volgende zin terug. Min-p sampling (Nguyen e.a., 2024) legt de grens juist vast ten opzichte van het waarschijnlijkste token.
Welke waarden staan aanbieders toe?
In september 2026 legt de API-referentie van OpenAI uit dat 0,1 betekent dat alleen de tokens in de bovenste 10% van de kansmassa meetellen, en raadt OpenAI aan top_p of temperature aan te passen, niet allebei. Google noemt een standaardwaarde voor top-p van 0,95 voor Gemini. De API-referentie van Anthropic markeert top_p als verouderd: modellen die na Claude Opus 4.6 zijn uitgebracht, accepteren alleen waarden van 0,99 of hoger en weigeren andere met een foutmelding. Transformers van Hugging Face gebruikt standaard greedy search, met top_p op 1,0.
Voorbeeld
Stel: de chatbot van een winkel maakt de zin "We zijn open van maandag tot en met" af. Het model geeft "vrijdag" een kans van 0,6, "zaterdag" 0,3 en "zondag" 0,05, en duizenden andere tokens delen de rest. Bij top-p 0,9 blijven alleen "vrijdag" en "zaterdag" over, want 0,6 plus 0,3 is 0,9; bij top-p 1 houdt ook een vreemd woord een kleine kans. Hoe dan ook kan het model "zaterdag" kiezen terwijl de winkel op vrijdag sluit. Top-p regelt de variatie, dus de echte openingstijden moeten uit de eigen gegevens van de winkel komen, bijvoorbeeld via RAG.
Bronnen
- Holtzman et al.: The Curious Case of Neural Text Degeneration (2019)arXiv
- OpenAI: API reference, Chat CompletionsWeb
- Anthropic: Claude API reference, Create a MessageWeb
- Google: Prompt design strategies (Gemini API docs)Web
- Lee et al.: Factuality Enhanced Language Models for Open-Ended Text Generation (2022)arXiv
- Hugging Face: Generation strategies (Transformers documentation)Web
