Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Prompt Caching

Beim Prompt-Caching werden die Key-Value-Zustände wiederverwendet, die ein LLM für einen wiederholt verwendeten Prompt-Präfix berechnet hat. So entfällt diese Arbeit bei späteren Anfragen und die Kosten sinken.

Prompt-Caching, auch Präfix-Caching genannt, speichert die Zwischenergebnisse, die ein großes Sprachmodell (LLM) für den Anfang eines Prompts berechnet, und verwendet sie für spätere Anfragen wieder, die mit genau demselben Text beginnen. Viele Anfragen haben ein langes, unveränderliches Präfix gemeinsam, etwa einen System-Prompt, Werkzeugdefinitionen, eine Reihe von Beispielen, ein langes Dokument oder den bisherigen Gesprächsverlauf. Darauf folgt ein kurzer neuer Teil. Bei einem Cache-Treffer verarbeitet der Server nur die neuen Tokens. Dadurch verkürzt sich die Zeit bis zum ersten Ausgabetoken. Bei gehosteten APIs sinken außerdem die Kosten für die zwischengespeicherte Eingabe auf einen Bruchteil des regulären Preises.

So funktioniert Prompt-Caching#

Ein Transformer-LLM erstellt seine Antworten in zwei Phasen. Beim Prefill berechnet jede Schicht für jedes Prompt-Token einen Key- und einen Value-Vektor. Beim Decoding greift jedes neue Token über den Attention-Mechanismus auf alle diese Keys und Values zu. Innerhalb einer Anfrage speichert der KV-Cache diese Tensoren, damit die Prompt-Tokens nicht für jedes erzeugte Token erneut berechnet werden müssen. Prompt-Caching bewahrt sie anfrageübergreifend auf. Da die Attention in diesen Modellen kausal ist, hängen die Keys und Values eines Tokens nur von den vorhergehenden Tokens ab. Zwei Prompts mit demselben Präfix haben daher für dieses Präfix identische Keys und Values, sodass die gespeicherte Kopie die erneute Berechnung ersetzen kann.

Das folgende Beispiel veranschaulicht die Wiederverwendung mit GPT-2 aus Hugging Face Transformers. Es verarbeitet einmalig einen System-Prompt mit 409 Tokens und beantwortet dann zwei Fragen, indem es nur deren jeweilige Tokens auf dem zwischengespeicherten Präfix ausführt. Anschließend vergleicht es das Ergebnis mit einer vollständigen Neuberechnung:

import copy

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")

# A long system prompt shared by every request, followed by different user questions
system = "You answer questions about a camera store. " + "Returns are accepted within 30 days with a receipt. " * 40
questions = [" Question: Can I return a lens?", " Question: Do you ship abroad?"]
prefix_ids = tokenizer(system, return_tensors="pt").input_ids

with torch.no_grad():
    # Prefill the shared prefix once and keep its key-value cache
    prefix_cache = model(prefix_ids).past_key_values
    for question in questions:
        ids = tokenizer(question, return_tensors="pt").input_ids
        # Cache hit: only the question's tokens run through the model
        cached = model(ids, past_key_values=copy.deepcopy(prefix_cache)).logits[0, -1]
        # No cache: the whole prompt is computed from scratch
        full = model(torch.cat([prefix_ids, ids], dim=1)).logits[0, -1]
        same = torch.allclose(cached, full, atol=1e-3)
        print(f"Computed {ids.shape[1]} of {prefix_ids.shape[1] + ids.shape[1]} tokens, same next-token scores: {same}")

Die Ausgabe lautet Computed 8 of 417 tokens, same next-token scores: True und Computed 7 of 416 tokens, same next-token scores: True: Jede Anfrage führte weniger als 2 % ihres Prompts durch das Modell und erhielt dieselben Werte für das nächste Token wie bei der vollständigen Berechnung.

Open-Source-Engines für die Modellbereitstellung übernehmen dies automatisch. vLLM speichert den KV-Cache in Blöcken fester Größe – dem Speicherlayout von PagedAttention – und verwendet für jede neue Anfrage die Blöcke des längsten übereinstimmenden Präfixes erneut. Wenn der GPU-Speicher knapp wird, entfernt es die am längsten nicht verwendeten Blöcke. RadixAttention von SGLang speichert zwischengespeicherte Präfixe in einem Radixbaum, sodass Anfragen mit beliebigem gemeinsamem Anfangsteil diesen wiederverwenden können. Das SGLang-Paper berichtet von einem bis zu 6,4-mal höheren Durchsatz als bei anderen modernen Inferenz-Engines. Das Paper zu Prompt Cache von In Gim und Kollegen, das auf MLSys 2024 vorgestellt wurde, erweitert die Wiederverwendung über exakte Präfixe hinaus auf ausdrücklich definierte Prompt-Module wie Vorlagen und Dokumente. Es berichtet von einer Verkürzung der Zeit bis zum ersten Token um das 8-Fache auf GPU und um das 60-Fache auf CPU.

Prompt-Caching in LLM-APIs#

Gehostete APIs bieten denselben Mechanismus gegen Aufpreis. Prompt-Caching von OpenAI ist für unterstützte Modelle standardmäßig aktiviert. Claude-Prompt-Caching von Anthropic wird mit einem Feld cache_control aktiviert – entweder einmal pro Anfrage oder für bis zu vier Inhaltsblöcke. Anthropic berechnet für das Lesen aus dem Cache höchstens ein Zehntel des regulären Eingabepreises. Das Schreiben in den standardmäßigen Cache mit fünf Minuten Laufzeit kostet das 1,25-Fache des Grundpreises. Jeder Treffer setzt die Laufzeit von fünf Minuten zurück. Beide Anbieter gleichen nur identische Präfixe ab: Anthropic prüft zuerst Werkzeuge, dann den System-Prompt und schließlich Nachrichten. Eine Änderung an einer Werkzeugdefinition macht also alles danach Zwischengespeicherte ungültig. OpenAI empfiehlt, stabile Anweisungen und Referenzmaterial an den Anfang und nutzerspezifische Angaben ans Ende zu setzen.

Arbeitslasten mit langen gemeinsamen Präfixen profitieren am meisten:

  • KI-Agenten: Bei jedem Schritt werden die Werkzeugdefinitionen und der gesamte Verlauf erneut übermittelt. Dieser umfasst den Prompt des vorherigen Schritts sowie die letzte Aktion und deren Ergebnis.
  • Chatbots: Jede Gesprächsrunde baut auf dem Prompt der vorherigen Runde auf, sodass der Verlauf bis zur neuen Nachricht im Cache bleibt.
  • Fragen zu Dokumenten beantworten: Viele Fragen zu einem langen Vertrag, Bericht oder Repository greifen erneut auf das bereits verarbeitete Dokument zurück. Auch Abruf-Pipelines verwenden es wieder, wenn dieselben Passagen erneut abgerufen werden.
  • Few-Shot-Prompts: Dutzende festgelegte Beispiele werden einmal berechnet und für jede Eingabe wiederverwendet.

Open-Vocabulary-Bildverarbeitungsmodelle nutzen die Prompt-Berechnung auf ähnliche Weise erneut. Ultralytics YOLOE kodiert Klassen-Prompts wie „forklift“ einmal mit einem MobileCLIP-Textencoder, wenn set_classes() aufgerufen wird, und speichert die resultierenden Einbettungen im Modell. Spätere Vorhersagen überspringen den Textencoder dann vollständig; save_prompt_embeddings() schreibt sie in eine NPZ-Datei, die eine spätere Sitzung mit load_prompt_embeddings() lädt, statt den Encoder erneut auszuführen.

  • KV-Cache: Verwendet Schlüssel und Werte über die Tokens einer einzelnen Generierung hinweg erneut. Prompt-Caching verwendet sie über separate Anfragen hinweg erneut.
  • Semantisches Caching: Speichert vollständige Antworten und gibt eine gespeicherte Antwort zurück, wenn eine neue Anfrage dasselbe bedeutet wie eine frühere. Das Modell wird dabei vollständig übersprungen. Beim Prompt-Caching verarbeitet das Modell weiterhin den neuen Teil des Prompts und generiert eine neue Antwort.
  • Prompt-Komprimierung: Verkürzt den Prompt selbst und eignet sich daher für Texte, die sich mit jeder Anfrage ändern. Die beiden Verfahren ergänzen sich gut: Der feste Teil eines Prompts wird zwischengespeichert und der variable Teil komprimiert.
  • Prompt Engineering: Legt fest, was im Prompt steht. Caching verändert nur, wie viel davon der Server erneut berechnet. Bei einem Cache-Treffer bleiben die Scores der nächsten Tokens bis auf Rundungsabweichungen bei Gleitkommazahlen unverändert.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens