KI-Begriffe

Token

Die Wortstücke, in denen ein Sprachmodell liest, schreibt und abrechnet – und warum es für das Modell eigentlich nur Zahlen sind.

Lesestand

Ein Token ist ein häufiges Stück Text – mal ein ganzes Wort, mal eine Silbe, mal ein Satzzeichen. Ein Tokenizer zerlegt jeden Text in solche Stücke und ersetzt jedes durch eine feste Nummer. Nur diese Nummern sieht das Modell.

Tokens sind die Maßeinheit für alles Praktische: Kosten, Länge des Kontextfensters, Geschwindigkeit. Faustregel: Ein deutsches Wort sind grob ein bis zwei Tokens.

Warum Wortstücke – und nicht Buchstaben oder Wörter?

Ein Modell braucht einen festen Satz an Bausteinen, aus denen sich jeder Text zusammensetzen lässt. Dafür gibt es drei naheliegende Kandidaten, und zwei davon taugen nicht:

Buchstaben

Unglaublich
  • winziges Vokabular
  • extrem lange Folgen – 11 Schritte für ein Wort
  • jeder Schritt trägt kaum Bedeutung

Ganze Wörter

Unglaublich
  • kurze Folgen
  • Millionen Wörter, im Deutschen unendlich viele Komposita
  • unbekannte Wörter gehen gar nicht

Wortstücke (Tokens)

Unglaublich
  • überschaubares Vokabular
  • kurze Folgen
  • auch neue Wörter lassen sich zusammensetzen
Tokens sind der Kompromiss: so wenige Bausteine wie nötig, so lange Stücke wie möglich. Die Zerlegung ist beispielhaft.

Typische Vokabulare haben einige Zehntausend bis über hunderttausend Einträge. Häufiges wie „der“, „und“ oder „␣Haus“ ist ein einzelnes Token; Seltenes wie „Donaudampfschifffahrt“ wird aus mehreren Stücken gebaut. Weil moderne Tokenizer notfalls bis auf einzelne Bytes herunterbrechen können, gibt es kein Wort, das sich nicht darstellen ließe – auch keinen Tippfehler und kein Emoji.

Wie das Vokabular entsteht

Niemand legt die Tokens von Hand fest. Das gängigste Verfahren heißt Byte-Pair-Encoding (BPE) und ist erstaunlich simpel:

  1. Starte mit einzelnen Zeichen.
  2. Zähle, welches benachbarte Paar im Trainingstext am häufigsten vorkommt.
  3. Verschmelze dieses Paar überall zu einem neuen Token.
  4. Wiederhole, bis das Vokabular die gewünschte Größe hat.

Probier es an einem Mini-Text aus fünf Wörtern aus. Die Zahl links gibt an, wie oft das Wort im „Trainingstext“ vorkommt:

Byte-Pair-Encoding Schritt für Schritt
Häufigste Paare jetzt
Gelernte Verschmelzungen
    noch keine
    Tokens im ganzen Text: Vokabulargröße:

    Achte auf die ersten beiden Schritte: Aus „a“, „c“ und „h“ wird zuerst ach – ein Stück, das in allen fünf Wörtern steckt. Genau so entstehen in echten Tokenizern Bausteine wie ung, lich, ␣der oder public. Echte Tokenizer machen das auf riesigen Textmengen und lernen zehntausende Verschmelzungen.

    Wichtig: Der Tokenizer wird einmal vor dem Modell trainiert und danach eingefroren. Modell und Tokenizer gehören fest zusammen – ein Modell kann mit den Nummern eines fremden Tokenizers nichts anfangen, so wie eine Klasse nicht mit einer anderen enum-Version funktioniert.

    Vom Text zur Zahl – und zurück

    Für das Modell existieren weder Buchstaben noch Wörter. Es bekommt eine Liste von Ganzzahlen und gibt am Ende wieder eine Ganzzahl aus.

    Text
    Hallo Welt!
    ↓ Tokenizer: zerlegen
    Tokens
    Hallo␣Welt!
    ↓ im Vokabular nachschlagen
    Token-IDs
    17093449210
    ↓ Modell rechnet
    Ausgabe
    8241 → ␣Wie
    Hinein gehen Nummern, heraus kommt eine Nummer. Erst der Tokenizer macht daraus wieder Text. Die IDs sind ausgedacht.

    Im Modell wird jede ID sofort in einen langen Zahlenvektor übersetzt, ein sogenanntes Embedding – damit beginnt die eigentliche Rechnerei. Die ID selbst ist nur ein Index, so wie ein Array-Index nichts über den Inhalt verrät: Dass „Hund“ die Nummer 4711 hat und „Katze“ die 4712, hieße nicht, dass sie verwandt sind.

    Was daraus folgt

    Kosten, Grenzen, Tempo

    €

    Abrechnung

    APIs rechnen pro Token ab, Eingabe und Ausgabe meist getrennt – Ausgabe-Tokens sind in der Regel teurer.

    ⇥

    Kontextgrenze

    Das Kontextfenster ist in Tokens bemessen, nicht in Zeichen oder Seiten.

    ⏱

    Tempo

    Die Antwort entsteht Token für Token. Deshalb „tippt“ der Chat Stück für Stück.

    Faustregeln für die Länge

    TextGrobe Faustregel
    Englischetwa 4 Zeichen pro Token, etwa ¾ Wort pro Token
    Deutschspürbar mehr Tokens pro Wort, grob 1–2 – lange Komposita und weniger deutscher Trainingstext
    ProgrammcodeBezeichner werden oft zerlegt; Einrückung und Leerzeichen kosten mit
    Seltene Schriften, Emojisoft mehrere Tokens pro Zeichen

    Die genauen Werte hängen vom Tokenizer ab. Wer es exakt braucht: Die meisten Anbieter haben Zähl-Funktionen in ihren APIs oder Bibliotheken.

    Typische Schwächen

    Weil das Modell nie Buchstaben sieht, sind manche für Menschen triviale Aufgaben für es überraschend schwer:

    Frage
    Wie viele „e“ hat „Erdbeere“?
    Das Modell sieht
    ␣Erd beere  =  2910758312
    Die Buchstaben stecken unsichtbar in zwei Nummern. Das Modell muss aus dem Training „wissen“, wie diese Stücke buchstabiert werden.
    • Buchstaben zählen, rückwärts schreiben, Anagramme – das Modell sieht die Buchstaben nicht direkt.
    • Rechnen mit langen Zahlen – „1234567“ wird in beliebige Stücke wie 123 · 456 · 7 zerlegt, die Stellen liegen nicht sauber untereinander.
    • Reime und Silben – Klang und Silbengrenzen stimmen oft nicht mit den Token-Grenzen überein.

    Moderne Modelle können das trotzdem oft, weil sie viel darüber gelernt haben oder notfalls ein Werkzeug (z. B. Code) benutzen. Aber hier liegt der Grund, wenn es mal danebengeht.

    Für Entwickler übersetzt

    BegriffEntspricht ungefähr
    Tokenizerein Lexer – nur dass die Token-Grenzen nicht aus einer Grammatik stammen, sondern statistisch gelernt wurden
    Vokabulareine feste Map<String, Integer> bzw. ein riesiges enum mit z. B. 100 000 Konstanten
    Token-IDder ordinal()-Wert dieser Konstante – ein bedeutungsloser Index
    encode / decodeSerialisieren und Deserialisieren zwischen String und int[]
    // Pseudocode – echte Bibliotheken sehen ähnlich aus
    Tokenizer tok = Tokenizer.fuerModell("mein-modell");
    
    int[] ids = tok.encode("Hallo Welt!");   // z. B. [17093, 44921, 0]
    int anzahl = ids.length;                  // danach wird abgerechnet
    
    String text = tok.decode(ids);            // "Hallo Welt!" – verlustfrei zurück

    Der Vergleich mit dem Lexer ist ziemlich genau – das Wort „Token“ stammt sogar aus derselben Tradition. Der Unterschied: Der Java-Lexer liefert IDENTIFIER, LPAREN und Co., also Einheiten mit Bedeutung. Ein LLM-Tokenizer liefert einfach häufige Zeichenfolgen, egal ob sie sprachlich Sinn ergeben.

    Häufige Irrtümer

    „Ein Token ist ein Wort.“ – Nur bei häufigen, kurzen Wörtern. Lange oder seltene Wörter bestehen aus mehreren Tokens, Satzzeichen sind oft eigene.
    „Alle Modelle zählen gleich.“ – Jede Modellfamilie hat ihren eigenen Tokenizer. Derselbe Text kann bei verschiedenen Anbietern unterschiedlich viele Tokens ergeben.
    „Das Modell liest Buchstaben.“ – Es sieht nur Token-Nummern. Buchstabenwissen muss es indirekt gelernt haben.
    „Leerzeichen sind gratis.“ – Leerzeichen hängen meist am folgenden Wort, aber tiefe Einrückungen oder viele Leerzeilen kosten durchaus Tokens.

    Verwandte Begriffe