caching strategies
**Caching strategies** involve storing the results of expensive computations or data retrievals so that subsequent identical requests can be served **faster and cheaper** without recomputing. In AI systems, caching is especially valuable because LLM inference is computationally expensive.
**Types of Caching in AI Applications**
- **Response Caching**: Store complete model responses for identical prompts. If the same question is asked again, return the cached answer instantly.
- **Semantic Caching**: Cache responses based on **semantic similarity** rather than exact match. If a new query is semantically similar to a cached query (using embeddings), return the cached response.
- **Embedding Caching**: Store computed embeddings for documents or queries to avoid recomputing them.
- **KV Cache**: GPU-level caching of attention key-value pairs within the transformer during inference to avoid recomputing previous tokens.
- **RAG Result Caching**: Cache retrieved document chunks for common queries to avoid repeated vector database lookups.
**Cache Strategies**
- **Write-Through**: Write to cache and storage simultaneously — ensures consistency but adds write latency.
- **Write-Behind (Write-Back)**: Write to cache first, update storage asynchronously — faster writes but risk of data loss.
- **Read-Through**: On cache miss, automatically load from storage into cache — simplifies application code.
- **Cache-Aside (Lazy Loading)**: Application checks cache first; on miss, fetches from source and populates cache — most common pattern.
**When to Cache**
- **Deterministic Responses**: Cache when inputs reliably produce the same output (temperature=0, factual queries).
- **Expensive Computations**: Cache when the cost of recomputation is high (LLM inference, large embeddings, complex aggregations).
- **Frequent Requests**: Cache responses for commonly asked questions or popular queries.
**Cache Invalidation**
- **Time-Based (TTL)**: Entries expire after a fixed time period.
- **Event-Based**: Invalidate when underlying data changes.
- **Manual**: Explicitly clear cache entries when content is updated.
**Tools**: **Redis**, **Memcached**, **GPTCache** (semantic caching for LLMs), **LangChain caching** (built-in response caching).
Strategic caching can reduce LLM API costs by **30–80%** in production applications with repetitive query patterns.