Gestern sind Sie an ein Token-Limit gestoßen. Nicht, weil Ihr Prompt zu lang war – weil Sie nicht verstanden haben, wie Tokens funktionieren. Sie haben ein 3.000 Wörter langes Dokument an Claude gesendet, zugesehen, wie es die ersten 2.800 Wörter verarbeitet, und dann eine gekürzte Antwort erhalten. Das Problem war nicht Ihre Anfrage. Es lag daran, dass Sie Output-Tokens, System-Prompts und die unterschiedliche Zählweise von Text durch verschiedene Modelle nicht berücksichtigt haben.
Tokenisierung ist, wie LLMs Text in Chunks zerlegen, bevor sie ihn verarbeiten. Verstehen Sie es, und Sie werden aufhören, API-Credits zu verschwenden. Ignorieren Sie es, und jede Integration, die Sie erstellen, wird sich in großem Maßstab unerwartet verhalten.
Was Tokens tatsächlich sind
Ein Token ist kein Wort. Das ist wichtig.
In den meisten englischen Texten gilt: Ein Token ≈ 4 Zeichen oder 0,75 Wörter. Aber dieses Verhältnis bricht schnell zusammen. Satzzeichen, Leerzeichen, Zahlen, Code und nicht-englischer Text werden unterschiedlich tokenisiert. Ein Komma kann ein Token sein. Eine Zahl wie 1.234.567 kann drei oder vier sein. Das Wort Tokenisierung ist ein Token. Das Akronym CPU ist manchmal eines, manchmal drei, je nach Modell.
Verschiedene Modelle verwenden unterschiedliche Tokenizer. GPT-4o verwendet einen anderen Tokenizer als Claude Sonnet 4. Der cl100k_base Tokenizer von OpenAI zählt Text auf eine Weise. Der Tokenizer von Anthropic zählt ihn anders. Derselbe Prompt kann bei GPT-4o 150 Tokens kosten und bei Claude 140 Tokens – oder umgekehrt.
Diese Inkonsistenz ist der Grund, warum Sie Token-Anzahlen nicht im Kopf schätzen können. Sie müssen messen.
Input- vs. Output-Tokens (und warum beide wichtig sind)
Token-Limits haben zwei Seiten: Was Sie hineinsenden und was zurückkommt.
Ihr Input umfasst den System-Prompt, die Benutzernachricht, den gesamten Gesprächsverlauf und jeden Kontext, den Sie hinzugefügt haben. Ihr Output ist die Antwort des Modells. Die meisten Plattformen berechnen sie separat – Output-Tokens sind oft teurer als Input-Tokens. GPT-4o beispielsweise berechnet 5 $ pro 1 Mio. Input-Tokens und 15 $ pro 1 Mio. Output-Tokens. Dieses 3:1-Verhältnis beeinflusst, wie Sie Ihre Anfragen strukturieren sollten.
Wenn Sie Dokumente zusammenfassen, sind diese Tokens stark Input-lastig. Wenn Sie Code generieren, dominieren Output-Tokens. Wenn Sie eine Multi-Turn-Konversation führen, bei der Sie bei jedem Turn den Kontext wiederholen, zahlen Sie wiederholt Input-Token-Kosten für dieselbe Information.
Token-Limits in der Produktion: Wo sie versagen
Kontextfenster sind gewachsen – Claude 3.5 Sonnet unterstützt 200.000 Tokens, GPT-4o unterstützt 128.000. Aber Wachstum bedeutet nicht, dass Ihre Limits verschwunden sind. Es bedeutet, dass Ihre Limits jetzt anders sind.
Hier ist das eigentliche Muster: Wenn Ihr Fenster wächst, wachsen Ihre Prompts, um es zu füllen. Ingenieure beginnen, ganze Codebasen anstelle von Snippets einzubeziehen. Analysten beziehen vollständige Datensätze anstelle von Stichproben. Anwälte beziehen ganze Dokumente anstelle von Auszügen. Die Kosten pro Anfrage steigen. Die Antwortlatenz nimmt zu. Und irgendwo bei 80-85 % Ihres verfügbaren Kontexts beginnen die meisten Modelle schlechter zu performen – nicht besser. Sie verlieren den Fokus bei langen Kontexten.
Das praktische Limit ist nicht das technische Maximum. Es ist der Punkt, an dem Kosten oder Latenz unannehmbar werden oder die Modellgenauigkeit sinkt.
So zählen Sie Tokens ohne zu raten
Verwenden Sie den eigenen Tokenizer des Modells. Schätzen Sie nicht.
Für OpenAI-Modelle verwenden Sie die Bibliothek tiktoken:
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
text = "Ihr Prompt-Text hier"
tokens = enc.encode(text)
print(f"Token-Anzahl: {len(tokens)}")
print(f"Geschätzte Kosten (Input): ${len(tokens) * 0.000005:.4f}")
Für Anthropic-Modelle verwenden Sie die count_tokens API oder deren Python-Bibliothek:
from anthropic import Anthropic
client = Anthropic()
message = client.messages.count_tokens(
model="claude-3-5-sonnet-20241022",
system="Sie sind ein hilfreicher Assistent.",
messages=[
{"role": "user", "content": "Ihr Prompt-Text hier"}
]
)
print(f"Token-Anzahl: {message.input_tokens}")
Dies ist keine Option. Wenn Sie eine Integration versenden, benötigen Sie genaue Zählungen, keine Annäherungen. Der Unterschied zwischen „ungefähr 100 Tokens“ und „106 Tokens“ ist der Unterschied zwischen der Einhaltung Ihres Batch-Limits und dem Ausfall um 3 Uhr morgens.
Strategien, die wirklich Tokens sparen
Token-Einsparung bedeutet nicht, kürzere Prompts zu schreiben. Es geht um Struktur.
1. Wiederholen Sie den Kontext nicht in Multi-Turn-Gesprächen. Wenn Sie einen Chatbot erstellen, senden Sie den System-Prompt einmal und verlassen Sie sich auf den Gesprächsspeicher. Jede Runde, in der Sie ihn wiederholen, verschwenden Sie Tokens. Wenn Sie einen Kundenservice-Workflow erstellen, bei dem Sie viele separate Anfragen verarbeiten, fügen Sie jedes Mal Kontext hinzu – aber halten Sie ihn minimal.
2. Verwenden Sie Beispiele strategisch. Few-Shot-Prompts (mit Beispielen) sind kurzfristig günstig, aber langfristig teuer. Eine Konversation mit Beispielen kostet im Voraus mehr als Zero-Shot. Aber wenn diese Beispiele die Fehlerraten um 30 % senken, sind die Token-Kosten es wert. Wenn sie die Ausgabe um 2 % ändern, sind es verschwendete Tokens. Messen Sie den Kompromiss.
Schlechter Ansatz:
Sie sind ein E-Mail-Klassifizierer. Klassifizieren Sie jede E-Mail als "Verkauf", "Support" oder "Spam".
Beispiel 1: "Entdecken Sie unser neues Produkt!" → Verkauf
Beispiel 2: "Ihre Bestellung ist abholbereit" → Support
Beispiel 3: "Klicken Sie hier für kostenloses Geld" → Spam
Beispiel 4: "Sonderangebot im Inneren" → Verkauf
Beispiel 5: "Ihr Passwort wurde zurückgesetzt" → Support
Klassifizieren Sie diese E-Mail: [Benutzereingabe]
Besserer Ansatz (für eine einzelne Klassifizierung):
Klassifizieren Sie diese E-Mail als "Verkauf", "Support" oder "Spam": [Benutzereingabe]
Der zweite spart 80 Tokens. Wenn Sie Tausende von E-Mails klassifizieren, ist das eine signifikante Kostenreduzierung. Fügen Sie Beispiele nur dann wieder hinzu, wenn Ihre Fehlerrate die Kosten rechtfertigt.
3. Verwenden Sie Zusammenfassungen, um Kontext zu komprimieren. Wenn Sie Dokumentenhistorie oder frühere Analysen in eine neue Anfrage einbringen müssen, fassen Sie sie zuerst zusammen. Die Zusammenfassung kostet im Voraus Input-Tokens, spart aber Tokens bei jeder nachfolgenden Anfrage, die diesen Kontext benötigt.
4. Stapeln Sie ähnliche Anfragen. Anstatt fünf separate API-Aufrufe für fünf verschiedene Prompts zu senden, kombinieren Sie sie, wenn möglich. Eine Anfrage zur Klassifizierung von zehn E-Mails kostet weniger Tokens als zehn Anfragen zur Klassifizierung einer E-Mail.
Was Sie heute tun sollten
Wählen Sie eine Integration oder einen Workflow, den Sie im letzten Monat erstellt haben. Führen Sie die tatsächlichen Prompts durch den Token-Zähler Ihres Modells. Berechnen Sie die tatsächlichen Input- und Output-Token-Kosten pro Anfrage. Wenn Sie dies in großem Maßstab ausführen, multiplizieren Sie mit Ihrem Anfragevolumen und Ihren Kosten pro Token. Sie werden entweder feststellen, dass Sie Raum haben, Kontext hinzuzufügen und die Qualität zu verbessern, oder dass Sie rücksichtslos kürzen müssen. Die meisten Leute stellen fest, dass sie massiv über-tokenisiert haben, weil sie Zählungen geraten haben.
Beginnen Sie mit dem Messen. Alles andere ergibt sich daraus.