Prompt Caching-infrastructuur: LLM-kosten en Latentie Verlagen
Bijgewerkt 11 december 2025
Update december 2025: Anthropic prefix caching levert 90% kostenreductie en 85% latentiereductie voor lange prompts. OpenAI automatische caching standaard ingeschakeld (50% kostenbesparing). 31% van LLM-queries vertoont semantische gelijkenis—enorme inefficiëntie zonder caching. Cache reads kosten $0,30/M tokens vs $3,00/M vers (Anthropic). Multi-tier caching-architectuur (semantisch → prefix → inferentie) maximaliseert besparingen.
Anthropic's prompt caching verlaagt kosten tot 90% en latentie tot 85% voor lange prompts.¹ OpenAI bereikt 50% kostenreductie met automatische caching die standaard ingeschakeld is. Onderzoek toont aan dat 31% van LLM-queries semantische gelijkenis vertoont met eerdere verzoeken, wat enorme inefficiëntie vertegenwoordigt in implementaties zonder caching-infrastructuur.² Organisaties die productie AI-applicaties draaien, laten aanzienlijk geld liggen zonder goede caching-strategieën.
Prompt caching werkt op meerdere niveaus—van provider-side prefix caching die KV cache-berekeningen hergebruikt, tot applicatie-level semantische caching die eerdere antwoorden retourneert voor vergelijkbare queries. Begrijpen van elke laag en wanneer deze in te zetten helpt organisaties zowel kosten als latentie te optimaliseren voor hun specifieke werkbelastingspatronen.
Caching-grondbeginselen
LLM-inferentiekosten komen voort uit twee bronnen: verwerken van input tokens en genereren van output tokens. Caching-strategieën richten zich op beide:
Input token caching (prefix caching)
Elk LLM-verzoek verwerkt input tokens via het attention-mechanisme van het model, waarbij key-value paren worden gegenereerd die in KV cache worden opgeslagen. Wanneer meerdere verzoeken identieke prefixen delen—system prompts, few-shot voorbeelden, of documentcontext—wordt de KV cache-berekening onnodig herhaald.
Prefix caching-oplossing: Sla berekende KV-waarden op voor veelvoorkomende prefixen. Volgende verzoeken met overeenkomende prefixen slaan herberekening over en starten vanaf de gecachte status.
Kostenimpact: - Anthropic: Cache reads kosten $0,30/M tokens vs. $3,00/M voor verse verwerking (90% besparing) - OpenAI: 50% korting voor gecachte tokens - Google: Variabele prijsstelling op basis van context window
Latentie-impact: Het overslaan van prefix-berekening vermindert time-to-first-token met 50-85% afhankelijk van prefix-lengte.
Output caching (semantische caching)
Sommige verzoeken verdienen identieke antwoorden—herhaalde vragen, deterministische queries, of opzoekingen die geen regeneratie vereisen.
Semantische caching-oplossing: Sla response outputs op gekeyed op semantisch vergelijkbare inputs. Retourneer gecachte antwoorden zonder LLM-aanroep voor overeenkomende queries.
Kostenimpact: Gecachte antwoorden elimineren API-calls volledig—100% besparing op cache hits.
Latentie-impact: Antwoord retourneert in milliseconden versus seconden voor LLM-inferentie.
Caching-hiërarchie
Productiesystemen implementeren doorgaans meerdere caching-lagen:
Verzoek → Semantische Cache (100% besparing) → Prefix Cache (50-90% besparing) → Volledige Inferentie
↓ ↓ ↓
Gecacht antwoord Gecachte KV status Verse berekening
Elke laag vangt verschillende optimalisatiemogelijkheden op basis van patronen in verzoekgelijkenis.
Provider-level prompt caching
Anthropic Claude
Anthropic biedt de meest configureerbare prompt caching:³
Prijsstelling: - Cache writes: 25% toeslag boven basisprijs input - Cache reads: 90% korting (10% van basisprijs) - Break-even: 2+ cache hits per gecachte prefix
Vereisten: - Minimaal 1.024 tokens per cache checkpoint - Tot 4 cache checkpoints per verzoek - Cache levensduur: 5 minuten vanaf laatste toegang (verlengd tot 1 uur bij regelmatige hits) - Tot 5 conversatiebeurten cachebaar
Implementatie:
import anthropic
client = anthropic.Anthropic()
# Markeer content voor caching met cache_control
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
system=[
{
"type": "text",
"text": "You are an expert assistant for our enterprise software...",
"cache_control": {"type": "ephemeral"} # Markeer voor caching
}
],
messages=[{"role": "user", "content": "How do I configure user permissions?"}]
)
Best practices: - Plaats statische content (system prompts, documentatie) aan het begin van de prompt - Plaats dynamische content (gebruikersinput, conversatie) aan het eind - Gebruik cache checkpoints bij natuurlijke grenzen - Monitor cache hit rates om optimalisatie te verifiëren
OpenAI
OpenAI implementeert automatische caching zonder codewijzigingen:⁴
Prijsstelling: - Gecachte tokens: 50% van basisprijs input - Geen cache write-toeslag
Vereisten: - Minimaal 1.024 tokens voor caching-geschiktheid - Cache hits vinden plaats in stappen van 128 tokens - Cache levensduur: 5-10 minuten inactiviteit
Automatisch gedrag: - Prompts die 1.024 tokens overschrijden cachen automatisch - Systeem detecteert overeenkomende prefixen tussen verzoeken - Geen API-wijzigingen vereist
Monitoring:
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=[...],
)
# Controleer gebruik voor cache hits
print(f"Gecachte tokens: {response.usage.prompt_tokens_details.cached_tokens}")
print(f"Totale input tokens: {response.usage.prompt_tokens}")
Google Gemini
Google biedt context caching voor Gemini-modellen:⁵
Prijsstelling: - Variabel op basis van gecachte contextgrootte en duur - Opslagkosten voor gecachte content
Functies: - Expliciete cache-creatie en -beheer - Configureerbare time-to-live - Cache-deling tussen verzoeken
Implementatie:
from google.generativeai import caching
# Maak gecachte content aan
cache = caching.CachedContent.create(
model='models/gemini-1.5-pro-001',
display_name='product-documentation',
system_instruction="You are a product expert...",
contents=[product_docs],
ttl=datetime.timedelta(hours=1)
)
# Gebruik gecachte content in verzoeken
model = genai.GenerativeModel.from_cached_content(cached_content=cache)
response = model.generate_content("How do I configure feature X?")
Amazon Bedrock
AWS biedt prompt caching in preview voor ondersteunde modellen:⁶
Vereisten: - Claude 3.5 Sonnet vereist minimaal 1.024 tokens per checkpoint - Tweede checkpoint vereist 2.048 tokens
Implementatiepatroon komt overeen met Anthropic's cache_control-benadering binnen Bedrock's API-structuur.
vLLM prefix caching
Self-hosted inferentie met vLLM bevat automatische prefix caching:⁷
Architectuur
vLLM's Automatic Prefix Caching (APC) slaat KV-blokken op in een hashtabel, wat cache-hergebruik mogelijk maakt zonder boomstructuren:
Kernontwerp: - Alle KV-blokken opgeslagen in block pool bij initialisatie - Hash-gebaseerde lookup voor prefix-matching - O(1) operaties voor blokbeheer - PagedAttention geheugenefficiëntie behouden
Configuratie
from vllm import LLM
llm = LLM(
model="meta-llama/Llama-3.1-8B-Instruct",
enable_prefix_caching=True, # Schakel APC in
gpu_memory_utilization=0.90,
)
Prestatie-impact
vLLM met PagedAttention demonstreert 14-24x hogere throughput dan naïeve implementaties.⁸ Prefix caching voegt toe:
- 10x kostenverschil tussen gecachte en niet-gecachte tokens
- Orde van grootte latentiereductie voor overeenkomende prefixen
- Geheugenefficiëntie door gedeelde KV-blokken
Beveiligingsoverwegingen
vLLM ondersteunt cache-isolatie voor gedeelde omgevingen:
# Per-request cache salt voorkomt cross-tenant cache-toegang
response = llm.generate(
prompt="...",
sampling_params=SamplingParams(...),
cache_salt="tenant-123" # Isoleer cache per tenant
)
Cache salt-injectie in block hashes voorkomt timing-aanvallen waarbij tegenstanders gecachte content afleiden door latentie-observatie.
LMCache-extensie
LMCache breidt vLLM uit met geavanceerde caching-mogelijkheden:⁹
Functies: - KV cache-hergebruik tussen engine-instanties - Multi-tier opslag (GPU → CPU RAM → schijf) - Non-prefix content caching - 3-10x latentiereductie in benchmarks
Architectuur:
vLLM Engine → LMCache → GPU VRAM (heet)
→ CPU RAM (warm)
→ Lokale Schijf (koud)
Semantische caching
Semantische caching retourneert eerdere antwoorden voor semantisch vergelijkbare (niet alleen identieke) queries:
GPTCache
GPTCache biedt open-source semantische caching voor LLM-applicaties:¹⁰
Architectuur:
Query → Embedding → Vector Search → Gelijkeniscontrole → Antwoord/API-call
↓ ↓ ↓
BERT/OpenAI Milvus/FAISS Drempel (0.8)
Componenten: - LLM Adapter: Integratie met diverse LLM-providers - Embedding Generator: Query-vectorisatie - Vector Store: Gelijkeniszoekopdracht (Milvus, FAISS, Zilliz) - Cache Manager: Opslag en ophalen - Similarity Evaluator: Drempelgebaseerde matching
Implementatie:
from gptcache import cache
from gptcache.adapter import openai
# Initialiseer semantische cache
cache.init(
pre_embedding_func=get_text_embedding,
data_manager=manager,
)
# Gebruik gecachte OpenAI-calls
response = openai.ChatCompletion.create(
model='gpt-4',
messages=[{"role": "user", "content": "What is machine learning?"}]
)
# Semantisch vergelijkbare queries ("Explain ML", "Define machine learning")
# retourneren gecacht antwoord
Prestaties
GPTCache bereikt significante efficiëntiewinsten:¹¹
- API-call reductie: Tot 68,8% over querycategorieën
- Cache hit rates: 61,6% tot 68,8%
- Nauwkeurigheid: 97%+ positieve hit rate
- Latentiereductie: 40-50% bij cache hits, tot 100x voor volledige hits
Geavanceerde technieken
VectorQ adaptieve drempels:¹²
Statische gelijkenisdrempels (bijv. 0,8) presteren slecht over diverse queries. VectorQ leert embedding-specifieke drempelregio's die zich aanpassen aan querycomplexiteit:
- Eenvoudige feitelijke queries: Hogere drempels (striktere matching)
- Open-ended queries: Lagere drempels (meer hergebruik)
- Ambigue queries: Dynamische aanpassing
SCALM-patroondetectie:
SCALM verbetert GPTCache door patroondetectie en frequentieanalyse: - 63% verbetering in cache hit ratio - 77% reductie in tokengebruik - Identificeert hoogfrequente cache-entry patronen
Wanneer semantische caching gebruiken
Goede kandidaten: - FAQ-achtige queries met beperkte antwoordruimte - Opzoekqueries (productinfo, documentatie) - Deterministische antwoorden (berekeningen, opmaak) - Hoog-traffic applicaties met queryherhaling
Slechte kandidaten: - Creatieve generatie die uniciteit vereist - Gepersonaliseerde antwoorden (gebruikersspecifieke context) - Tijdgevoelige informatie - Laag-herhalende querypatronen
Implementatiepatronen
Chat-applicaties
Chatsystemen profiteren van zowel prefix als semantische caching:
System prompt caching:
# Statische system prompt gecacht aan begin van verzoek
system_prompt = """
You are a customer support agent for Acme Corp...
[2000+ tokens aan richtlijnen en kennis]
"""
# Dynamische conversatie toegevoegd na gecachte prefix
messages = [
{"role": "system", "content": system_prompt, "cache_control": {...}},
{"role": "user", "content": user_message}
]
Conversatiegeschiedenis caching: Anthropic ondersteunt caching van tot 5 conversatiebeurten, wat kosten vermindert voor multi-turn conversaties.
RAG-applicaties
Retrieval-augmented generation cachet opgehaalde context:
# Cache-structuur voor RAG
cached_context = {
"system": system_prompt, # Altijd gecacht
"documents": retrieved_chunks, # Cache per querycluster
"examples": few_shot_examples # Stabiel over verzoeken
}
# Alleen gebruikersquery varieert
dynamic_content = {
"query": user_question
}
Documentchunk caching: Wanneer meerdere queries dezelfde documenten ophalen, elimineert prefix caching redundante verwerking van gedeelde context.
Agentische workflows
Agentsystemen met tool calling profiteren van prefix caching:
System prompt → Tool-definities → Conversatiegeschiedenis → Huidige query
(gecacht) (gecacht) (gedeeltelijk gecacht) (vers)
Tool-definities blijven stabiel over verzoeken—ideale caching-kandidaten.
Introl-implementatie
Introl integreert gecombineerde caching in onze AI-gateway:
Multi-tier architectuur:
Inkomend verzoek
↓
Semantische cache-controle (gelijkenisdrempel 0,85)
↓ miss
Provider-specifieke prefix caching
↓
LLM-inferentie
↓
Responsopslag (beide caches)
Provider-routing: - Automatische cache-controle header-injectie voor Anthropic - OpenAI cache-statistieken monitoring - Fallback naar niet-gecachte paden bij cache-storingen
Metriekenverzameling: - Cache hit rates per provider - Latentievergelijking (gecacht vs. vers) - Kostenatributie naar caching-niveau
Neem contact met ons op om meer te leren over Introl's AI-gateway en hoe we caching inzetten voor efficiënte LLM-implementaties.
Bronnen
- Anthropic. "Prompt Caching with Claude." Anthropic Documentation. https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
- Embedding-onderzoek over semantische gelijkenis in LLM-queries toont ~31% queryduplicatie. Diverse bronnen.
- Anthropic. "Prompt Caching Guide." https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
- OpenAI. "Prompt Caching." OpenAI Platform Documentation. https://platform.openai.com/docs/guides/prompt-caching
- Google. "Context Caching." Google AI Documentation. https://ai.google.dev/gemini-api/docs/caching
- Amazon Web Services. "Prompt Caching for Amazon Bedrock." https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html
- vLLM Project. "Automatic Prefix Caching." https://docs.vllm.ai/en/latest/features/automatic_prefix_caching.html
- Kwon et al. "Efficient Memory Management for Large Language Model Serving with PagedAttention." 2023.
- LMCache Project. "LMCache Documentation." https://docs.lmcache.ai/
- Zilliz. "GPTCache: A Library for Creating Semantic Cache for LLM Queries." https://github.com/zilliztech/GPTCache
- GPTCache benchmark-resultaten uit projectdocumentatie en gebruikersstudies.
- VectorQ-onderzoek over adaptieve drempelmechanismen voor semantisch cachen.