Kapitel 02 · Tokenisierung · 8 min
Vom Text zu Tokens
Wie Text zu Zahlen wird. BPE, Teilwörter und warum LLMs Schwierigkeiten haben, Buchstaben zu zählen.
Warum Tokens?
Ein Sprachmodell kann Text nicht direkt verarbeiten. Es verarbeitet Zahlen. Der allererste Schritt, jedes Mal wenn du mit einem LLM sprichst, ist die Umwandlung deines Textes in eine Folge ganzer Zahlen — die Token-IDs.
Tokenisierung ist die Zerlegung, die diese Umwandlung ermöglicht.
Warum nicht ein Token pro Wort?
Auf den ersten Blick könnte man sich vorstellen: ein Wort = ein Token. Einfach.
Aber das funktioniert nicht:
- Sprache enthält Millionen möglicher Wörter (Flexionsformen, Neologismen, Eigennamen, Tippfehler…). Ein Token pro Wort erfordert ein riesiges Vokabular.
- Das Modell kann nichts mit einem Wort anfangen, das es noch nie gesehen hat.
- Manche Sprachen (Chinesisch, Japanisch) haben nicht einmal Leerzeichen zwischen den Wörtern.
Die von fast allen modernen LLMs verwendete Lösung: Subwörter.
Subwort-Tokenisierung
Mit einem Subwort-Tokenizer:
- Häufige Wörter werden zu einem einzigen Token (
the,und,ist) - Seltene Wörter werden in kleinere Teile zerlegt (
Tokenisierung→Token+isierung) - Unbekannte Zeichen können immer bis zum einzelnen Buchstaben zerlegt werden
Das Ergebnis: ein Vokabular in überschaubarer Größe (typischerweise zwischen 30.000 und 200.000 Tokens), das beliebigen Text darstellen kann.
Der meistverwendete Algorithmus heißt BPE (Byte Pair Encoding). Er beginnt mit einzelnen Zeichen und führt iterativ die häufigsten Paare im Trainingskorpus zusammen.
BPE in dreißig Sekunden
Stell dir einen Mini-Korpus aus drei Wörtern vor: low, lower, lowest. Wir beginnen mit der Tokenisierung auf Zeichenebene:
l o w
l o w e r
l o w e s t
Bei jeder Iteration suchen wir das häufigste Paar benachbarter Tokens. Hier kommt l o dreimal vor — wir verschmelzen es zu lo:
lo w
lo w e r
lo w e s t
Jetzt ist lo w das häufigste Paar. Wir verschmelzen es:
low
low e r
low e s t
So geht es weiter, bis die gewünschte Vokabulargröße erreicht ist. Stücke, die häufig wiederkehren (low), werden zu einem einzigen Token. Seltene (est) bleiben zerlegt. Genau das macht BPE — über Milliarden von Wörtern statt drei, und in modernen Modellen über Bytes statt Zeichen (byte-level BPE), was garantiert, dass keine Eingabe je „unbekannt" ist.
Ein paar Verwandte, die man kennen sollte: WordPiece (BERT), SentencePiece (T5, Llama), Unigram LM (mT5). Sie teilen dieselbe Idee — ein Subwort-Vokabular — mit unterschiedlichen Merge-Heuristiken.
Spezielle Tokens
Über die Subwörter des Textes hinaus reserviert der Tokenizer einige spezielle Tokens, die natürlicherweise nie vorkommen:
<|im_start|>,<|im_end|>(OpenAI),[INST]…[/INST](Llama),<|user|>/<|assistant|>— markieren Gesprächsrunden.<|endoftext|>— Ende eines Dokuments.<|fim_prefix|>,<|fim_middle|>— für fill-in-the-middle, verwendet bei Code-Vervollständigung.
Diese verwandeln einen Dialog „Benutzer sagte X, Assistant antwortete Y" in eine einzige lineare Token-Folge, die das Modell verarbeiten kann. Wenn du eine Nachricht an ChatGPT sendest, werden diese Marker automatisch vor der Tokenisierung hinzugefügt.
Probiere es aus
Im rechten Bereich erscheinen die Subwörter: jeder Token ist ein wiederverwendbares Fragment, nicht zwingend ein ganzes Wort. Häufige Wörter passen in einen einzigen Token, seltene zerfallen in mehrere Teile.
Ein paar Dinge zu beachten:
- Kurze, häufige Wörter werden selten geteilt.
- Lange oder seltene Wörter erscheinen oft in mehreren Teilen.
- Das Leerzeichen vor einem Wort ist Teil des Tokens (deshalb sind
· HalloundHalloverschiedene Tokens). - Im Deutschen ist das Verhältnis Tokens/Wort typischerweise höher als im Englischen — die Modelle haben während des Trainings mehr englischen Text gesehen.
Praktische Konsequenzen
Diese Token-Geschichte hat viele unerwartete Auswirkungen:
- LLMs zählen Buchstaben schlecht. „Wie viele R sind in strawberry?" — Sie antworten oft 2 statt 3, weil das Wort als einige Tokens ankommt, nicht als einzelne Buchstaben.
- API-Preise werden in Tokens berechnet, nicht in Wörtern.
- Kontextfenster (
128k Tokens,200k Tokens…) werden ebenfalls in Tokens gemessen. Ein deutsches Buch mit 100.000 Wörtern entspricht etwa 150.000 Tokens.
Für das Modell sind „Tokenisierung" und „To·ke·ni·sie·rung" dasselbe. Es sieht nur die Stücke.
Was als nächstes kommt
Jetzt, da dein Text zu einer Folge von Ganzzahlen geworden ist, werden diese Zahlen in das Modell eingegeben. Der erste Schritt im Inneren des Modells: Sie werden in Vektoren umgewandelt, in einem Raum aus mehreren hundert Dimensionen, wo Bedeutung zu einer geometrischen Position wird.
Das ist das Thema des nächsten Kapitels.
Aktualisiert am