# Prompt Caching in LLMs: Optimierung des KV-Caches zur Reduzierung von Kosten und Latenz
Prompt Caching reduziert die Kosten für LLM-Eingabe-Tokens um das 10-Fache und verkürzt die Latenz bei langen Prompts um bis zu 85 %. OpenAI und Anthropic cachen keine Responses; sie cachen Zwischenschritte im Transformer-Attention-Mechanismus – speziell den KV-Cache. Dieser speichert Key-Value-Paare für wiederholte Prompt-Präfixe, beschleunigt die Inferenz und erhält die Generierungsqualität.
Die Technologie eignet sich ideal für Aufgaben mit wiederholtem Kontext: RAG, Chatbots mit Gesprächshistorie, mehrstufige Pipelines. Tests bei API-Anbietern zeigen, dass eine vollständige Nutzung des Caches eine deutliche Beschleunigung des ersten Tokens bringt.
LLM-Architektur und die Rolle der Attention
Ein LLM besteht aus einer Abfolge von Transformer-Blöcken, die Embeddings als Eingabe nehmen und aktualisierte Repräsentationen ausgeben. Die Inferenz läuft in einer Schleife: Der Prompt wird tokenisiert, Embeddings durchlaufen Attention- und Feed-Forward-Schichten, der nächste Token wird generiert und dem Kontext hinzugefügt.
prompt = "What is the meaning of life?";
tokens = tokenizer(prompt);
while (true) {
embeddings = embed(tokens);
for ([attention, feedforward] of transformers) {
embeddings = attention(embeddings);
embeddings = feedforward(embeddings);
}
output_token = output(embeddings);
if (output_token === END_TOKEN) {
break;
}
tokens.push(output_token);
}
print(decode(tokens));
Das Caching findet in der Attention statt. Self-Attention berechnet für jeden Token eine gewichtete Summe vorheriger Tokens basierend auf der Ähnlichkeit zwischen Query (aktueller Token) und Keys (vorherige Tokens). Für query_i: attention(Q_i, K, V) = softmax(Q_i K^T / sqrt(d)) V.
Beim Generieren jedes neuen Tokens erweitert sich der KV-Cache für alle vorherigen Tokens, was zu quadratischer Komplexität O(n^2) bezüglich der Sequenzlänge führt.
Tokenization und Embeddings
Der Tokenizer zerlegt Text in Subword-Einheiten und weist IDs zu. Beispiel für GPT: "Check out ngrok.ai" → [4383, 842, 1657, 17690, 75584]. Er ist deterministisch, case-sensitive und verwendet BPE-ähnliche Algorithmen.
Embeddings wandeln Tokens in n-dimensionale Vektoren um (n > 10k in großen Modellen). Die Embeddings-Matrix ist nach dem Training fix:
function embed(tokens) {
return tokens.map((token, i) => {
const embeddings = EMBEDDINGS[token];
return encodePosition(embeddings, i);
});
}
Positional Encoding fügt Informationen zur Reihenfolge hinzu. Mehr Dimensionen erfassen Semantik besser: Ton, Stil, Ähnlichkeit.
Attention-Mechanismus und KV-Cache
Im Multi-Head-Attention:
- Projektionen: Q = X W_Q, K = X W_K, V = X * W_V (X — Embeddings-Matrix).
- Scores: attention_scores = Q * K^T / sqrt(d_k).
- Softmax und gewichtete Summe: attention_output = softmax(scores) * V.
Für eine Sequenz der Länge n besteht der KV-Cache aus K- und V-Tensoren der Größe [n, d_model]. Beim Generieren des t-ten Tokens nutzt Attention den gesamten vergangenen Cache plus den aktuellen.
Prompt Caching speichert den KV-Cache des Prompt-Präfixs über API-Aufrufe hinweg. Bei einem neuen Prompt, der mit einem gecachten Präfix beginnt (Hit), werden Attention-Berechnungen für diese Tokens übersprungen – der fertige KV wird verwendet. Die Kosten sinken, da ~90 % der Rechenleistung bei langen Kontexten übersprungen werden.
- Cache-Hit: Präfix > 1024 Tokens (Anthropic), Kosten /10.
- Cache-Miss: Volle Neuberechnung.
- TTL: Cache lebt ~5-10 Min., abhängig vom Anbieter.
Vorteile und Einschränkungen
Latenzgewinne: Bei Prompts mit 10k+ Tokens sinkt TTFB um 50-85 %.
Einsparungen: Gecachte Eingabe-Tokens – $0.0001/1k vs $0.001/1k (ca.).
Einschränkungen:
- Nur Präfix-Matching (keine beliebigen Substrings).
- Cacht keine Output-Embeddings oder Logits.
- Abhängig vom Tokenizer des Anbieters.
Im Produktiveinsatz: Für Sitzungsbasierte Chats mit wiederholter Historie nutzen.
Wichtige Erkenntnisse
- Prompt Caching speichert Attention-KV-Paare für Präfixe, reduziert Rechenaufwand um 90 %+ bei langen Kontexten.
- Time to first token sinkt um bis zu 85 %, Eingabekosten /10.
- Erfordert exaktes Präfix-Matching und kompatiblen Tokenizer.
- Ideal für RAG, Chat-Historien, mehrstufige Aufgaben.
- Kein Einfluss auf Qualität: Generierung bleibt stochastisch.
— Editorial Team
Noch keine Kommentare.