Kontext-Cache in der KI: Was wiederverwendet wird – und warum das kein „Erinnern“ bedeutet
01

Definition in einem Satz

Reutilización de prefijos de entrada ya procesados para reducir latencia o coste cuando el proveedor y la petición lo permiten.

02

Definition: Berechnungen wiederverwenden, nicht Erinnerungen bilden

Ein Kontext-Cache in der künstlichen Intelligenz ist ein temporärer Speicher für Verarbeitungsergebnisse, die ein Modell wiederverwenden kann, damit bestimmte Teile einer Eingabe nicht erneut berechnet werden müssen. Bei Sprachmodellen bezeichnet der Begriff häufig zwei verwandte, aber unterschiedliche Verfahren: den KV-Cache, der während der Generierung interne Aufmerksamkeitszustände speichert, und den Präfix- oder Prompt-Cache, der die Verarbeitung eines identischen oder übereinstimmenden Anfangs zwischen mehreren Anfragen nutzbar macht.

Der Begriff „Kontext“ kann irreführend sein. Hier bedeutet er nicht, dass das System Informationen dauerhaft in sein Wissen aufgenommen hat oder sich nach Ende einer Sitzung zwangsläufig an ein Gespräch erinnert. Gemeint sind die Daten, die das Modell zur Beantwortung verarbeitet, sowie Zwischenergebnisse, die eine Implementierung für eine bestimmte Zeit verfügbar halten kann. Ein Cache reduziert wiederholte Arbeit, wenn die passenden Bedingungen erfüllt sind; von sich aus fügt er der Antwort keine neuen Informationen hinzu.

Wie genau der Mechanismus funktioniert, hängt vom Modell, der Laufzeitumgebung und dem Dienst ab. Eine Implementierung kann Kennzahlen zur Cache-Nutzung bereitstellen, Kontrollen zum Teilen oder Isolieren bestimmter Daten anbieten oder den Mechanismus für Nutzende unsichtbar machen. „Kontext-Cache“ ist daher eine nützliche Sammelbezeichnung, doch es lohnt sich, genauer zu benennen, um welche Art von Cache es geht.

03

Wie der KV-Cache während der Generierung funktioniert

Ein autoregressives Modell erzeugt Text Token für Token: In jedem Schritt sagt es das nächste Token auf Grundlage der vorherigen voraus. Für die Berechnung der Attention erzeugt das Modell interne Repräsentationen, die als Keys (Schlüssel) und Values (Werte) bezeichnet werden. Der KV-Cache speichert diese Tensoren für bereits verarbeitete Tokens, sodass spätere Schritte sie wiederverwenden können, statt alles von Anfang an neu zu berechnen.

Vereinfacht gesagt verarbeitet das Modell zunächst den Prompt, berechnet die benötigten Zustände und speichert die zugehörigen Schlüssel und Werte. Bei der Generierung eines neuen Tokens berechnet es die Zustände für den neuen Schritt und greift zusätzlich auf die gespeicherten Zustände der vorherigen Tokens zu. Während die Generierung weiterläuft, wächst der Cache – begrenzt durch den verfügbaren Speicher und die vom System verwendete Verwaltungsstrategie.

Diese Beschreibung bezieht sich auf das allgemeine Funktionsprinzip, nicht auf eine identische Struktur in allen Modellen. Es gibt verschiedene Cache-Varianten und unterschiedliche Strategien, den Cache zu verwalten, vorzuhalten oder auf verschiedenen Speicherebenen abzulegen. Ein Dienst kann außerdem Mechanismen zum Wiederverwenden von Blöcken über mehrere Anfragen hinweg anbieten; das ist nicht automatisch dasselbe wie der KV-Cache einer einzelnen Sequenz.

Vereinfachter Ablauf eines KV-Caches

  1. 01Das Modell verarbeitet den Prompt und berechnet interne Aufmerksamkeitszustände.
  2. 02Die Implementierung speichert die Schlüssel und Werte der bereits verarbeiteten Tokens.
  3. 03Für das nächste Token verwendet das Modell diese Zustände wieder und berechnet den neuen Schritt.
  4. 04Der Vorgang wiederholt sich, solange generiert wird und Ressourcen verfügbar sind.
04

Präfix-Cache: Wiederverwendung über mehrere Anfragen hinweg

Ein Präfix- oder Prompt-Cache nutzt gemeinsame Anfangsteile verschiedener Anfragen. Anstatt die Verarbeitung eines Präfixes erneut zu berechnen, das bereits im Cache verfügbar ist, kann das System die zugehörigen KV-Zustandsblöcke wiederverwenden und die Berechnung von dort aus fortsetzen. Ein Server kann dieses Verfahren beispielsweise einsetzen, wenn viele Anfragen dieselben Anfangsanweisungen oder einen gemeinsamen Kontextabschnitt enthalten.

Die Wiederverwendung setzt eine ausreichende Übereinstimmung nach den Regeln der jeweiligen Implementierung voraus. In Systemen, die den Cache in Blöcken organisieren, wird das Präfix in Blöcke aufgeteilt und geprüft, ob vorherige Blöcke übereinstimmen. Dass zwei Anfragen dasselbe Thema behandeln, reicht nicht aus. Änderungen am Text, an der Reihenfolge oder an der Tokenisierung können eine Übereinstimmung verhindern. Je nach System können auch andere Konfigurationsbestandteile eine Rolle spielen.

Ein Präfix-Cache bedeutet nicht, dass eine Antwort gespeichert und bei der nächsten Anfrage unverändert zurückgegeben wird. Wiederverwendet wird die Verarbeitung eines gemeinsamen Eingabeteils. Die neue Anfrage kann weiterhin andere Inhalte enthalten und zusätzliche Berechnungen erfordern. Ob ein Nutzen entsteht, hängt davon ab, ob die Präfixe übereinstimmen, die Blöcke verfügbar sind und welche Regeln für Ablauf oder Verdrängung gelten.

Manche Anbieter weisen für diese Funktion eigene Kennzahlen aus, etwa die Zahl der Eingabetokens, die aus dem Cache verarbeitet wurden. Solche Messwerte und die Bedingungen für die Aufbewahrung beziehen sich auf die dokumentierte Implementierung. Sie lassen sich nicht ohne Weiteres auf andere Anbieter oder Laufzeitumgebungen übertragen.

Was wiederverwendet wird und in welcher Situation

MechanismusWas gespeichert oder wiederverwendet wirdTypischer EinsatzWichtigste Grenze
KV-Cache einer GenerierungSchlüssel und Werte der Attention für bereits verarbeitete TokensFortsetzen einer Token-für-Token-GenerierungSequenz und verfügbare Ressourcen begrenzen Größe und Nutzung
Präfix- oder Prompt-CacheKV-Zustände eines übereinstimmenden Präfixes über mehrere Anfragen hinwegErneute Berechnung eines wiederkehrenden Eingabeteils vermeidenFunktioniert nur, wenn die Übereinstimmungsregeln erfüllt sind und die Blöcke noch verfügbar sind
Dauerhafter AnwendungsspeicherDaten, die das System für künftige Interaktionen speichern sollVorlieben oder Informationen in einer anderen Sitzung abrufenEine andere Funktion mit eigenen Speicherregeln
05

Drei Anwendungsbeispiele

Die folgenden Beispiele zeigen mögliche Einsatzzwecke des Mechanismus. Sie garantieren nicht, dass eine bestimmte Plattform den Cache auf dieselbe Weise implementiert oder stets einen messbaren Vorteil erzielt.

blocks

examples

06

Häufig verwechselte Begriffe

Cache und Kontextfenster sind keine Synonyme. Das Kontextfenster bezeichnet die Informationsmenge, die das Modell in einem Durchlauf berücksichtigen kann; seine Grenzen werden vom Modell oder Dienst festgelegt. Ein Cache ist ein Mechanismus zum Speichern oder Wiederverwenden von Berechnungen. Ein Cache vergrößert das Kontextfenster nicht von selbst und ermöglicht auch nicht, mehr Text einzufügen, als das System unterstützt.

Cache und dauerhaftes Gedächtnis sind ebenfalls nicht dasselbe. Ein Agenten- oder Anwendungsspeicher kann nach seinen eigenen Designregeln Informationen für spätere Interaktionen sichern. Ein Verarbeitungs-Cache dient dazu, Zwischenergebnisse wiederzuverwenden; er kann verschwinden, ablaufen oder verdrängt werden. Selbst wenn beide Funktionen Daten vorübergehend speichern, erfüllen sie unterschiedliche Zwecke.

Auch KV-Cache und Präfix-Cache bezeichnen nicht genau denselben Vorgang. Mit KV-Cache sind meist Zustände gemeint, die während der Generierung einer Sequenz vorgehalten werden. Ein Präfix-Cache bezeichnet dagegen die Möglichkeit, Zustände eines gemeinsamen Präfixes über mehrere Anfragen hinweg zu nutzen. Ein Präfix-Cache kann auf KV-Blöcken beruhen, doch die Wiederverwendung über Anfragen hinweg bringt zusätzliche Bedingungen für Übereinstimmung, Verwaltung und Isolation mit sich.

Schließlich ist die Wiederverwendung von Verarbeitung nicht dasselbe wie die Wiederverwendung eines Textes als vorbereitete Antwort. Wenn zwei Anfragen ein Präfix teilen, können bereits berechnete interne Zustände für den gemeinsamen Teil genutzt werden. Daraus folgt nicht, dass die Ausgabe gespeichert ist, eine neue Antwort mit einer früheren identisch sein muss oder das Modell zusätzliches Verständnis erworben hat.

07

Grenzen, Datenschutz und Betrieb

Ein Cache ist nicht unbegrenzt. KV-Zustände belegen Speicher, und Serving-Systeme müssen verwalten, welche Blöcke sie verfügbar halten. Wenn Ressourcen knapp werden, kann eine Implementierung Blöcke verdrängen oder andere Verwaltungsstrategien anwenden. Ein Eintrag, der zuvor wiederverwendet werden konnte, ist bei der nächsten Anfrage möglicherweise nicht mehr verfügbar. Die tatsächliche Verfügbarkeit und die Regeln für den Ablauf sind nicht überall gleich.

Auch die Übereinstimmung ist entscheidend. Ein Präfix, das inhaltlich ähnlich ist, stimmt für den Cache möglicherweise nicht überein, wenn sich die Tokenfolge unterscheidet. Änderungen am Modell, an der Vorlage oder an der Konfiguration können die Verarbeitung oder die Erkennung von Präfixen beeinflussen. Daher sollte man nicht davon ausgehen, dass die Wiederholung einer Anweisung automatisch zur Wiederverwendung führt.

Für den Datenschutz müssen die Dokumentation und die Konfiguration des konkreten Systems geprüft werden. Dabei sollte man klären, wie lange Daten im Cache verbleiben, wie Anfragen oder Nutzer voneinander isoliert werden, ob es Einstellungen zur Aufteilung oder Invalidierung gibt und welche Kennzahlen verfügbar sind. Ein zwischen Anfragen geteilter Cache kann Fragen zur Isolation aufwerfen. Die Dokumentation mancher Systeme weist beispielsweise auf Seitenkanalrisiken hin und beschreibt konkrete Gegenmaßnahmen. Dieser Hinweis belegt weder, dass alle Dienste dasselbe Risiko haben, noch dass eine bestimmte Maßnahme überall verfügbar ist.

Auch Kennzahlen müssen im Zusammenhang betrachtet werden. Ein Zähler für aus dem Cache bediente Tokens kann die Wiederverwendung von Eingaben beschreiben, erlaubt für sich genommen aber keine Aussage darüber, wie viel Kosten oder Latenz eingespart wurden. Solche Ergebnisse hängen von API, Hardware, Auslastung, Konfiguration und der Art der Abrechnung oder Messung ab. Quantitative Aussagen sollten dem Anbieter und den Bedingungen zugeordnet werden, unter denen sie gemessen wurden.

Checkliste zur Bewertung eines Caches

  1. 01Klären, ob es um einen KV-Cache während einer Generierung, einen Präfix-Cache über mehrere Anfragen oder um beides geht.
  2. 02Prüfen, welche Bestandteile übereinstimmen müssen, damit Zustände wiederverwendet werden können, und welche Änderungen die Übereinstimmung ungültig machen.
  3. 03Die dokumentierten Grenzen für Speicher, Ablauf, Verdrängung und Isolation prüfen.
  4. 04Kennzahlen zu Cache-Tokens von Messwerten zu Latenz, Kosten oder Leistung unterscheiden.
  5. 05Die Regeln zur Cache-Aufbewahrung getrennt von Richtlinien für Gesprächsgedächtnis oder Anwendungsspeicher prüfen.
08

Verwandte Begriffe und praktische Kriterien

Attention ist der Mechanismus, mit dem das Modell Teile einer Sequenz miteinander in Beziehung setzt; Schlüssel und Werte sind interne Bestandteile dieser Berechnung. Tokens sind die Einheiten, mit denen das Modell Ein- und Ausgaben verarbeitet. Inferenz bezeichnet die Nutzung des Modells zur Erzeugung einer Ausgabe. Der KV-Cache hilft, einen Teil wiederholter Attention-Berechnungen zu vermeiden, während ein Präfix-Cache die Verarbeitung eines gemeinsamen Eingabeanfangs wiederverwenden soll. Die Begriffe hängen zusammen, sind aber nicht austauschbar.

Wer Dokumentation liest oder ein System konfiguriert, sollte zuerst fragen, was genau gespeichert wird: KV-Zustände, ein verarbeitetes Präfix, Gesprächsverlauf oder ein anderer Datentyp. Danach ist zu klären, in welchem Bereich der Cache gilt – für eine Generierung, eine Sitzung oder mehrere Anfragen –, wie lange er verfügbar ist, wodurch eine Übereinstimmung gültig wird und wie bei Speichermangel vorgegangen wird. Abschließend sollten von der Plattform gemessene Daten von Erwartungen getrennt werden: Wiederverwendete Berechnungen können wiederholte Arbeit verringern, doch konkrete Einsparungen und Latenz hängen von den jeweiligen Umständen ab.

Als grobe Orientierung gilt: Geht es darum, eine Token-für-Token-Generierung fortzusetzen, sollte man nach Informationen zum KV-Cache und seinen Verwaltungsstrategien suchen. Teilen mehrere Anfragen einen umfangreichen Anfang, ist die Dokumentation zu Präfix-Caching und seinen Übereinstimmungsregeln relevant. Soll das System Nutzerdaten sitzungsübergreifend abrufen, sollte man die Funktion für dauerhaftes Gedächtnis oder den Anwendungsspeicher prüfen, statt anzunehmen, ein Kontext-Cache erledige das.

Schnelle Entscheidungshilfe

AnforderungRelevanter BegriffPraktische Frage
Zustände während einer laufenden Generierung nicht erneut berechnenKV-CacheWelche Verwaltungsstrategie und welche Speichergrenzen verwendet die Laufzeitumgebung?
Ein gemeinsames Präfix über mehrere Aufrufe hinweg wiederverwendenPräfix- oder Prompt-CacheWas muss übereinstimmen, und wie lange bleiben die Blöcke verfügbar?
Vorlieben oder Daten in späteren Sitzungen abrufenDauerhaftes Gedächtnis oder AnwendungsspeicherWas wird gespeichert, wer kann darauf zugreifen und wie lässt es sich löschen?
09

Kurze Beispiele

10

Verwandte Begriffe

11

Verwendete Quellen