Wat zijn tokens?
Tokens zijn de bouwstenen van tekst die OpenAI-modellen verwerken. Afhankelijk van de taal en context kunnen ze uit één teken of een volledig woord bestaan. Spaties, leestekens en delen van woorden tellen allemaal mee voor het aantal tokens. Zo deelt de API uw tekst intern op voordat er een antwoord wordt gegenereerd.
Handige vuistregels voor het Engels:
1 token ≈ 4 tekens
1 token ≈ ¾ woord
100 tokens ≈ 75 woorden
1 à 2 zinnen ≈ 30 tokens
1 alinea ≈ 100 tokens
~1.500 woorden ≈ 2.048 tokens
Tokenisatie verschilt per model en codering. Gebruik de Tokenizer-tool of tiktoken.encoding_for_model(model) om het exacte aantal voor uw doelmodel te bepalen.
Voorbeelden
Hier volgen enkele praktijkvoorbeelden met hun geschatte aantal tokens:
Het citaat van Wayne Gretzky "Je mist 100% van de schoten die je niet neemt" = 11 tokens
Het OpenAI Charter = 476 tokens
De Amerikaanse Onafhankelijkheidsverklaring = 1.695 tokens
Hoe het aantal tokens wordt berekend
Wanneer u tekst naar de API verzendt:
De tekst wordt opgesplitst in tokens.
Het model verwerkt deze tokens.
Het antwoord wordt als een reeks tokens gegenereerd en vervolgens weer omgezet in tekst.
Het tokengebruik wordt in verschillende categorieën bijgehouden:
Invoertokens – tokens in uw verzoek.
Uitvoertokens – tokens die in het antwoord worden gegenereerd.
Gecachte tokens – hergebruikte tokens uit de gespreksgeschiedenis (vaak tegen een lager tarief gefactureerd).
Redeneringstokens – bij sommige geavanceerde modellen worden intern extra "denkstappen" uitgevoerd voordat de definitieve uitvoer wordt geproduceerd.
Deze aantallen staan in de metagegevens van uw API-antwoord en worden gebruikt voor facturering en gebruiksregistratie.
Gebruik onze interactieve Tokenizer-tool om tokenisatie verder te verkennen. Hiermee kunt u het aantal tokens berekenen en zien hoe tekst in tokens wordt opgesplitst.
Als u tekst liever programmatisch tokeniseert, gebruikt u Tiktoken, een snelle BPE-tokenizer die specifiek voor OpenAI-modellen wordt gebruikt.
Tokenlimieten
Elk model heeft een maximale gecombineerde tokenlimiet (invoer + uitvoer). De huidige modellen met hoge capaciteit ondersteunen een context van maximaal honderdduizenden tokens. Praktische limieten kunnen echter verschillen per modelversie en gebruiksniveau.
Als u de limiet overschrijdt, kunt u:
Prompts inkorten of anders formuleren.
Grote teksten opsplitsen in kleinere delen.
Invoer samenvatten of voorbewerken voordat u die verzendt.
Tokenprijzen
API-gebruik wordt per token geprijsd. De prijs verschilt per model en hangt af van de vraag of het om invoer-, uitvoer- of gecachte tokens gaat. Bekijk de prijzenpagina van OpenAI voor de actuele tarieven. Sommige redeneringsmodellen gebruiken intern mogelijk meer tokens, maar proberen efficiënter te werken door per voltooide taak minder tokens nodig te hebben.
Tokens zijn niet gestandaardiseerd voor alle AI-modellen en aanbieders. Verschillende modellen kunnen dezelfde tekst met een verschillend aantal tokens verwerken of genereren. Een lagere geadverteerde prijs per miljoen tokens betekent daarom niet per se lagere totale kosten.
De zichtbare lengte van een antwoord vertelt ook niet het hele verhaal. Sommige modellen gebruiken intern redeneringstokens voordat ze een antwoord produceren. Een langer zichtbaar antwoord betekent dus niet per se dat een model in totaal meer tokens heeft gebruikt.
Houd bij het vergelijken van modellen rekening met het totale aantal benodigde tokens en de kosten per succesvol resultaat. Benchmarks bieden een nuttig uitgangspunt, maar door modellen met uw eigen toepassingen te testen, krijgt u het beste inzicht in de werkelijke kosten en prestaties.
Tokens verkennen
De API behandelt woorden op basis van hun context in de corpusgegevens. Modellen zetten de invoer van de prompt om in een lijst met tokens, verwerken de prompt en zetten de voorspelde tokens weer om in de woorden die we in het antwoord zien.
Twee woorden die er voor ons identiek uitzien, kunnen afhankelijk van hun structuur in de tekst als verschillende tokens worden gegenereerd. Bekijk hoe de API op basis van de tekstcontext tokenwaarden genereert voor het woord "red":
In het eerste voorbeeld hierboven bevat token "2266" voor " red" een spatie aan het einde. (Opmerking: deze token-ID's zijn uitsluitend voorbeelden ter illustratie.)
Token "2296" voor " Red" (met een voorafgaande spatie en een hoofdletter aan het begin) verschilt van token "2266" voor " red" met een kleine letter.
Wanneer "Red" aan het begin van een zin staat, bevat de gegenereerde token geen voorafgaande spatie. Token "7738" verschilt van de vorige twee voorbeelden van het woord.
Waarnemingen:
Hoe waarschijnlijker of frequenter een token is, hoe lager het toegewezen tokennummer:
De token die voor de punt wordt gegenereerd, is in alle drie de zinnen hetzelfde ("13"). Dit komt doordat de punt binnen de context van de corpusgegevens vrijwel overal op dezelfde manier wordt gebruikt.
De gegenereerde token voor "red" verschilt afhankelijk van de positie 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")
