Naar inhoud springen

Gratis Token Teller voor GPT-4, ChatGPT & AI Modellen

Nauwkeurige token teller met behulp van OpenAI's tiktoken bibliotheek. Tel tokens voor GPT-4, ChatGPT en GPT-3 modellen. Beheer API-kosten en optimaliseer AI-prompts direct.

Token Teller

Codering

Ongeldige invoer

Laadcalculator...
📚

Documentatie

Wat is een tokenteller?

Een tokenteller meet in hoeveel tokens een stuk tekst wordt opgesplitst wanneer een AI-taalmodel het leest. Tokens zijn kleine tekstfragmenten — volledige woorden, delen van woorden of leestekens — die modellen zoals GPT-4 en ChatGPT verwerken in plaats van onbewerkte letters. Deze tool gebruikt tiktoken, de opensourcebibliotheek voor tokenisatie die OpenAI heeft gepubliceerd, zodat de telling overeenkomt met wat OpenAI's eigen modellen en API zouden produceren.

Hoe tokenisatie werkt

Een tokenizer telt niet simpelweg woorden. Hij verwerkt tekst met een algoritme dat byte-pair encoding (BPE) heet. Het algoritme begint met afzonderlijke bytes tekst en voegt herhaaldelijk de meest voorkomende aangrenzende paren samen, op basis van patronen die tijdens de training uit een grote hoeveelheid tekst zijn geleerd. Het resultaat is een vaste verzameling van tienduizenden gangbare fragmenten: volledige korte woorden, frequente woorddelen en afzonderlijke tekens voor zeldzame elementen.

Daardoor wordt één Engels woord vaak één token, maar kunnen langere of ongebruikelijke woorden worden opgesplitst in twee of meer tokens. Spaties worden meestal aan het begin van het volgende token toegevoegd in plaats van afzonderlijk geteld, en leestekens vormen doorgaans hun eigen tokens.

Encoderingen die deze tool ondersteunt

Tiktoken biedt verschillende encoderingen, die elk gekoppeld zijn aan een familie OpenAI-modellen. Deze tool ondersteunt er drie:

EncoderingGebruikt doorGeschatte omvang van de woordenschat
cl100k_baseModellen uit de GPT-3,5- en GPT-4-familie, ChatGPTongeveer 100.000 tokens
p50k_baseLatere GPT-3-modellenongeveer 50.000 tokens
r50k_baseEerdere GPT-3- en GPT-2-modellenongeveer 50.000 tokens

cl100k_base wordt standaard geselecteerd, omdat deze de modelfamilie omvat die de meeste mensen tegenwoordig gebruiken. Dezelfde tekst kan onder elke encodering een andere tokentelling opleveren, omdat elke encodering met andere tekst is getraind en tekens op een andere manier samenvoegt.

Een tokentelling berekenen

Er is geen eenvoudige rekenkundige formule om het aantal tekens of woorden om te zetten in een tokentelling, omdat de BPE-samenvoegingen afhangen van de specifieke tekst en de getrainde woordenschat. De enige exacte methode is de tekst zelf door de tokenizer te laten verwerken:

  1. Kies de encodering die overeenkomt met het doelmodel.
  2. Voer de tekst in de tokenizer van die encodering in.
  3. Tel de resulterende lijst met token-ID's. De lengte van die lijst is de tokentelling.

Als ruwe schatting voor Engelse tekst komt één token overeen met ongeveer vier tekens, of met circa driekwart van een woord. Dit is slechts een richtlijn. Getallen, code, niet-Engelse tekst en ongebruikelijke spelling kunnen de verhouding sterk veranderen.

Uitgewerkt voorbeeld

Neem de zin:

Tokenisatie splitst tekst op in delen.

Onder de encodering cl100k_base splitst tiktoken dit op in 7 tokens:

Token, ization, splits, text, into, pieces, .

Let op: "Tokenization" wordt zelf opgesplitst in twee tokens, "Token" en "ization", terwijl elk ander woord intact blijft. De afsluitende punt is een eigen token. Daarom levert een zin van 37 tekens met 5 woorden 7 tokens op in plaats van 6.

Waarom tokentellingen belangrijk zijn

AI-aanbieders brengen API-gebruik per token in rekening en tellen zowel de verzonden tekst als de gegenereerde antwoordtekst mee. Een tokentelling voorspelt dus de kosten voordat een verzoek wordt verzonden. Elk model heeft ook een maximale contextlengte: een limiet voor het aantal tokens dat één verzoek en het bijbehorende antwoord samen kunnen bevatten. Die limiet verschilt per model en verandert wanneer aanbieders nieuwe versies uitbrengen. Daarom kan deze het best worden gecontroleerd in de actuele documentatie voor het gebruikte model, in plaats van uit het hoofd te worden aangenomen.

Veelgestelde vragen

Wat is een token in AI-taalmodellen? Een token is een tekstfragment dat een taalmodel als één eenheid leest. Het kan een volledig kort woord zijn, een deel van een langer woord, een leesteken of een spatie die aan het volgende woord is toegevoegd.

Waarom leveren verschillende encoderingen voor dezelfde tekst verschillende tokentellingen op? Elke encodering is met haar eigen tekstverzameling getraind en heeft haar eigen woordenschat van veelvoorkomende fragmenten opgebouwd. Een woord dat in de ene woordenschat vaak genoeg voorkomt om één token te zijn, staat mogelijk niet in een andere woordenschat en wordt daar dus anders opgesplitst.

Telt interpunctie als een token? Ja. Leestekens worden meestal als afzonderlijke tokens geteld, maar soms samengevoegd met het aangrenzende teken, afhankelijk van hoe vaak die combinatie tijdens de training van de tokenizer voorkwam.

Is een token hetzelfde als een woord? Nee. Korte, veelvoorkomende woorden zijn meestal elk één token. Langere of minder gebruikelijke woorden, en de meeste woorden buiten het Engels, worden vaak opgesplitst in twee of meer tokens.

Hoe nauwkeurig is deze tool? De tool telt tokens met OpenAI's eigen tiktokenbibliotheek en gebruikt daarbij dezelfde coderingslogica die OpenAI intern gebruikt. Daardoor komt de telling overeen met wat een OpenAI API-aanroep voor dezelfde tekst en encodering zou rapporteren.

Kan deze tool tokens tellen voor modellen die niet van OpenAI zijn? De tool gebruikt de encoderingen van tiktoken, die voor de modellen van OpenAI zijn ontwikkeld. Andere aanbieders, zoals Anthropic of Google, gebruiken hun eigen tokenizers, die voor dezelfde tekst andere tellingen kunnen opleveren.

Referenties

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico, et al. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B., et al. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.