KV-Cache-Optimierung — PagedAttention, quantisierter KV, Speculative Cache
Stand
Was ist KV-Cache-Optimierung?
Bei einem Kontext von 32K beansprucht der KV-Cache von Llama 3 70B rund 10-11 GB pro Anfrage in FP16 — für einen Nutzer ein Bruchteil der INT8-Gewichte, aber der Term, der mit der Parallelität wächst — womit die KV-Cache-Optimierung der wirkungsvollste Hebel in der Ökonomie der LLM-Inferenz ist.
Worum es geht
Während autoregressiver LLM-Inferenz müssen die Key- und Value-Tensoren jedes zuvor erzeugten Tokens im GPU-Speicher gehalten werden, damit zukünftige Tokens sie beachten können — der KV-Cache. Bei langen Kontextlängen dominiert der KV-Cache den gesamten Speicherverbrauch: Bei Llama 3 70B (80 Schichten, 8 GQA-Key-Value-Heads, Head-Dimension 128) mit 32K Kontext beträgt der KV-Cache rund 10-11 GB pro Anfrage in FP16 — für eine Anfrage ein Bruchteil der ~70 GB INT8-Gewichte, aber einige Dutzend gleichzeitige Long-Context-Anfragen übersteigen die Gewichte, weshalb der KV-Cache und nicht die Gewichte die Obergrenze der Parallelität setzt. KV-Cache-Optimierung ist daher der wirkungsvollste einzelne Bereich in der Ökonomie der LLM-Inferenz — jede Technik hier übersetzt sich direkt entweder in mehr gleichzeitige Nutzer auf derselben GPU oder in längeren Kontext zu denselben Kosten.
Warum es zählt
- PagedAttention beseitigt Speicherfragmentierung und ermöglicht bis zu 24-fach höheren Durchsatz, indem mehrere Sequenzen sicher überlappt werden — der einzelne größte Fortschritt beim Inferenz-Serving 2023–2024.
- KV-Quantisierung auf INT8 halbiert den Cache-Speicher bei unter 1 % Qualitätsverlust; INT4 viertelt ihn bei 2–3 % Verlust.
- Prefix-Caching nutzt den KV-Zustand eines geteilten Prompt-Präfixes über Anfragen hinweg wieder und liefert bei Chatbot-Workloads mit gemeinsamem System-Prompt oft einen 5- bis 10-fachen Durchsatzgewinn.
Kernpunkte
- Der KV-Cache (im GPU-Speicher gehaltene K- und V-Tensoren pro Token für zukünftige Attention) dominiert den Speicher bei langem Kontext — Llama 3 70B bei 32K Kontext ≈ 10-11 GB KV-Cache pro Anfrage in FP16 (80 Schichten × 8 GQA-KV-Heads × 128 Dimensionen) — der Term, der mit den gleichzeitigen Nutzern wächst.
- PagedAttention (vLLM, 2023) — seitentabellenartige KV-Allokation beseitigt Fragmentierung, 24-fache Durchsatzverbesserung; inzwischen Standard in vLLM, TensorRT-LLM, SGLang.
- KV-Quantisierung — INT8 halbiert den Speicher bei <1 % Qualitätsverlust, INT4 viertelt ihn bei ~2–3 % Verlust; Standard in modernen Serving-Stacks.
- MQA (ein K/V über alle Heads) und GQA (gruppierte Heads teilen sich K/V, verwendet in Llama 2/3, Mistral, Mixtral) verkleinern den KV-Cache auf Architekturebene um das 4- bis 8-Fache.
- Prefix-/Speculative-Caching — cacht den KV-Zustand eines geteilten Prompt-Präfixes einmal und nutzt ihn über Anfragen hinweg wieder; 5- bis 10-facher Durchsatzgewinn bei Chatbot-Workloads mit gemeinsamem System-Prompt.
- Die rohe Parallelitätsobergrenze eines selbstgehosteten Deployments ist Arithmetik, kein Serving-Stack-Feature: (GPU-Speicher − Modellgewichte) ÷ KV-Cache-Größe pro Anfrage bei der Ziel-Kontextlänge; PagedAttention verbessert, wie nah die tatsächliche Auslastung an diese Obergrenze herankommt, verschiebt aber nicht die Obergrenze selbst.
- Prefix-Caching und KV-Quantisierung sind nicht einfach additiv — die KV-Einträge eines gecachten Präfixes sind an die Präzision gebunden, mit der sie gecacht wurden, und eine Präzisionsabweichung bei einer späteren Anfrage erzwingt eine vollständige Neuberechnung statt eines Cache-Hits.
- Auf einem verwalteten Generative-AI-Hub-Endpunkt ist nichts davon ein kundenseitiger Hebel; es wird erst zur eigenen Dimensionierungsentscheidung des Beraters bei einem selbstgehosteten SAP-AI-Core-BYOM-Deployment (vLLM, laut SAPs eigenem Beispiel-Repository), bei dem der aus SAPs Katalog gewählte GPU-Resource-Plan die harte Obergrenze oben festlegt.
Begriffe auf dieser Seite
- KV-Cache
- Die gecachten Key- und Value-Tensoren aller zuvor erzeugten Tokens, im GPU-Speicher gehalten, damit zukünftige Tokens sie während autoregressiver Inferenz beachten können; dominiert den Speicherverbrauch bei langen Kontextlängen.
- PagedAttention
- Eine von vLLM (Kwon et al., 2023) eingeführte Inferenz-Serving-Technik, die den KV-Cache in Blöcken fester Größe wie Betriebssystem-Speicherseiten allokiert, Fragmentierung beseitigt und einen 24-fach höheren Durchsatz als naive zusammenhängende Allokation ermöglicht.
- Grouped-Query Attention (GQA)
- Eine Attention-Architekturvariante, bei der Gruppen von Query-Heads sich einen einzigen Satz K/V-Tensoren teilen (z. B. 8 K/V-Gruppen für 32 Query-Heads); verwendet in Llama 2/3, Mistral, Mixtral und liefert eine 4- bis 8-fache KV-Cache-Reduktion bei nahezu keinem Qualitätsverlust.
- Multi-Query Attention (MQA)
- Eine extreme Attention-Variante, bei der sich alle Query-Heads einen einzigen K- und V-Tensor teilen; reduziert den KV-Cache um H (Anzahl der Heads, typischerweise 32–128), jedoch mit messbarem Qualitätsverlust gegenüber GQA.
- Prefix-Caching
- Eine Inferenzoptimierung, die den KV-Cache eines geteilten Prompt-Präfixes einmal speichert und über alle Anfragen wiederverwendet, die dieses Präfix teilen; kanonisch bei Chatbot-Workloads mit gemeinsamem System-Prompt; typischerweise 5- bis 10-facher Durchsatzgewinn.
Quellen
- Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., 2023)
- GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints (Ainslie et al., 2023)
- Fast Transformer Decoding: One Write-Head is All You Need (Shazeer, 2019, MQA)
- vLLM documentation — PagedAttention and prefix caching
- NVIDIA TensorRT-LLM — KV cache management
- GitHub SAP-samples — btp-generative-ai-hub-use-cases: bring-your-own OSS LLM on SAP AI Core (vLLM serving backend)
- SAP Help Portal — Choose a Resource Plan for training/inference in SAP AI Core (GPU sizing catalogue, incl. flexible instance types per SAP Note 3660109)
- SAP News Center — How SAP and NVIDIA Advance Enterprise AI Transformation (NIM inference optimisation context)
- GitHub SGLang — sgl-project/sglang (RadixAttention prefix-cache implementation)
- GitHub vllm-project — vLLM (PagedAttention reference implementation and KV-cache quantisation support)
- SAP Help Portal — What is SAP AI Core (platform context for a self-hosted BYOM deployment)
- GitHub SAP-samples — btp-gen-ai-hub-sdk-samples: setting up the Extended AI Core service plan required for self-hosted serving
- Hugging Face — GQA (Grouped-Query Attention) explainer and model configuration reference
- vLLM docs — Quantized KV Cache (FP8 KV-cache dtypes fp8_e4m3/fp8_e5m2 supported in vLLM)
- vLLM docs — Automatic Prefix Caching (reuse of shared-prefix KV blocks across requests)
- vLLM blog — vLLM: Easy, Fast, and Cheap LLM Serving with PagedAttention (original launch, up to 24x vs Hugging Face Transformers; project/vendor source)
- Liu et al. — KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache (low-bit KV quantization research)
Vollständige Karte für Mitglieder. Was die vollständige Karte ergänzt: den vollständigen Entscheidungsrahmen · den Vergleich SAP · Snowflake · Databricks · Fabric · die häufigen Fallstricke und ihre Behebung · die Kurzreferenz · die Architekturschemata · die Codeblöcke · die zitierfähigen Kennzahlen.
Offene SAP-Projekte
Aktuelle SAP-Analytics-Projekte und Stellen im DACH-Raum: SAP-Analytics-Projekte im DACH-Raum.