Was sind Tokens?
Tokens sind die Textbausteine, die Modelle von OpenAI verarbeiten. Je nach Sprache und Kontext können sie aus einem einzelnen Zeichen oder einem ganzen Wort bestehen. Leerzeichen, Satzzeichen und Wortteile fließen alle in die Anzahl der Tokens ein. So unterteilt die API deinen Text intern, bevor sie eine Antwort generiert.
Nützliche Faustregeln für englische Texte:
1 Token ≈ 4 Zeichen
1 Token ≈ ¾ eines Wortes
100 Tokens ≈ 75 Wörter
1–2 Sätze ≈ 30 Tokens
1 Absatz ≈ 100 Tokens
ca. 1.500 Wörter ≈ 2.048 Tokens
Die Tokenisierung variiert je nach Modell und Kodierung. Verwende das Tokenizer-Tool oder tiktoken.encoding_for_model(model), um die genaue Anzahl für dein Zielmodell zu ermitteln.
Beispiele
Hier sind einige reale Textbeispiele mit ihrer ungefähren Anzahl an Tokens:
Wayne Gretzkys Zitat „Du verfehlst 100 % der Schüsse, die du nicht abgibst“ = 11 Tokens
Die OpenAI Charter = 476 Tokens
Die Unabhängigkeitserklärung der USA = 1.695 Tokens
So wird die Anzahl der Tokens berechnet
Wenn du Text an die API sendest:
Der Text wird in Tokens aufgeteilt.
Das Modell verarbeitet diese Tokens.
Die Antwort wird als Abfolge von Tokens generiert und anschließend wieder in Text umgewandelt.
Die Token-Nutzung wird in mehreren Kategorien erfasst:
Eingabe-Tokens: Tokens in deiner Anfrage.
Ausgabe-Tokens: Tokens, die in der Antwort generiert werden.
Zwischengespeicherte Tokens: wiederverwendete Tokens aus dem Gesprächsverlauf, die oft zu einem reduzierten Preis abgerechnet werden.
Reasoning-Tokens: Bei einigen fortschrittlichen Modellen werden intern zusätzliche „Denkschritte“ ausgeführt, bevor das endgültige Ergebnis erzeugt wird.
Diese Werte erscheinen in den Metadaten deiner API-Antwort und dienen der Abrechnung und Nutzungsverfolgung.
Um die Tokenisierung genauer zu untersuchen, kannst du unser interaktives Tokenizer-Tool verwenden. Damit kannst du die Anzahl der Tokens berechnen und sehen, wie Text in Tokens aufgeteilt wird.
Wenn du Text stattdessen programmgesteuert tokenisieren möchtest, verwende Tiktoken. Das ist ein schneller BPE-Tokenizer speziell für Modelle von OpenAI.
Token-Limits
Jedes Modell hat ein maximales kombiniertes Token-Limit für Eingabe und Ausgabe. Aktuelle Modelle mit hoher Kapazität unterstützen Kontextfenster mit bis zu mehreren Hunderttausend Tokens. Die praktischen Limits können jedoch je nach Modellversion und Nutzungstarif variieren.
Wenn du das Limit überschreitest, kannst du:
Prompts kürzen oder umformulieren.
Große Texte in kleinere Abschnitte aufteilen.
Eingaben vor dem Senden zusammenfassen oder vorverarbeiten.
Token-Preise
Die API-Nutzung wird pro Token abgerechnet. Der Preis hängt vom Modell und davon ab, ob es sich um Eingabe-, Ausgabe- oder zwischengespeicherte Tokens handelt. Die aktuellen Preise findest du auf der Preisseite von OpenAI. Einige Reasoning-Modelle verwenden intern möglicherweise mehr Tokens, sollen die Effizienz aber steigern, indem sie die Zahl der benötigten Tokens pro abgeschlossener Aufgabe reduzieren.
Tokens genauer untersuchen
Die API verarbeitet Wörter entsprechend ihrem Kontext in den Korpusdaten. Modelle nehmen den Prompt entgegen, wandeln die Eingabe in eine Liste von Tokens um, verarbeiten den Prompt und wandeln die vorhergesagten Tokens wieder in die Wörter um, die wir in der Antwort sehen.
Zwei für uns identisch erscheinende Wörter können je nach ihrer Struktur im Text als unterschiedliche Tokens generiert werden. Sieh dir an, wie die API abhängig vom Kontext im Text Token-Werte für das Wort „red“ generiert:
Im ersten Beispiel oben enthält der Token „2266“ für „ red“ ein nachgestelltes Leerzeichen. Hinweis: Diese Token-IDs sind Beispiele zu Demonstrationszwecken.
Der Token „2296“ für „ Red“ (mit einem vorangestellten Leerzeichen und einem Großbuchstaben am Anfang) unterscheidet sich vom Token „2266“ für das kleingeschriebene „ red“.
Wenn „Red“ am Anfang eines Satzes steht, enthält der generierte Token kein vorangestelltes Leerzeichen. Der Token „7738“ unterscheidet sich von den beiden vorherigen Beispielen für dieses Wort.
Beobachtungen:
Je wahrscheinlicher oder häufiger ein Token ist, desto niedriger ist die ihm zugewiesene Token-Nummer:
Der für den Punkt generierte Token ist in allen drei Sätzen gleich („13“). Das liegt daran, dass der Punkt im Kontext der gesamten Korpusdaten sehr ähnlich verwendet wird.
Der für „red“ generierte Token variiert je nach Position im Satz:
Kleingeschrieben in der Satzmitte: „ red“ (Token: „2266“)
Großgeschrieben in der Satzmitte: „ Red“ (Token: „2297“)
Großgeschrieben am Satzanfang: „Red“ (Token: „7738“)
