Aan de slag met Tiktoken
Om Tiktoken te gebruiken, moeten we het installeren in onze Python-omgeving (Tiktoken is ook beschikbaar voor andere programmeertalen). Dat kan met het volgende commando:
pip install tiktoken
De open-source Python-versie van Tiktoken vind je in de volgende GitHub-repository.
Om de bibliotheek te importeren, voer je het volgende uit:
import tiktoken
Encoding-modellen
Encoding-modellen in Tiktoken bepalen de regels voor het opdelen van tekst in tokens. Deze modellen zijn cruciaal omdat ze bepalen hoe tekst wordt gesplitst en gecodeerd, wat invloed heeft op de efficiëntie en nauwkeurigheid van taalverwerkingstaken. Verschillende OpenAI-modellen gebruiken verschillende encodings.
Tiktoken biedt drie encoding-modellen die zijn geoptimaliseerd voor verschillende use-cases:
- o200k_base: Encoding voor het nieuwste GPT-4o-Mini-model.
- cl100k_base: Encoding-model voor nieuwere OpenAI-modellen zoals GPT-4 en GPT-3.5-Turbo.
- p50k_base: Encoding voor Codex-modellen; deze modellen worden gebruikt voor code-toepassingen.
- r50k_base: Oudere encoding voor verschillende versies van GPT-3.
Al deze modellen zijn beschikbaar via de API van OpenAI. Let op: de API biedt toegang tot veel meer modellen dan ik hier heb opgesomd. Gelukkig biedt de Tiktoken-bibliotheek een eenvoudige manier om te controleren welke encoding je voor welk model moet gebruiken.
Als ik bijvoorbeeld wil weten welk encoding-model het model text-embedding-3-small gebruikt, kan ik het volgende commando uitvoeren en het antwoord als output krijgen:
print(tiktoken.encoding_for_model('text-embedding-3-small'))
We krijgen <Encoding 'cl100k_base'> als output. Voordat we direct met Tiktoken aan de slag gaan, wil ik nog vermelden dat OpenAI een tokenization-webapp heeft waar je kunt zien hoe verschillende strings worden getokenized—je vindt die hier. Er is ook een externe online tokenizer, Tiktokenizer, die niet-OpenAI-modellen ondersteunt.
Tekst encoden naar tokens
Om tekst naar tokens te encoden met Tiktoken, heb je eerst een encoding-object nodig. Dat kun je op twee manieren initialiseren. Ten eerste kun je dit doen met de naam van de tokenizer:
encoding = tiktoken.get_encoding("[name of the tokenizer]")
Of je kunt de eerder genoemde functie encoding_for_model gebruiken om de encoder voor een specifiek model op te halen:
encoding = tiktoken.encoding_for_model("[name of the model]")
Nu kunnen we de methode encode van ons encoding-object aanroepen om een string te encoden. Zo kunnen we bijvoorbeeld de string “I love DataCamp” als volgt encoden—hier gebruik ik de cl100k_base-encoder:
print(encoding.encode("I love DataCamp"))
We krijgen [40, 3021, 2956, 34955] als output.
Tokens decoden naar tekst
Om tokens terug naar tekst te decoden, kunnen we de methode .decode() op het encoding-object gebruiken.
Laten we de volgende tokens decoden [40, 4048, 264, 2763, 505, 2956, 34955]:
print(encoding.decode([40, 4048, 264, 2763, 505, 2956, 34955]))
De tokens decoden naar “I learn a lot from DataCamp.”
Praktische use-cases en tips
Naast encoden en decoden zijn er nog twee andere use-cases die ik kan bedenken.
Kosteninschatting en -beheer
Als je vooraf weet hoeveel tokens een verzoek aan de OpenAI API bevat, kun je je kosten effectief beheren. Omdat OpenAI factureert op basis van het aantal verwerkte tokens, kun je door je tekst vooraf te tokenizen de kosten van je API-gebruik inschatten. Zo tel je het aantal tokens in je tekst met Tiktoken:
tokens = encoding.encode(text)
print(len(tokens))
We bekijken simpelweg hoeveel tokens we hebben door de lengte van de array te controleren. Door het aantal tokens vooraf te kennen, kun je beslissen of je de tekst inkort of je gebruik aanpast om binnen budget te blijven.
Je kunt meer lezen over deze aanpak in deze tutorial over Kosten van GPT inschatten met de tiktoken-bibliotheek in Python.
Validatie van invoerlengte
Bij het gebruik van OpenAI-modellen via de API ben je gebonden aan een maximumaantal tokens voor input en output. Als je deze limieten overschrijdt, kan dat leiden tot fouten of afgekorte uitvoer. Met Tiktoken kun je de invoerlengte valideren en zeker weten dat deze binnen de tokenlimieten blijft.
Conclusie
Tiktoken is een open-source tokenization-bibliotheek die snelheid en efficiëntie biedt, afgestemd op de taalmodellen van OpenAI.
Begrijpen hoe je tekst encode en decode met Tiktoken, samen met de verschillende encoding-modellen, kan je werk met large language models aanzienlijk verbeteren.


Tokenization is een basistaak bij NLP. Het houdt in dat je tekst opdeelt in kleinere eenheden, zogeheten tokens, die woorden, subwoorden of tekens kunnen zijn.
Efficiënte tokenization is cruciaal voor de prestaties van taalmodellen en is daarom een essentiële stap in uiteenlopende NLP-taken zoals tekstgeneratie, vertaling en samenvatting.
Tiktoken is een snelle en efficiënte tokenization-bibliotheek ontwikkeld door OpenAI. Het biedt een robuuste oplossing om tekst naar tokens en weer terug te converteren. Door de snelheid en efficiëntie is het een uitstekende keuze voor developers en data scientists die met grote datasets en complexe modellen werken.
Deze gids is bedoeld voor developers, data scientists en iedereen die Tiktoken wil gebruiken en behoefte heeft aan een praktische handleiding met voorbeelden.