OpenAI
Deze pagina is automatisch vertaald. Bekijk het oorspronkelijke Engelstalige artikel.

Wat zijn tokens en hoe tel je ze?

Bijgewerkt: 15 days ago

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:

  1. De tekst wordt opgesplitst in tokens.

  2. Het model verwerkt deze tokens.

  3. 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:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

In het eerste voorbeeld hierboven bevat de token “2266” voor ‘ red’ een spatie ervoor (let op: dit zijn voorbeeld-token-ID's ter demonstratie).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

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.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

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”)

Was dit artikel nuttig?