KV-Cache Rechner: Speicher je Token und Kontextlänge
Der KV-Cache Rechner berechnet den Speicherbedarf für Schlüssel und Werte eines Sprachmodells je Token, für die gewählte Kontextlänge und parallele Sequenzen.
| Kontextlänge | 1 Sequenz | Gewählte Sequenzen | Ohne GQA (MHA) |
|---|
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
So entsteht der KV-Cache
Der KV-Cache Rechner zeigt den Speicherbedarf, den ein Sprachmodell für bereits gelesene Tokens braucht. Damit es nicht für jedes neue Token die gesamte Vorgeschichte neu berechnet, speichert es in jedem Layer die Schlüssel (Keys) und Werte (Values) aller bisherigen Tokens. Die Formel zum KV-Cache berechnen lautet: 2 × Layer × KV-Köpfe × Kopfdimension × Bytes je Wert × Kontextlänge × Sequenzen. Bei Llama 3.1 8B ergibt das in FP16 genau 131.072 Byte, also 128 KiB je Token.
Grouped-Query Attention (GQA) ist der Grund, warum moderne Modelle mit langen Kontexten auskommen: Mehrere Abfrage-Köpfe teilen sich ein Schlüssel-Wert-Paar. Llama 3.1 8B hat 32 Attention-Köpfe, aber nur 8 KV-Köpfe, und braucht deshalb ein Viertel des Speichers einer klassischen Multi-Head Attention. Die letzte Spalte der Tabelle zeigt zum Vergleich den Bedarf ohne GQA. Ein FP8 KV-Cache halbiert den Bedarf noch einmal; vLLM, TensorRT-LLM und llama.cpp unterstützen solche Formate.
Grenzen: Die Formel gilt für volle Aufmerksamkeit in allen Layern. Modelle mit Sliding Window Attention in einem Teil der Layer, etwa Gemma 2, oder mit komprimierter Aufmerksamkeit wie Multi-head Latent Attention bei DeepSeek brauchen weniger. Paged Attention in vLLM reserviert Speicher in Blöcken, was leichte Abweichungen ergibt. Den gesamten Speicherbedarf inklusive Gewichten schätzt der LLM-VRAM-Rechner, wie viel Text in den Kontext passt, der Kontextfenster-Rechner.
Anleitung: KV-Cache Rechner in 4 Schritten
- Eine Beispielarchitektur wählen oder „Layer“, „KV-Köpfe“ und „Kopfdimension“ aus der config.json des Modells eintragen.
- „Kontextlänge (Tokens)“ und „Gleichzeitige Sequenzen“ festlegen.
- Bei „Genauigkeit KV-Cache“ zwischen FP16/BF16, FP8 und 4 Bit wählen.
- Speicher je Token, Gesamtbedarf und die Tabelle für typische Kontextlängen ablesen.
Typische Anwendungsfälle
- Langen Kontext planen: Abschätzen, ob 128.000 Tokens Kontext bei einem 8B-Modell noch auf die Grafikkarte passen.
- Server dimensionieren: Für vLLM oder TGI berechnen, wie viele parallele Sequenzen der freie Speicher erlaubt.
- Architekturen vergleichen: Sehen, wie viel Grouped-Query Attention gegenüber klassischer Multi-Head Attention spart.
Häufige Fragen
Wie berechne ich den KV-Cache?
Multiplizieren Sie 2 (Keys und Values) mit Layern, KV-Köpfen, Kopfdimension und Bytes je Wert. Das ist der Bedarf je Token. Mal Kontextlänge und Zahl der Sequenzen ergibt den Gesamtbedarf.
Warum ist der KV-Cache bei großen Modellen nicht unbedingt größer?
Er hängt nicht von der Parameterzahl ab, sondern von Layern, KV-Köpfen und Kopfdimension. Llama 3.1 70B hat 80 Layer, aber ebenfalls nur 8 KV-Köpfe und braucht 320 KiB je Token, also das 2,5-Fache des 8B-Modells.
Belegt der KV-Cache den Speicher sofort?
Das hängt von der Software ab. llama.cpp reserviert den Cache für die eingestellte Kontextlänge beim Start, vLLM reserviert einen Anteil des Grafikspeichers und verteilt ihn in Blöcken an laufende Anfragen.
Was ist der Unterschied zwischen MHA, GQA und MQA?
Bei Multi-Head Attention hat jeder Abfrage-Kopf eigene Keys und Values. Bei Grouped-Query Attention teilen sich Gruppen von Köpfen ein Paar, bei Multi-Query Attention alle Köpfe ein einziges. Der Cache schrumpft entsprechend.
Wo finde ich die Werte für Layer und KV-Köpfe?
In der Datei config.json des Modells auf Hugging Face: num_hidden_layers, num_key_value_heads und head_dim (oder hidden_size geteilt durch num_attention_heads).
Verringert Sliding Window Attention den KV-Cache?
Ja. Layer mit gleitendem Fenster speichern nur die letzten Tokens des Fensters. Modelle, die solche Layer mit globalen Layern mischen, brauchen dadurch weniger, als die Formel für volle Aufmerksamkeit ergibt.
Zum Weiterlesen
- Was sind Tokens? Einfach erklärtTokens sind die Rechen- und Abrechnungseinheit von Sprachmodellen. Was ein Token ist, wie viele ein deutscher Text hat und warum das Geld kostet.
- Kontextfenster erklärt: Wie viel Text ein Modell auf einmal verarbeitetDas Kontextfenster begrenzt, wie viel ein KI-Modell gleichzeitig lesen und schreiben kann. Was die Zahl bedeutet, wo die Grenzen liegen und wie man damit umgeht.
- Warum deutsche Texte mehr Tokens brauchen als englischeDeutsche Texte brauchen meist 20 bis 50 Prozent mehr Tokens als englische. Woran das liegt, was es kostet und was man dagegen tun kann.
Das könnte auch helfen
Antwortzeit-Rechnerneu
Wie lange dauert eine KI-Antwort? Wartezeit aus Antwortlänge, Geschwindigkeit und Nachdenken.
Öffnenmax_tokens-Rechnerneu
Welches max_tokens für 500 Wörter? Ausgabelimit passend zur gewünschten Antwortlänge setzen.
ÖffnenTemperatur-Simulator
Sehen, wie Temperatur, Top-p und Top-k die Wortwahl eines Sprachmodells verändern.
ÖffnenModell-Finder
Welches KI-Modell passt? Aufgabe, Kontext und Budget angeben, passende Modelle nach Preis erhalten.
ÖffnenToken-Zähler
Tokens eines Textes oder einer Datei (PDF, Word, TXT) zählen, mit Kosten für alle Modelle.
ÖffnenKontextfenster-Rechner
Passt mein Dokument ins Kontextfenster? Seiten oder Wörter eingeben, für alle Modelle prüfen.
Öffnen