Token
Token ist ein zentraler Begriff in der Informatik mit unterschiedlichen Bedeutungen je nach Kontext. Im Bereich Natural Language Processing (NLP) und bei Large Language Models (LLMs) wie ChatGPT bezeichnet ein Token die kleinste Einheit, in die Text zerlegt wird, bevor ihn ein KI-Modell verarbeiten kann.
Wenn du eine Nachricht an einen Chatbot sendest, wird dein Text nicht als Ganzes verarbeitet. Stattdessen zerlegt ein Tokenizer den Text in einzelne Tokens. Diese Tokens werden dann in Zahlen umgewandelt, mit denen das neuronale Netz rechnen kann. Ein Token kann dabei ein ganzes Wort sein, ein Wortteil, ein einzelnes Zeichen oder sogar ein Satzzeichen.
Was ist Tokenisierung?
Tokenisierung (englisch: Tokenization) ist der Prozess, bei dem Rohtext in eine Sequenz von Tokens umgewandelt wird. Dieser Schritt ist fundamental für die Textverarbeitung in der Informatik. Ohne Tokenisierung könnte ein Sprachmodell keinen Text verstehen oder generieren.
Der Tokenizer bestimmt, wie ein Text aufgeteilt wird. Je nach verwendetem Verfahren entstehen unterschiedlich viele Tokens aus demselben Text. Ein Satz wie "Ich lerne Programmieren" könnte in vier Wort-Tokens zerlegt werden, bei einem Subword-Tokenizer aber auch in mehr oder weniger Einheiten.
Arten der Tokenisierung
Es gibt verschiedene Ansätze, Text in Tokens zu zerlegen. Die Wahl des Tokenisierungsverfahrens hat erheblichen Einfluss auf die Leistungsfähigkeit eines Sprachmodells.
- Wort-Tokenisierung: Jedes Wort wird zu einem Token. Einfach, aber problematisch bei unbekannten Wörtern.
- Zeichen-Tokenisierung: Jedes Zeichen ist ein Token. Sehr flexibel, aber ineffizient für lange Texte.
- Subword-Tokenisierung: Wörter werden in häufige Bestandteile zerlegt. Kombiniert die Vorteile beider Ansätze.
Subword-Tokenisierung: Der moderne Standard
Moderne Sprachmodelle wie GPT, BERT oder LLaMA verwenden fast ausschließlich Subword-Tokenisierung. Bei diesem Verfahren werden häufige Wörter als Ganzes belassen, während seltene Wörter in bekannte Teilstücke zerlegt werden.
Das deutsche Wort "Programmiersprache" könnte beispielsweise in die Subwords "Programm", "ier" und "sprache" aufgeteilt werden. So kann das Modell auch Wörter verarbeiten, die es während des Trainings nie gesehen hat, indem es die bekannten Bestandteile kombiniert.
BPE: Byte-Pair Encoding
BPE (Byte-Pair Encoding) ist eines der verbreitetsten Subword-Verfahren. Der Algorithmus startet mit einem Basisvokabular aus einzelnen Zeichen und fügt iterativ die häufigsten Zeichenpaare zusammen, bis eine gewünschte Vokabulargröße erreicht ist.
Beispiel BPE-Prozess:
Start: l o w l o w e r l o w e s t
Schritt 1: lo w lo w e r lo w e s t ("lo" wird zusammengefügt)
Schritt 2: low low e r low e s t ("low" wird zusammengefügt)
Schritt 3: low lower lowest (weitere Zusammenfügungen)
GPT-Modelle von OpenAI nutzen eine Variante namens Byte-Level BPE, die auf Byte-Ebene arbeitet und dadurch jede beliebige Zeichenkette verarbeiten kann, unabhängig von der Sprache oder Sonderzeichen.
WordPiece
WordPiece ist ein ähnliches Verfahren, das von Google für Modelle wie BERT entwickelt wurde. Der Unterschied zu BPE liegt darin, dass WordPiece bei der Auswahl der Zusammenfügungen ein probabilistisches Ziel optimiert, anstatt nur die Häufigkeit zu betrachten.
Ein charakteristisches Merkmal von WordPiece ist die Verwendung von Präfixen wie "##" zur Markierung von Wortfortsetzungen. Das Wort "playing" wird beispielsweise zu ["play", "##ing"] tokenisiert.
Token-Limits bei Sprachmodellen
Jedes Sprachmodell hat ein Kontextfenster (Context Window), das die maximale Anzahl an Tokens begrenzt, die es gleichzeitig verarbeiten kann. Dieses Limit umfasst sowohl die Eingabe (deine Frage) als auch die Ausgabe (die Antwort des Modells).
| Modell | Kontextfenster | Typische Tokens pro Wort |
|---|---|---|
| GPT-3.5 | 16.000 Tokens | ~1,3 (Englisch) |
| GPT-4o | 128.000 Tokens | ~1,3 (Englisch) |
| GPT-4.1 | 1.000.000+ Tokens | ~1,3 (Englisch) |
| Claude 3 | 200.000 Tokens | ~1,3 (Englisch) |
| BERT | 512 Tokens | ~1,3 (Englisch) |
Bei deutschen Texten liegt das Verhältnis typischerweise höher: Ein deutsches Wort entspricht etwa 1,5 bis 2 Tokens, da zusammengesetzte Wörter und Umlaute mehr Tokens benötigen. Ein Text mit 1.000 deutschen Wörtern verbraucht also etwa 1.500 bis 2.000 Tokens.
Tokens und API-Kosten
Bei der Nutzung von KI-APIs wie der OpenAI API werden Kosten pro verbrauchtem Token berechnet. Dabei wird zwischen Input-Tokens (deine Anfrage) und Output-Tokens (die generierte Antwort) unterschieden.
Beispiel API-Preise (Stand 2025):
- GPT-4o: ~2,50 USD pro Million Input-Tokens, ~10 USD pro Million Output-Tokens
- GPT-3.5 Turbo: ~0,50 USD pro Million Input-Tokens, ~1,50 USD pro Million Output-Tokens
Für Entwickler ist es daher wichtig, Prompts effizient zu gestalten und unnötige Tokens zu vermeiden. Systemanweisungen, die bei jeder Anfrage mitgesendet werden, verbrauchen ebenfalls Tokens und sollten optimiert werden.
Praktisches Beispiel: Tokenisierung in Python
Mit der Python-Bibliothek tiktoken von OpenAI kannst du selbst nachvollziehen, wie Text tokenisiert wird. Das ist hilfreich, um Token-Verbrauch zu schätzen oder zu verstehen, warum bestimmte Eingaben mehr Tokens benötigen.
import tiktoken
# Tokenizer für GPT-4 laden
encoder = tiktoken.encoding_for_model("gpt-4")
# Text tokenisieren
text = "Hallo, ich lerne Natural Language Processing!"
tokens = encoder.encode(text)
print(f"Text: {text}")
print(f"Anzahl Tokens: {len(tokens)}")
print(f"Token-IDs: {tokens}")
# Tokens einzeln anzeigen
for token_id in tokens:
token_text = encoder.decode([token_id])
print(f" Token {token_id}: '{token_text}'")
Die Ausgabe zeigt dir genau, wie der Tokenizer deinen Text zerlegt. Du wirst sehen, dass Wörter wie "Natural" und "Language" als einzelne Tokens erkannt werden, während "Processing" möglicherweise in Subwords aufgeteilt wird.
Token im Vergleich zu anderen Bedeutungen
Der Begriff "Token" hat in der IT mehrere Bedeutungen. In der Softwareentwicklung und IT-Sicherheit wird er oft anders verwendet als im NLP-Kontext.
| Kontext | Bedeutung |
|---|---|
| NLP/LLM | Kleinste Texteinheit für Sprachmodelle |
| Authentifizierung | Digitaler Schlüssel zur Identitätsprüfung (z.B. JWT, OAuth-Token) |
| Lexikalische Analyse | Grundbaustein beim Parsen von Quellcode |
| Netzwerke | Datenpaket bei Token-Ring-Netzwerken |
| Kryptowährung | Digitale Werteinheit auf einer Blockchain |
Bei Authentifizierungs-Tokens handelt es sich um kryptografisch signierte Zeichenketten, die Benutzeridentitäten oder Berechtigungen repräsentieren. Ein JSON Web Token (JWT) enthält beispielsweise verschlüsselte Informationen über den Benutzer und wird zur Absicherung von API-Zugriffen verwendet.
Relevanz in der IT-Praxis
Das Verständnis von Tokens ist für angehende Fachinformatikerinnen und Fachinformatiker in mehreren Bereichen relevant. Im Anwendungsentwicklung-Schwerpunkt begegnest du Tokens sowohl bei der Integration von KI-APIs als auch bei der Implementierung von Authentifizierungssystemen.
Wenn du KI-Funktionen in Anwendungen integrierst, musst du Token-Limits berücksichtigen und Kosten kalkulieren. Bei der Entwicklung von Web-Anwendungen arbeitest du mit Authentifizierungs-Tokens für sichere Benutzeranmeldungen. Beide Anwendungsfälle erfordern ein grundlegendes Verständnis dessen, was Tokens sind und wie sie funktionieren.
Quellen und weiterführende Links
- OpenAI Tokenizer Tool - Interaktives Tool zur Visualisierung der Token-Zerlegung
- Hugging Face Tokenizers - Dokumentation zu verschiedenen Tokenizer-Implementierungen
- tiktoken auf GitHub - OpenAIs Python-Bibliothek für Tokenisierung
- BERT Paper - Wissenschaftliche Arbeit zu WordPiece-Tokenisierung
- OpenAI API Pricing - Aktuelle Token-basierte Preisgestaltung