Je kunt uitleggen wat een token is, waarom tekst in tokens uiteenvalt in plaats van in woorden of letters, en hoe dat je AI-kosten, je context-limiet en een reeks 'rare' modelfouten verklaart.
Je denkt waarschijnlijk dat een taalmodel je zin woord voor woord leest. Of, als je iets technischer bent ingesteld, letter voor letter. Geen van beide klopt. Een model leest in tokens, en zodra je ziet hoe je tekst daarin uiteenvalt, snap je in een klap een rijtje beruchte AI-fouten dat je vast eens hebt zien langskomen.
Typ het woord strawberry in het blok hieronder en kijk wat er gebeurt. Het valt niet in losse letters uiteen, en ook niet in lettergrepen, maar in drie brokken: st, raw en berry.
Dit is een benadering van hoe een model tekst in tokens knipt. De echte tokenizer verschilt per model, maar het patroon klopt: een spatie hoort meestal bij het volgende stukje, en langere (vaak Nederlandse) woorden vallen in meer tokens uiteen.
Dat brokje heet een token. Een token is het stukje tekst dat een taalmodel echt verwerkt: geen woord en geen letter, maar een veelvoorkomend fragment uit een vaste woordenlijst van ongeveer 200.000 stukjes. Een gangbaar Engels woord is vaak precies een token; een zeldzaam of lang woord valt in meerdere. Als vuistregel is honderd tokens ongeveer vijfenzeventig Engelse woorden, oftewel een token is grofweg driekwart woord.
Die woordenlijst is niet met de hand gemaakt. Een algoritme, byte-pair encoding, bouwde hem op door in een enorme hoeveelheid tekst te tellen welke tekencombinaties het vaakst naast elkaar staan, en die samen te voegen tot een token. berry komt zo vaak voor dat het een eigen token kreeg, st en raw ook. strawberry als geheel haalde de lijst net niet, dus valt het in die drie.
Stel je een doos Lego voor waarin de meeste blokjes geen losse letters zijn maar kant-en-klare stukjes woord: ' de', 'berry', 'ing'. Een model bouwt elke zin uit die vaste blokjes. Een woord dat toevallig precies een blokje is, kost een token; een woord waarvoor het moet stapelen, kost er meer.
Waarom kost hetzelfde woord met een spatie minder tokens?
Zet een spatie voor strawberry en de telling springt van drie naar een. strawberry is een token, strawberry zonder spatie is er drie. De woordenlijst stopt de spatie namelijk in het token: de variant met spatie is als geheel zo gangbaar (bijna elk woord in een zin staat achter een spatie) dat het een eigen plek kreeg, terwijl de kale variant dat niet haalde. In gewone lopende tekst reken je dus meestal met de goedkope, spatie-inclusieve variant.
Dit verklaart meteen de beruchte "hoeveel r'en zitten er in strawberry"-blunder. Het woord heeft er drie, maar het model ziet st, raw en berry. In raw zit een r, in berry zitten er twee, en die zijn opgesloten in hun brokje. Het model kijkt nooit naar losse letters, dus het telt niet wat het niet los ziet.
Waarom kost Nederlands meer dan Engels?
De woordenlijst is vooral op Engelse tekst gebouwd, dus Engelse woorden passen vaker in een stukje. Neem twee pangrammen. The quick brown fox jumps over the lazy dog is in o200k_base negen tokens, elk woord precies een. De Nederlandse De snelle bruine vos springt over de luie hond is er twaalf, ongeveer een derde meer: bruine valt in bru en ine, springt in spring en t, luie in lu en ie. Een woord als arbeidsongeschiktheidsverzekering kost er in z'n eentje acht.
Cijfers krijgen dezelfde behandeling. 1234567890 is voor het model geen tien losse cijfers, maar vier tokens: 123, 456, 789 en 0. Het rekent dus niet met getallen maar met brokken die toevallig cijfers zijn. Dat is een van de redenen dat zelfs sterke modellen struikelen over een simpele som: ze zien geen 7 en 8, ze zien 789.
Je betaalt per token, niet per woord, en je context window (de hoeveelheid tekst die een model in een keer kan meenemen) wordt ook in tokens gemeten. gpt-4o kan er 128.000 tegelijk aan. Reken je in woorden, dan zit je er structureel naast, en voor Nederlands meer dan voor Engels. Het is precies deze rekeneenheid waardoor de AI-rekening oploopt zodra agenten per opdracht enorme hoeveelheden tokens verstoken, en waardoor een vast tokenplafond kan verbergen hoeveel een AI-agent eigenlijk kan.
Even terughalen wat je net zag:
Hoeveel tokens is 'strawberry' zonder voorafgaande spatie in gpt-4o?
Een token is dus geen technisch detail dat je kunt overslaan. Het is de bril waardoor een model alles ziet: je vraag, je document, je som. Snap je die bril, dan zijn de rare fouten niet langer raar, maar precies wat je verwacht van iets dat de wereld in stukjes van driekwart woord leest.
Veelgestelde vragen
Van tokenkosten naar een werkend AI-idee
Ik denk met je mee over wat een taalmodel voor jouw werk kan doen, ontwerp het en bouw het end-to-end, met de tokenkosten en context-grenzen van dag een ingecalculeerd.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
