Wat je hiervoor moet weten
Dit artikel valt onder Module 2 (Gebruiken & sturen) van het leerpad over grote taalmodellen. Om het mechanisme achter stuurparameters ten volle te begrijpen, helpt het als je bekend bent met hoe een model woorden verwerkt. Lees vooraf de uitleg over tokenisatie van tekst om te zien hoe woorden worden omgezet in getallen. Als je al een globaal overzicht wilt van alle instellingen, kun je de gids over sampling-parameters raadplegen.
Wanneer een groot taalmodel (LLM) tekst genereert, gebeurt dat niet door in één keer een hele zin te bedenken. Het model voorspelt stap voor stap het meest waarschijnlijke volgende element. Dit basiselement noemen we een token. Maar hoe kiest het model welk token er daadwerkelijk uit de lijst met tienduizenden kandidaten wordt geselecteerd? Dit selectieproces wordt aangestuurd door zogenaamde sampling-parameters. De twee belangrijkste en meest gebruikte parameters in dit proces zijn temperature en top-p (ook wel nucleus sampling genoemd).
Veel gebruikers van AI-modellen veranderen deze knoppen op gevoel of laten ze op de standaardwaarden staan. Toch bepaalt de juiste instelling van temperature en top-p het verschil tussen een strak, feitelijk rapport en een creatieve, meeslepende verhaallijn. In dit uitgebreide artikel ontleden we de exacte wiskundige en logische werking van beide parameters, laten we zien hoe ze elkaar beïnvloeden en geven we concrete richtlijnen voor ontwikkelaars en prompt engineers.
De wiskundige basis: van logits naar waarschijnlijkheden
Om te begrijpen wat temperature en top-p doen, moeten we een stap terug doen naar het moment waarop het neurale netwerk zijn berekening afrondt. Aan het einde van een voorwaartse rekenstap (de zogenaamde forward pass) levert de laatste laag van het netwerk een lijst met ongestructureerde getallen op voor elk token in het vocabulaire. Deze ongestructureerde waarden noemen we logits.
Een typisch vocabulaire van een modern taalmodel bevat tussen de 32.000 en 128.000 unieke tokens. Voor elk van deze tokens genereert het model een specifieke logit-waarde. Een hogere logit betekent dat het model op basis van zijn training en de gegeven context van mening is dat dit token beter aansluit op de voorafgaande tekst. Logits zijn echter nog geen waarschijnlijkheden; het kunnen negatieve getallen zijn, ze tellen niet op tot 100%, en hun onderlinge schaal is arbitrair.
Om van logits een bruikbare kansverdeling te maken, past het systeem de softmax-functie toe. De softmax-functie neemt alle logits, verheft ze tot de e-macht (waardoor alle waarden positief worden), en deelt elk resultaat door de som van alle e-machten. Het resultaat is een nette kansverdeling: alle waarden liggen tussen 0 en 1, en de som van alle tokenkansen is precies gelijk aan 1 (of 100%).
Als we puur het token met de allerhoogste kans zouden kiezen, spreken we van greedy decoding. Hoewel greedy decoding werkt voor eenvoudige taken, leidt het bij langere teksten vaak tot saaie, repetitieve en onnatuurlijke zinnen. Om de gegenereerde tekst menselijker, gevarieerder en aanpasbaar te maken, voeren we stochastische steekproeven (sampling) uit. En exact bij de transformatie van logits naar kansen grijpen temperature en top-p in.
Wat doet Temperature precies met de kansverdeling?
De parameter temperature (aangeduid als T) is een positief getal dat rechtstreeks wordt toegepast op de logits vóórdat de softmax-functie wordt berekend. Formeel wordt elke logit z_i gedeeld door de temperatuurwaarde T:
aangepaste_logit = z_i / T
Door de logits te delen door T, verandert de relatieve afstand tussen de logits voordat ze de exponentiële transformatie in de softmax doorlopen. Dit heeft dramatische gevolgen voor de uiteindelijke kansverdeling:
- T = 1.0 (Standaard): De logits worden ongewijzigd doorgegeven aan de softmax-functie. De kansverdeling weerspiegelt exact wat het model op basis van zijn trainingsdata heeft geleerd.
- Lage temperature (bijv. T = 0.1 tot 0.3): Doordat we delen door een klein getal, worden alle logits sterk uitvergroot. De verschillen tussen hoge en lage logits worden gigantisch. Na de softmax-functie krijgt het token met de hoogste logit een kans die dicht bij de 100% ligt, terwijl minder waarschijnlijke tokens naar vrijwel 0% worden gedrukt. De kansverdeling wordt heel 'spits' (peaked). Het model wordt extreem voorspelbaar, deterministisch en consistent.
- Hoge temperature (bijv. T = 1.2 tot 1.8): Doordat we delen door een groot getal, worden de verschillen tussen de logits juist afgevlakt. De kansverdeling wordt veel 'vlakker' (uniformer). Tokens die normaal een hele kleine kans hadden, krijgen nu een reële kans om gekozen te worden. Dit leidt tot meer creativiteit en variatie, maar bij te hoge waarden ook tot onsamenhangende wartaal.
- T = 0.0: Wiskundig gezien is delen door nul onmogelijk, maar in de praktijk schakelt een instelling van 0.0 de sampling volledig uit. Het model voert strikt greedy decoding uit en pakt altijd het absolute top-token.
Stel dat een model na de context "De hoofdstad van Frankrijk is" de volgende top-tokens overweegt met hun ruwe logits:
| Token | Ruwe Logit | Kans bij T = 1.0 | Kans bij T = 0.2 | Kans bij T = 1.5 |
|---|---|---|---|---|
| Parijs | 10.0 | 88.0% | 99.9% | 55.0% |
| een | 7.5 | 7.2% | 0.08% | 21.0% |
| niet | 6.0 | 1.6% | 0.001% | 10.0% |
| Londen | 5.0 | 0.6% | 0.000% | 5.1% |
Uit de tabel blijkt duidelijk hoe een lage temperature de dominante optie "Parijs" vrijwel gegarandeerd maakt, terwijl een hoge temperature de deur opzet voor foutieve of ongewone vervolgen zoals "Londen".
Hoe werkt Top-p (Nucleus Sampling) en wat maakt het anders?
Hoewel temperature erg effectief is om tekst creatiever of strakker te maken, kent het een belangrijk nadeel. Bij een hoge temperature krijgen álle tokens in het vocabulaire een grotere kans — dus ook tokens die inhoudelijk nergens op slaan of grammaticaal onjuist zijn. Hier komt top-p (waarbij de 'p' staat voor probability) om de hoek kijken.
Top-p sampling, in 2019 geïntroduceerd door Holtzman et al. onder de naam nucleus sampling, werkt niet door de kansen zelf te veranderen, maar door de lijst van kiesbare tokens dynamisch af te snijden. Het algoritme werkt volgens de volgende stappen:
- Het model berekent de kansverdeling over alle tokens in het vocabulaire (na eventuele temperature-schaling).
- De tokens worden gesorteerd op volgorde van hoogste naar laagste kans.
- Het algoritme telt de kansen van de tokens vanaf de top bij elkaar op (de cumulatieve waarschijnlijkheid).
- Zodra de cumulatieve som de ingestelde drempelwaarde p bereikt of overschrijdt, snijdt het algoritme de lijst af. Alle tokens die onder de streep vallen worden verworpen.
- De overgebleven top-tokens (de 'nucleus' of kern) worden opnieuw genormaliseerd zodat hun kansen samen weer 100% vormen. Uit deze kleine verzameling wordt willekeurig een token gekozen op basis van hun relatieve kans.
Het cruciale voordeel van top-p is dat het aantal kandidaten dynamisch verandert afhankelijk van de context en de onzekerheid van het model:
Als het model heel zeker is van zijn zaak (bijvoorbeeld bij het invullen van een bekend spreekwoord), heeft het bovenste token al een kans van 92%. Bij een top-p instelling van 0.9 (90%) bevat de selectielijst slechts 1 enkel token. Het model kan dan geen foutieve afslag nemen.
Is de context daarentegen open en creatief (bijvoorbeeld "Er was eens een oude man in een..."), dan is de kansverdeling erg plat. Het beste token heeft misschien slechts een kans van 12%. Om een cumulatieve kans van 90% te bereiken, moet het algoritme wel 40 of 50 verschillende tokens in de selectie opnemen. Het model krijgt zo alle ruimte voor variatie, zonder dat het echt bizarre of onlogische tokens kiest die buiten de top 90% vallen.
Temperature versus Top-p: Het fundamentele verschil in werking
Om het verschil tussen beide methoden scherp te krijgen, kunnen we kijken naar de manier waarop ze de keuzeruimte van het model transformeren:
- Temperature veranderd de vorm van de kansverdeling. Het maakt de pieken steiler of platter. Alle tokens blijven in principe meedoen, maar hun relatieve gewichten verschuiven.
- Top-p verandert de grootte van de kandidatenlijst. Het laat de onderlinge verhoudingen van de beste tokens intact, maar trekt een harde grens op basis van de cumulatieve massa en gooit de 'lange staart' van slechte opties definitief weg.
Zie temperature als een versterker die het ruisniveau in het hele systeem aanpast, terwijl top-p werkt als een intelligent filter dat rommel op de achtergrond afsnijdt ongeacht het volume.
De combinatie van Temperature en Top-p: Volgorde en interactie
In vrijwel alle bekende API's en Inference Engines (zoals OpenAI, Anthropic, vLLM en Ollama) kun je zowel temperature als top-p tegelijk instellen. Maar hoe werken ze samen en in welke volgorde worden ze toegepast?
De standaardpijplijn in bijna alle software-architecturen verlopen in deze exacte volgorde:
- Logit-generatie: Het model levert de ruwe logits af.
- Temperature-schaling: De logits worden gedeeld door T. Dit vervormt de verdeling.
- Softmax: De geschaalde logits worden omgezet in absolute waarschijnlijkheden.
- Top-p afsnijding: De tokens worden gesorteerd en de cumulatieve som bepaalt welke tokens bewaard blijven.
- Hernenormalisatie & Sampling: De overgebleven kandidaten worden opnieuw geschaald en er wordt een definitieve keuze gemaakt.
Doordat temperature vóór top-p wordt toegepast, heeft de instelling van temperature invloed op hoeveel tokens er binnen de top-p drempel vallen! Als je de temperature erg laag zet (bijv. 0.2), worden de top-kansen zo groot dat de cumulatieve grens van top-p = 0.9 al na 1 of 2 tokens wordt bereikt. De top-p instelling heeft op dat moment vrijwel geen effect meer.
Omgekeerd, als je de temperature erg hoog zet (bijv. 1.5), wordt de verdeling zo plat dat er tientallen extra tokens nodig zijn om de top-p grens te halen. In dat geval fungeert top-p als een cruciale veiligheidsgordel die voorkomt dat het model volstrekte onzin kiest.
Praktijkscenario's en concrete instellingen per casus
Afhankelijk van de taak die je het LLM wilt laten uitvoeren, kies je een specifieke combinatie van instellingen. Hieronder vind je een overzicht van beproefde configuraties voor uiteenlopende toepassingen.
1. Feitelijke taken, JSON-output en code-generatie
Bij het schrijven van broncode, het parseren van gegevens of het beantwoorden van feitelijke vragen is variatie een nadeel. Eén verkeerd gekozen karakter kan een JSON-structuur breken of een syntactische fout in Python veroorzaken.
- Temperature: 0.0 tot 0.2
- Top-p: 0.1 tot 0.5 (of uitgeschakeld laten op 1.0)
- Doel: Maximale precisie, hoge consistentie en strikte naleving van de instructies.
2. Samenvatten, klantenservice en zakelijke correspondentie
Voor het samenvatten van artikelen of het formuleren van professionele e-mails wil je dat de tekst natuurlijk en vloeiend klinkt, maar de inhoud moet strak binnen de grenzen van de brontekst blijven om fouten te voorkomen.
- Temperature: 0.3 tot 0.5
- Top-p: 0.7 tot 0.85
- Doel: Een goede balans tussen natuurlijke taalbeheersing en inhoudelijke betrouwbaarheid. Om dit in je eigen lokale omgeving in te stellen, kun je bijvoorbeeld een Ollama Modelfile aanpassen met specifieke parameters zodat deze instellingen standaard gelden voor jouw model.
3. Brainstormen, creatief schrijven en marketingteksten
Als je op zoek bent naar originele invalshoeken, slogans, verhaallijnen of verrassende metaforen, wil je dat het model van de gebaande paden afwijkt.
- Temperature: 0.7 tot 1.0
- Top-p: 0.9 tot 0.95
- Doel: Maximale diversiteit en verrassende tokenkeuzes zonder dat de grammaticale structuur van de taal overboord wordt gegooid. Wanneer je bij creatieve opdrachten de temperature te ver opschroeft, neemt het risico op foute informatie toe; lees daarover meer in het artikel om hallucinaties bij LLM's te begrijpen en te beperken.
| Toepassing | Aanbevolen Temperature | Aanbevolen Top-p | Karakteristiek van de output |
|---|---|---|---|
| Code & Wiskunde | 0.0 – 0.1 | 0.1 – 0.3 | Extreem strikt, voorspelbaar, feitelijk |
| Data-extractie / JSON | 0.0 | 1.0 | Geen variatie, volgt schema exact |
| RAG & Kennisvragen | 0.2 – 0.4 | 0.7 – 0.8 | Betrouwbaar, blijft bij de bron |
| Vertalingen | 0.3 – 0.5 | 0.8 – 0.9 | Correcte grammatica, vloeiende stijl |
| Creatief schrijven | 0.8 – 1.1 | 0.9 – 0.95 | Rijk taalgebruik, verrassend, gevarieerd |
De invloed van sampling op betrouwbaarheid, consistentie en determinisme
Een veelvoorkomend misverstand bij softwareontwikkelaars is de gedachte dat een instelling van temperature = 0.0 gegarandeerd 100% identieke antwoorden oplevert bij elke API-call. Hoewel een temperatuur van nul het sampling-proces deterministisch maakt (het pakt immers altijd de hoogste logit), spelen er in moderne LLM-infrastructuur meer factoren mee.
Door het parallel verwerken van rekenoperaties op GPU's (floating-point afrondingsverschillen bij CUDA-threads) en technieken zoals Mixture-of-Experts (MoE) of speculatieve decoding, kunnen de ruwe logits per run heel licht afwijken. Als twee top-tokens een vrijwel gelijke logit hebben (bijv. 8.000001 versus 8.000002), kan deze minuscule floating-point variatie er alsnog voor zorgen dat bij run A het ene token wint en bij run B het andere.
Voor wie geautomatiseerde tests draait of wetenschappelijk onderzoek doet, is het waardevol om te begrijpen hoe dit werkt. Wil je exact weten hoe je de impact van deze variatie kunt meten en controleren in testopstellingen? Bekijk dan de gids over reproduceerbaarheid van AI-evaluaties op het benchmark-platform.
Daarnaast is er een directe wisselwerking met complexe prompttechnieken. Als je een model vraagt om stapsgewijs te redeneren, zie je dat de gekozen sampling-parameters zwaar doorwegen. Bij een te hoge temperature kan een enkele verkeerde stap in de redenering het hele proces laten ontsporen. Wil je meer leren over hoe modellen stapsgewijs nadenken? Lees dan het verdiepende artikel over het toepassen van chain-of-thought redeneren.
Veelgemaakte fouten en mythes rondom Temperature en Top-p
In de praktijk blijkt regelmatig dat ontwikkelaars en prompt engineers verkeerde aannames doen over hoe deze knoppen werken. Hier zijn de drie meest hardnekkige mythes ontkracht:
Mythe 1: "Je moet altijd beide parameters tegelijk aanpassen"
Veel officiële documentaties (waaronder die van OpenAI) adviseren om **of** temperature **of** top-p aan te passen, maar niet allebei tegelijk intensief te veranderen. De reden hiervoor is overzichtelijkheid. Omdat beide parameters invloed hebben op de stochastische variatie van de uitvoer, wordt het bij het gelijktijdig veranderen van bijvoorbeeld temperature = 1.4 en top-p = 0.3 erg lastig om te achterhalen welke parameter verantwoordelijk is voor een verandering in de output. De beste aanpak is om top-p op 0.9 of 1.0 te laten staan en met temperature te sturen, óf temperature op 1.0 te laten en uitsluitend top-p aan te passen.
Mythe 2: "Een hoge temperature maakt het model slimmer"
Een hogere temperature geeft het model geen toegang tot extra kennis of hogere intelligentie. Het dwingt het model simpelweg om minder waarschijnlijke paden te verkennen in het geleerde netwerk. Bij logische raadsels of wiskundige opgaven leidt een hoge temperature vrijwel altijd tot een verslechtering van de prestaties, omdat de correcte redeneerstappen meestal de hoogste waarschijnlijkheid hebben.
Mythe 3: "Top-k is hetzelfde als Top-p"
Naast top-p bestaat er ook een parameter genaamd top-k. Waar top-p kijkt naar de *cumulatieve kans* (een variabel aantal tokens), kiest top-k strikt een *vast aantal* van de beste tokens (bijvoorbeeld altijd de beste 40 tokens). Top-k houdt geen rekening met de zekerheid van het model: bij absolute zekerheid blijven er alsnog 40 tokens in de race, wat de kans op ruis vergroot. Top-p is daardoor in bijna alle moderne toepassingen superieur aan top-k.
Conclusie: De juiste balans kiezen
Temperature en top-p zijn krachtige instrumenten om het gedrag van een taalmodel nauwkeurig af te stemmen op jouw specifieke toepassing. Onthoud de kernregel: voor feitelijkheid, structuur en automatisering kies je voor een lage temperature (0.0 – 0.3) of een scherpe top-p. Voor creativiteit, menselijke variatie en exploratie schroef je de temperature op richting de 0.8 tot 1.0.
Door te begrijpen hoe logits via de softmax-functie worden getransformeerd en hoe de kandidatenlijst wordt afgesneden, kun je gefundeerde keuzes maken in plaats van te gokken op willekeurige instellingen.
Hierna verder met
Nu je precies weet hoe je het keuzeproces van een model kunt sturen, kun je je verder verdiepen in hoe een model omgaat met lange teksten en geheugen. Lees de gids over context-engineering en de grenzen van de prompt, of ontdek hoe kleine modellen getraind worden om strakke outputs te geven in het artikel over modeldistillatie bij LLM's.


