Tokenizer: hoe computers taal in stukjes knippen om die te kunnen verwerken
Als je met ChatGPT, Gemini of een andere taalgestuurde AI praat, lijkt het alsof die machine je zinnen letterlijk leest. In werkelijkheid ziet het systeem geen woorden, maar een rij getallen. De vertaalslag van tekst naar getallen – en omgekeerd – wordt gedaan door een tokenizer. Je kunt het vergelijken met een postsorteerder die elke brief (jouw tekst) opknipt in genummerde stukjes, omdat de sorteermachine (het AI-model) alleen met nummers kan werken. Pas nadat het antwoord klaar is, worden de nummers weer terugvertaald naar leesbare tekst.
Die 'stukjes' heten tokens, en ze zijn niet altijd hele woorden. Het woord 'onvoorstelbaar' kan bijvoorbeeld uiteenvallen in de tokens 'on', 'voorstel' en 'baar'. Veelgebruikte woorden als 'de' of 'huis' blijven vaak heel. Deze aanpak – ergens tussen losse letters en complete woorden in – is een bewuste keuze, en juist die keuze bepaalt hoe goed, hoe snel en hoe goedkoop een taalmodel werkt. Een tokenizer is dus geen bijzaak, maar een fundamenteel onderdeel van elk modern taalmodel.
Wat is het precies?
Een tokenizer werkt in twee richtingen. Bij het 'coderen' (encoding) hakt hij binnenkomende tekst in tokens en zet elk token om in een getal via een vaste woordenlijst, het vocabulaire. Bij het 'decoderen' doet hij het omgekeerde: de getallen die het model produceert, worden terugvertaald naar tekst.
De meeste moderne tokenizers gebruiken een techniek die subword-tokenisatie heet. In plaats van vooraf te bepalen welke woorden bestaan, leert het algoritme automatisch welke stukjes tekst het vaakst samen voorkomen. Een populaire methode hierbinnen is Byte Pair Encoding (BPE), oorspronkelijk een compressietechniek uit de jaren negentig, die in 2016 door onderzoekers Rico Sennrich, Barry Haddow en Alexandra Birch werd aangepast voor taalmodellen. Het algoritme begint met losse letters en voegt stap voor stap de twee meest voorkomende naast elkaar staande stukjes samen, totdat een gewenst aantal 'tokens' (meestal tussen de 30.000 en 250.000) is bereikt.
Varianten hierop zijn WordPiece (gebruikt door Google's BERT-model) en SentencePiece, een door Google ontwikkelde tool die taalonafhankelijk werkt en ook geschikt is voor talen zonder spaties, zoals Japans of Thais. Sommige nieuwere systemen werken op het niveau van losse bytes in plaats van karakters, waardoor in principe elk teken – ook emoji's of ongebruikelijke symbolen – verwerkt kan worden zonder dat de tokenizer vastloopt op 'onbekende' tekens.
Belangrijk is dat de keuze van tokens niet neutraal is: ze wordt getraind op een bepaalde verzameling teksten, meestal overwegend Engelstalig. Dat heeft gevolgen die verderop in dit artikel aan bod komen.
Wat wil men ermee bereiken?
Het doel van tokenisatie is simpel in woorden, maar lastig in uitvoering: tekst zo omzetten dat een model er efficiënt mee kan rekenen, zonder betekenis te verliezen. Een paar concrete doelen staan daarbij centraal.
Ten eerste efficiëntie. Taalmodellen hebben een maximale 'contextlengte' – het aantal tokens dat ze in één keer kunnen verwerken. Hoe compacter een tokenizer tekst weet te comprimeren, hoe meer informatie in die beperkte ruimte past, en hoe lager de rekenkosten per gesprek. Dit is ook de reden dat bedrijven als OpenAI gebruikers per token laten betalen: het is letterlijk de rekeneenheid van taalmodellen.
Ten tweede generalisatie. Door woorden op te delen in subwoorden kan een model ook onbekende of nieuwe woorden redelijk verwerken. Het model heeft 'voorstel' en 'baar' al vaker gezien, dus kan het ook iets zinnigs doen met het nooit eerder gezien woord 'onvoorstelbaarheid'.
Ten derde taal- en scriptondersteuning. Tokenizers moeten idealiter overweg kunnen met meerdere talen en schriftsystemen, van het Nederlands tot het Arabisch en Mandarijn, zonder dat de ene taal veel meer tokens (en dus rekenkracht en geld) kost dan de andere.
Voorbeelden uit de praktijk
Een paar tokenizers die in de praktijk veel gebruikt worden, illustreren hoe het veld zich ontwikkelt.
GPT-2 en de 'tiktoken'-reeks (OpenAI, vanaf 2019): OpenAI gebruikte voor GPT-2 een byte-level BPE-tokenizer met ongeveer 50.000 tokens. Voor nieuwere modellen zoals GPT-4 en GPT-4o introduceerde het bedrijf grotere vocabulaires (meer dan 100.000 tokens), onder meer om niet-Engelse talen efficiënter te coderen. De bijbehorende opensource-bibliotheek heet tiktoken.
BERT en WordPiece (Google, 2018): Google's invloedrijke BERT-model gebruikte WordPiece-tokenisatie met circa 30.000 tokens, getraind op Engelse Wikipedia- en boekencorpora.
SentencePiece en mT5/XLM-R (Google, vanaf 2018): voor meertalige modellen zoals mT5 en XLM-RoBERTa werd SentencePiece gebruikt, specifiek om ook talen zonder duidelijke woordgrenzen te ondersteunen.
Llama-tokenizers (Meta, 2023-2024): Meta's Llama-modellen gebruiken eigen BPE-gebaseerde tokenizers; bij Llama 3 (2024) werd het vocabulaire flink vergroot naar ruim 128.000 tokens, wat volgens Meta de prestaties op meerdere talen verbeterde.
Onderzoek naar 'fair tokenization' voor kleinere talen (2022-2024): diverse academische teams, waaronder onderzoekers verbonden aan Hugging Face, publiceerden analyses waaruit blijkt dat talen als Nederlands, Swahili of Birmees vaak twee tot vijf keer zoveel tokens nodig hebben om dezelfde boodschap te coderen als Engels. Dat betekent in de praktijk hogere kosten en een kortere effectieve contextlengte voor gebruikers van die talen.
Hoe ver is de techniek?
Tokenisatie is een volwassen, breed toegepaste techniek: vrijwel elk groot taalmodel sinds 2018 gebruikt een vorm van subword-tokenisatie, en de basisalgoritmen (BPE, WordPiece, SentencePiece) zijn al jaren stabiel. In die zin is het geen opkomende technologie, maar een ingeburgerd onderdeel van de AI-infrastructuur.
Toch is er volop ontwikkeling. Een actief discussiepunt is of tokenizers eigenlijk wel nodig zijn. Onderzoekers experimenteren met 'tokenizer-vrije' of byte-level modellen die rechtstreeks met ruwe tekst of zelfs ruwe bytes werken, zonder de tussenstap van een apart getraind vocabulaire. Voorbeelden zijn onderzoekslijnen als ByT5 (Google, 2021) en meer recent MambaByte en soortgelijke architecturen (2023-2024). Het voordeel is dat zulke modellen geen vertekening door een vast vocabulaire hebben en makkelijker omgaan met typefouten, codefragmenten of ongebruikelijke tekens. Het nadeel is dat ze doorgaans meer rekenkracht nodig hebben, omdat de 'eenheden' die ze verwerken veel kleiner zijn.
Een ander bekend probleem is dat tokenizers soms vreemd gedrag veroorzaken dat moeilijk te verklaren is vanuit het model zelf, maar wel degelijk uit de tokenizer voortkomt – een fenomeen dat in de AI-gemeenschap soms 'tokenizer-problemen' wordt genoemd, zoals modellen die moeite hebben met het tellen van letters in een woord omdat ze het woord als één ondeelbaar token zien in plaats van losse letters. Dit blijft een actief punt van onderzoek en is nog niet volledig opgelost.
Kortom: de basistechniek is uitgekristalliseerd en overal toegepast, maar er loopt serieus onderzoek naar alternatieven en naar het eerlijker maken van tokenisatie tussen talen.
Wie werken eraan?
Tokenisatie wordt zowel door grote AI-bedrijven als door academische groepen ontwikkeld, vaak in combinatie met het trainen van de taalmodellen zelf.
OpenAI (VS) ontwikkelt en onderhoudt de tiktoken-tokenizers voor de GPT-reeks. Google (VS) heeft met WordPiece, SentencePiece en ByT5 een lange onderzoekslijn op dit gebied, uitgevoerd door teams binnen Google Research en Google DeepMind. Meta AI (VS) ontwikkelt de tokenizers voor de Llama-modellen en publiceert daarbij relatief veel technische details. Hugging Face (Frankrijk/VS) speelt een centrale rol als neutraal platform: het bedrijf onderhoudt de veelgebruikte opensource-bibliotheek 'tokenizers' en publiceert onderzoek naar meertalige en 'fair' tokenisatie. Ook Mistral AI (Frankrijk) en Cohere (Canada) ontwikkelen eigen tokenizers voor hun modellen, met aandacht voor meertaligheid.
Op academisch vlak zijn onderzoeksgroepen aan onder meer de University of Edinburgh (waar de originele BPE-voor-taalmodellen-paper vandaan kwam), Stanford en EleutherAI (een open-source onderzoekscollectief) actief betrokken bij tokenisatie-onderzoek. Daarnaast groeit de aandacht voor tokenisatie van minder dominante talen, met bijdragen van onderzoekers verbonden aan Europese en Afrikaanse universiteiten die zich specifiek richten op eerlijkere tokenisatie voor hun eigen taalgebieden.