Token
Ein Token ist eine Eingabeeinheit, die ein Modell verarbeitet, etwa ein Teilwort oder ein Bildausschnitt. Erfahre, wie Tokenizer Text aufteilen, was visuelle Tokens sind und welche Kosten Tokens verursachen.
Ein Token ist die grundlegende Einheit der Eingabe und Ausgabe, die ein KI-Modell verarbeitet: ein Wort, ein Wortteil, ein Zeichen oder ein Byte in Text oder ein Pixelbereich in einem Bild. Bevor ein Transformer einen Satz oder ein Bild lesen kann, zerlegt ein Tokenizer die Eingabe in Tokens und ordnet jedem eine ganzzahlige ID zu. Das Modell ruft für jede ID einen Einbettungsvektor ab. Die Anzahl der Tokens bestimmt sowohl, was ein Modell verarbeiten kann, als auch die Kosten: Ein Kontextfenster wird in Tokens gemessen, große Sprachmodelle (LLMs) erzeugen Text Token für Token, und kommerzielle APIs berechnen Eingabe- und Ausgabetokens einzeln.
Token, Tokenisierung und verwandte Begriffe#
- Tokenisierung: Der Prozess, der rohe Eingaben in Tokens aufteilt. Ein Token ist eine Einheit der Ausgabe.
- Wortschatz und Token-IDs: Der Wortschatz eines Tokenizers ist die feste Menge der Tokens, die er kennt. Jedes Token hat eine ganzzahlige ID. BERT verwendet 30,522 Tokens, GPT-2 50,257, Llama 3 128,256 und Gemma 3 etwa 262,000.
- Spezielle Tokens: Markierungen für die Struktur einer Sequenz, etwa Tokens für Textanfang, Textende und Auffüllung oder das Token
[CLS], dessen abschließende Einbettung BERT zur Klassifizierung verwendet. - Einbettungen: Die erlernten Vektoren, die die erste Schicht des Modells für jede Token-ID abruft und die Bedeutung des Tokens in das Netz übertragen.
Texttokens#
Ein Wortschatz aus vollständigen Wörtern kann nicht alle Namen, Tippfehler und neuen Begriffe abdecken, und einzelne Zeichen führen zu sehr langen Sequenzen. Moderne Tokenizer verwenden daher Wortteile: Häufige Wörter werden zu einzelnen Tokens, seltene Wörter in wiederverwendbare Teile zerlegt. Byte-Pair-Kodierung (BPE), die Sennrich und Kolleginnen und Kollegen 2016 für neuronale maschinelle Übersetzung anpassten, beginnt mit einzelnen Zeichen und fügt wiederholt das häufigste benachbarte Paar zusammen, bis der Wortschatz die gewünschte Größe erreicht. GPT-Modelle wenden BPE auf Bytes an, sodass sich beliebiger Text, einschließlich Code und Emojis, kodieren lässt. WordPiece (verwendet von BERT) und das Unigram-Modell von SentencePiece sind verwandte Verfahren zur Zerlegung in Wortteile. Der hier aus dem Hugging Face Hub geladene BPE-Tokenizer von CLIP zeigt, wie Wörter zerlegt werden:
from transformers import AutoTokenizer
# Load CLIP's byte-pair-encoding (BPE) tokenizer from the Hugging Face Hub
tokenizer = AutoTokenizer.from_pretrained("openai/clip-vit-base-patch32")
for text in ["bus", "double-decker bus", "unhappiness", "Ultralytics"]:
tokens = tokenizer.tokenize(text)
print(f"{text!r} -> {tokens} -> {tokenizer.convert_tokens_to_ids(tokens)}")„bus“ ist ein einzelnes Token mit der ID 2840, „unhappiness“ wird in un und happiness zerlegt, und das seltene Wort „Ultralytics“ wird in drei Teile aufgespalten: ultr, aly und tics. Das Suffix </w> kennzeichnet das Wortende im CLIP-Wortschatz mit 49,408 Tokens. Der CLIP-Textencoder verarbeitet pro Prompt höchstens 77 Tokens.
Visuelle Tokens#
Der Vision Transformer (ViT), vorgestellt im Paper Ein Bild ist 16 × 16 Wörter wert, zerlegt ein Bild in gleich große Ausschnitte – bei ViT-B/16 mit 16 × 16 Pixeln – und bildet jeden Ausschnitt auf eine Einbettung ab. So wird ein Bild mit 224 × 224 Pixeln zu 196 Tokens. Positionseinbettungen halten fest, woher jeder Ausschnitt stammt, und ein zusätzliches Klassen-Token sammelt Informationen für die Klassifizierung. Die Projektion wird üblicherweise als Faltung implementiert, deren Schrittweite der Kernelgröße entspricht:
import torch
# ViT-B/16 patch embedding: a 16x16 convolution with stride 16 turns each patch into one 768-dim token
patch_embed = torch.nn.Conv2d(3, 768, kernel_size=16, stride=16)
for size in (224, 448):
image = torch.rand(1, 3, size, size)
tokens = patch_embed(image).flatten(2).transpose(1, 2) # (batch, tokens, dims)
print(f"{size}x{size} image -> {tuple(tokens.shape)}")Ein Bild mit 224 × 224 Pixeln ergibt 196 Tokens mit jeweils 768 Werten. Eine Verdopplung der Seitenlänge auf 448 Pixel ergibt 784 Tokens, also viermal so viele. Selbstaufmerksamkeit vergleicht jedes Token mit jedem anderen. Viermal so viele Tokens bedeuten daher etwa sechzehnmal so viel Aufwand für Attention. Deshalb verwenden Modelle mit hoher Auflösung Fenster-Attention wie beim Swin Transformer oder fassen ähnliche Tokens mithilfe von Token-Zusammenführung zusammen.
Visuelle Sprachmodelle übergeben visuelle Tokens eines Bildencoders zusammen mit Texttokens an ein LLM. So verarbeitet ein Transformer beide gemeinsam und verfasst seine Antwort Token für Token:
Warum die Anzahl der Tokens wichtig ist#
- Kontextgrenzen: Der Prompt, alle abgerufenen Dokumente oder Bilder und die generierte Antwort müssen gemeinsam in das Kontextfenster des Modells passen.
- Kosten und Latenz: APIs berechnen Eingabe- und Ausgabetokens getrennt. Die Generierungszeit steigt mit der Zahl der Ausgabetokens, da jedes einzelne einen Dekodierungsschritt erfordert, der den KV-Cache des Modells ausliest.
- Sprachen und Formate: Tokenizer, die überwiegend mit englischen Texten trainiert wurden, zerlegen andere Sprachen, Code und lange Zahlen in mehr Tokens pro Wort. Dadurch steigen die Kosten für denselben Inhalt, und das Kontextfenster ist schneller gefüllt.
- Aufgaben auf Zeichenebene: Ein Modell sieht Wortteile als Tokens. Aufgaben, die von einzelnen Buchstaben abhängen, etwa Buchstaben in einem Wort zu zählen oder es umzukehren, sind für das Modell daher schwieriger, als sie wirken.
Anwendungen in der Praxis#
- Textgenerierung: Ein LLM weist jedem Token in seinem Wortschatz eine Wahrscheinlichkeit zu, zieht eines davon, hängt es an die Sequenz an und wiederholt den Vorgang. Auswahlverfahren wie Nucleus Sampling wählen dabei aus den wahrscheinlichen Tokens aus.
- Bildgenerierung: Autoregressive Bildmodelle sagen diskrete visuelle Tokens aus einem erlernten Codebuch voraus, das durch Vektorquantisierung erstellt wurde – ähnlich wie ein LLM Wörter vorhersagt.
- Erkennung mit offenem Wortschatz: YOLOE-26, die auf YOLO26 basierende Variante von Tsinghua-Universitäts YOLOE im Ultralytics-Paket, findet Objekte anhand eingegebener Klassennamen. Die Methode
set_classes()tokenisiert jeden Namen mit CLIPs BPE-Tokenizer. Apples MobileCLIP2-Textencoder wandelt die Tokens in eine Einbettung um, und das Modell gleicht diese Einbettungen mit Bildbereichen ab. So kann es allein anhand der Wörter einen „double-decker bus“ erkennen – eine Klasse, die nicht zum COCO-Datensatz gehört.










