Interaktive Erklärung · etwa 5 Minuten

Wie viele r stecken in „strawberry“?

Du zählst sie in einer Sekunde. Ein Sprachmodell bekommt die Buchstaben gar nicht zu sehen. Hier findest du heraus, was es stattdessen erhält, mit dem echten Tokenizer hinter GPT-4o.

Loslegen

Ohne Anmeldung, ohne Installation. Deine Eingaben bleiben in deinem Browser.

Zähl die r

„Strawberry“ ist Englisch für Erdbeere. Bevor ein Modell das Wort bekommt, probier es selbst: Wie oft kommt der Buchstabe r darin vor?

strawberry

Deine Antwort

Genau diese Frage wurde zu einem bekannten Stolperstein: Sprachmodelle beantworteten sie oft falsch [1]. Den ersten Teil der Erklärung zeigt ein Blick darauf, was ein Modell erhält.

Was das Modell erhält

Ein Sprachmodell erhält nie deine Buchstaben. Ein Tokenizer schneidet den Text zuerst in Stücke aus einer festen Liste, seinem Vokabular, und ersetzt jedes Stück durch eine Zahl, seine Token-ID. Unten siehst du die Frage, zerlegt von o200k_base: dem Tokenizer, den OpenAIs Bibliothek tiktoken GPT-4o und neueren Modellen zuordnet [2][8].

  1. Wie34130
  2. ␣viele19877
  3. ␣r428
  4. ␣hat4545
  5. ␣strawberry101830
  6. ?30

Sieh dir „strawberry“ an: Zusammen mit dem Leerzeichen davor ist das ganze Wort ein einziger Eintrag im Vokabular, die Nummer 101830. Das Modell erhält diese eine Zahl, nicht zehn Buchstaben.

Die Zahl ist nur ein Etikett, wie eine Schließfachnummer: 101830 ist nicht in irgendeinem wichtigen Sinn „größer“ als 428. Das Modell schlägt damit eine Liste gelernter Werte nach. Welche Buchstaben in 101830 stecken, steht nicht in der Zahl. Was ein Modell über die Schreibweise dieses Tokens weiß, muss es im Training aufgeschnappt haben.

Gleiches Wort, andere Zahlen

Das Vokabular speichert Stücke mit ihren exakten Zeichen. Ein Leerzeichen, ein Großbuchstabe oder ein anderer Tokenizer führen deshalb zu anderen Stücken.

„ strawberry“ mitten im Satz (mit Leerzeichen)

  1. ␣strawberry101830

„strawberry“ ganz am Anfang

  1. st302
  2. raw1618
  3. berry19772

„Strawberry“

  1. Str3504
  2. aw1134
  3. berry19772

„STRAWBERRY“

  1. ST1117
  2. RAW46176
  3. B33
  4. ERRY132354

„strawberry“ im älteren Tokenizer von GPT-4, cl100k_base

  1. str496
  2. aw675
  3. berry15717

„Erdbeere“, zum Vergleich

  1. E36
  2. rd9290
  3. be1464
  4. ere512

Das Stück „berry“ behält in „strawberry“ und „Strawberry“ dieselbe Nummer, 19772: Der Tokenizer verwendet Stücke wieder. Und eine neue Modellgeneration kann einen neuen Tokenizer mitbringen. cl100k_base von GPT-4 zerlegt dasselbe Wort in „str“, „aw“, „berry“, mit ganz anderen IDs [2]. Eine ID bedeutet nur zusammen mit ihrem Tokenizer etwas. Auch das deutsche „Erdbeere“ ist kein ganzes Vokabular-Stück: Es zerfällt in vier Teile, und das r steckt in „rd“ und „ere“.

Du bist dran

Tipp irgendetwas ein: deinen Namen, ein langes Wort, eine Telefonnummer, ein Emoji. Der echte Tokenizer o200k_base läuft direkt hier in deinem Browser, nichts von deiner Eingabe wird verschickt.

Oder probier:

Der Tokenizer lädt, sobald du tippst.

  1. st302
  2. raw1618
  3. berry19772

10 Zeichen → 3 Tokens

Drei weitere Überraschungen

Zahlen werden in Dreiergruppen geschnitten

  1. 1237633
  2. 45619354
  3. 722

Aus „1234567“ wird „123“, „456“, „7“: Der Tokenizer fasst Ziffern von links in Dreiergruppen zusammen [3]. Üblich ist die Gruppierung von rechts: 1.234.567. Die Stücke des Tokenizers passen nicht dazu: Die „7“ am Ende ist die Einerstelle, „123“ dagegen mischt Millionen, Hunderttausender und Zehntausender. In einer Studie rechneten GPT-3.5 und GPT-4 deutlich besser, wenn die Zahlen stattdessen von rechts gruppiert waren, weil sie mit Tausendertrennzeichen geschrieben wurden [4].

Dieses Emoji ist nicht einmal ein Token

  1. F0 9F 8D102415
  2. 93241

In UTF-8, der üblichen Art, Text zu speichern, belegt 🍓 vier Bytes: F0 9F 8D 93. o200k_base verteilt sie auf zwei Tokens, „F0 9F 8D“ und „93“. Keines davon ist ein ganzes Zeichen, erst zusammen ergeben sie die Erdbeere. Weil der Tokenizer immer auf Bytes ausweichen kann, verarbeitet er jeden Text, auch solchen, den er beim Aufbau seines Vokabulars nie gesehen hat [5].

Manche Sprachen brauchen mehr Tokens

SpracheSatzUnicode-Zeicheno200k_basecl100k_base
EnglischI would like a cup of coffee, please.371010
DeutschIch hätte gern eine Tasse Kaffee, bitte.401013
GriechischΘα ήθελα ένα φλιτζάνι καφέ, παρακαλώ.371837
Hindiमुझे एक कप कॉफ़ी चाहिए, कृपया।301334

Dieselbe Bitte, übersetzt. Englisch und Deutsch brauchen je 10 Tokens, Griechisch 18 und Hindi 13. Mit dem älteren Tokenizer von GPT-4 brauchte Griechisch 37 und Hindi 34. Mehr Tokens belegen mehr von der begrenzten Eingabe des Modells und kosten mehr, wo pro Token abgerechnet wird; eine Studie von 2023 fand zwischen Sprachen Unterschiede bis zum 15-Fachen [6]; neuere Tokenizer wie o200k_base verkleinern den Abstand, wie die Tabelle zeigt, schließen ihn aber nicht.

Ist also der Tokenizer schuld?

Zum Teil. Er erklärt, warum die Buchstaben nicht direkt in der Eingabe stehen: Das Modell erhält 101830, nicht s-t-r-a-w-b-e-r-r-y. Die Forschung zeigt aber, dass das nicht die ganze Geschichte ist.

  • In einem Test von 2024 schienen die meisten Modelle die Schreibweise ihrer Tokens zu kennen, scheiterten aber daran, ein Wort Buchstabe für Buchstabe zu verändern [7].
  • Eine Studie von 2024 ließ acht Modelle, darunter GPT-4o, Buchstaben zählen. Die Modelle erkannten meist, welche Buchstaben in einem Wort vorkommen, zählten sie aber oft falsch, vor allem Buchstaben, die mehr als zweimal vorkommen. Wie häufig ein Wort oder seine Tokens waren, machte keinen nennenswerten Unterschied. Die Autoren folgern, dass die Tokenisierung nicht die grundlegende Ursache ist [1].

Wiederholte Buchstaben zu zählen ist also eine eigene Schwäche, zusätzlich zum Tokenizer. Sieh, was das Buchstabieren ändert und was nicht:

„strawberry“ am Textanfang: 3 Tokens (mitten im Satz das eine Token 101830)

  1. st302
  2. raw1618
  3. berry19772

„s t r a w b e r r y“: 10 Tokens

  1. s82
  2. ␣t260
  3. ␣r428
  4. ␣a261
  5. ␣w286
  6. ␣b287
  7. ␣e319
  8. ␣r428
  9. ␣r428
  10. ␣y342

Jetzt hat jeder Buchstabe eine eigene Position, und das r kommt dreimal als dieselbe Zahl an, 428. Die Buchstaben stehen in der Eingabe selbst; das Modell muss sie nicht mehr aus dem Inneren eines Tokens abrufen. Damit ist das erste Hindernis weg. Das zweite bleibt: Mitzählen, wie viele r schon vorbeigekommen sind, muss das Modell trotzdem, und genau dabei fand die Studie von 2024 die Fehler. Ob ein bestimmter Chatbot die Erdbeer-Frage heute richtig beantwortet, hängt vom Modell und seiner Version ab.

Tiefer einsteigen

Diese Seite gehört zu KI einfach verstehen, einem kostenlosen, zweisprachigen Kurs (Deutsch und Englisch), der Schritt für Schritt erklärt, wie KI funktioniert, ohne Hype und ohne Formeln vorweg.

Weiter mit den Bausteinen

Offen entwickelt

Diese Erklärung und die ganze Website sind Open Source. Einen Fehler gefunden oder ein besseres Beispiel? Eröffne ein Issue. Wenn du das Projekt später wiederfinden willst, funktioniert ein Stern auf GitHub wie ein Lesezeichen.

Code auf GitHub ansehen

Fragen?

Frag in der Community, wo andere Lernende und das Projekt über die Bausteine sprechen.

Zur Community

Quellen

Geprüft am 6. Oktober 2026. Token-Stücke und IDs lassen sich mit tiktoken oder der zuletzt genannten Bibliothek nachprüfen.

  1. Fu, Ferrando, Conde, Arriaga, Reviriego (2024): Why Do Large Language Models (LLMs) Struggle to Count Letters? arXiv:2412.18626Buchstaben zählen, etwa die r in „strawberry“, fällt Sprachmodellen schwer. In Tests mit acht Modellen, darunter GPT-4o, erkannten die Modelle, welche Buchstaben in einem Wort vorkommen, zählten sie aber falsch, vor allem Buchstaben, die mehr als zweimal vorkommen; die Häufigkeit von Wort und Tokens hatte keinen nennenswerten Einfluss, und die Autoren folgern, dass die Tokenisierung nicht die grundlegende Ursache ist. GPT-4os Tokenizer zerlegt „strawberry“ in „st“, „raw“, „berry“.
  2. OpenAI tiktoken: tiktoken/model.py (model-to-encoding mapping)tiktoken ordnet GPT-4o, GPT-4.1, o1, o3 und GPT-5 die Kodierung o200k_base zu, GPT-4 die Kodierung cl100k_base.
  3. OpenAI tiktoken: tiktoken_ext/openai_public.py (split patterns)Vor dem Zusammenfügen schneiden cl100k_base und o200k_base Ziffernfolgen in Gruppen aus ein bis drei Ziffern (Muster \p{N}{1,3}).
  4. Singh, Strouse (2024): Tokenization counts: the impact of tokenization on arithmetic in frontier LLMs. arXiv:2402.14903GPT-3.5 und GPT-4 nutzen eigene Tokens für ein-, zwei- und dreistellige Zahlen; erzwingt man die Gruppierung von rechts mit Tausendertrennzeichen, rechnen sie deutlich besser.
  5. OpenAI tiktoken: READMEBPE, wie tiktoken es nutzt, ist umkehrbar und verlustfrei und funktioniert mit beliebigem Text, auch mit Text, der nicht in den Trainingsdaten des Tokenizers vorkam.
  6. Petrov, La Malfa, Torr, Bibi (2023): Language Model Tokenizers Introduce Unfairness Between Languages. NeurIPS 2023, arXiv:2305.15425Derselbe Text in verschiedenen Sprachen kann sehr unterschiedlich viele Tokens ergeben, in manchen Fällen bis zum 15-Fachen, mit Folgen für Kosten, Wartezeit und die Menge an Kontext, die hineinpasst.
  7. Edman, Schmid, Fraser (2024): CUTE: Measuring LLMs’ Understanding of Their Tokens. EMNLP 2024, arXiv:2409.15452Die meisten getesteten Sprachmodelle scheinen die Schreibweise ihrer Tokens zu kennen, nutzen dieses Wissen aber kaum, um Text auf Buchstabenebene zu verändern.
  8. gpt-tokenizer 4.0.0 (MIT), a JavaScript port of tiktoken’s encodingsAlle Token-Stücke und IDs auf dieser Seite wurden mit den Kodierungen o200k_base und cl100k_base dieser Bibliothek berechnet; die freie Eingabe führt sie in deinem Browser aus.