Wat zijn tokens?
Tokens zijn de bouwstenen van tekst die OpenAI-modellen verwerken. Ze kunnen zo kort zijn als één teken of zo lang als een volledig woord, afhankelijk van de taal en context. Spaties, leestekens en delen van woorden dragen allemaal bij aan het aantal tokens. Zo segmenteert de API intern je tekst voordat er een antwoord wordt gegenereerd.
Handige vuistregels voor het Engels:
1 token ≈ 4 tekens
1 token ≈ ¾ van een woord
100 tokens ≈ 75 woorden
1–2 zinnen ≈ 30 tokens
1 alinea ≈ 100 tokens
~1.500 woorden ≈ 2.048 tokens
Tokenisatie kan per taal verschillen. Zo bevat “Cómo estás” (Spaans voor “Hoe gaat het?”) 5 tokens voor 10 tekens. Niet-Engelstalige tekst levert vaak een hogere verhouding tussen tokens en tekens op, wat invloed kan hebben op kosten en limieten.
Voorbeelden
Hier zijn enkele praktijkvoorbeelden van tekst met hun geschatte aantallen tokens:
De quote van Wayne Gretzky “Je mist 100% van de schoten die je niet neemt” = 11 tokens
Het OpenAI Charter = 476 tokens
De Amerikaanse Declaration of Independence = 1.695 tokens
Hoe aantallen tokens worden berekend
Wanneer je tekst naar de API stuurt:
De tekst wordt opgesplitst in tokens.
Het model verwerkt deze tokens.
Het antwoord wordt gegenereerd als een reeks tokens en daarna terug omgezet naar tekst.
Tokengebruik wordt in verschillende categorieën bijgehouden:
Input tokens – tokens in je verzoek.
Output tokens – tokens die in het antwoord worden gegenereerd.
Cached tokens – hergebruikte tokens in de gespreksgeschiedenis (vaak gefactureerd tegen een lager tarief).
Reasoning tokens – in sommige geavanceerde modellen worden intern extra “denkstappen” opgenomen voordat de uiteindelijke output wordt geproduceerd.
Deze aantallen verschijnen in de metadata van je API-antwoord en worden gebruikt voor facturering en gebruiksregistratie.
Om tokenisatie verder te verkennen, kun je onze interactieve Tokenizer-tool gebruiken, waarmee je het aantal tokens kunt berekenen en kunt zien hoe tekst in tokens wordt opgesplitst.
Je kunt tekst ook programmatisch tokeniseren met Tiktoken, een snelle BPE-tokenizer die specifiek voor OpenAI-modellen wordt gebruikt.
Tokenlimieten
Elk model heeft een maximale gecombineerde tokenlimiet (input + output). Huidige modellen met hoge capaciteit ondersteunen tot honderden duizenden tokens in context, al kunnen praktische limieten variëren afhankelijk van de modelversie en je gebruiksniveau.
Als je de limiet overschrijdt, kun je:
Prompts inkorten of herformuleren.
Grote tekst in kleinere stukken opdelen.
Input samenvatten of vooraf verwerken voordat je die verstuurt.
Tokenprijzen
API-gebruik wordt per token geprijsd, afhankelijk van het model en of tokens input, output of cached zijn. Bekijk de tarievenpagina van OpenAI voor actuele tarieven. Sommige redenerende modellen gebruiken intern mogelijk meer tokens, maar proberen de efficiëntie te verbeteren door het aantal tokens per voltooide taak te verlagen.
Tokens verkennen
De API behandelt woorden op basis van hun context in de corpusdata. Modellen nemen de prompt, zetten de input om in een lijst tokens, verwerken de prompt en zetten de voorspelde tokens weer om naar de woorden die we in het antwoord zien.
Wat voor ons twee identieke woorden lijken, kan in verschillende tokens worden gegenereerd, afhankelijk van hoe ze in de tekst zijn opgebouwd. Bekijk hoe de API tokenwaarden genereert voor het woord ‘red’ op basis van de context in de tekst:
In het eerste voorbeeld hierboven bevat de token “2266” voor ‘ red’ een spatie ervoor (let op: dit zijn voorbeeld-token-ID's ter demonstratie).
De token “2296” voor ‘ Red’ (met een spatie ervoor en beginnend met een hoofdletter) verschilt van de token “2266” voor ‘ red’ met een kleine letter.
Wanneer ‘Red’ aan het begin van een zin wordt gebruikt, bevat de gegenereerde token geen voorafgaande spatie. De token “7738” verschilt van de twee vorige voorbeelden van het woord.
Observaties:
Hoe waarschijnlijker/vaker een token is, hoe lager het tokennummer dat eraan wordt toegewezen:
De token die voor de punt wordt gegenereerd is in alle 3 zinnen hetzelfde (“13”). Dit komt doordat de punt qua context vrij vergelijkbaar wordt gebruikt in de hele corpusdata.
De token die voor ‘red’ wordt gegenereerd varieert afhankelijk van de plaats in de zin:
Kleine letter midden in een zin: ‘ red’ - (token: “2266”)
Hoofdletter midden in een zin: ‘ Red’ - (token: “2297”)
Hoofdletter aan het begin van een zin: ‘Red’ - (token: “7738”)
