KV Cache
Caché de keys y values
En una frase
KV Cache: una memoria que guarda las keys y values ya calculadas de los tokens anteriores para no recalcularlas en cada paso de generación.
¿Demasiado técnico? Ver explicación sencilla¿Quieres profundizar? Ver explicación técnica
Explícamelo fácil
Al generar texto, un LLM produce un token a la vez. Sin caché, para cada token nuevo tendría que volver a procesar todo el texto anterior desde cero. El KV cache guarda el trabajo ya hecho, así que cada paso solo calcula lo del token nuevo.
Es como tomar notas mientras lees un libro: no necesitas releer desde la primera página para entender el siguiente párrafo.
Nivel técnico
Profundizando
En cada capa de atención, las keys y values de los tokens previos se almacenan; en el paso t solo se calculan q, k, v del nuevo token y se atiende sobre el caché. Esto reduce el costo de generación de cuadrático a lineal por token, pero el caché ocupa mucha memoria: crece con capas × cabezas × dimensión × longitud × batch.
Optimizaciones: GQA/MQA (menos keys/values), cuantización del caché, PagedAttention (gestión de memoria por páginas, usada en vLLM) y prompt caching, que reutiliza el caché de prefijos repetidos (como un system prompt largo) entre solicitudes para reducir costo y latencia.
¿Por qué importa?
Es clave para que la generación de texto sea rápida y asequible, y es uno de los principales consumidores de VRAM en inferencia.
¿Dónde se utiliza?
- Servir LLMs
- Contextos largos
- Prompt caching en APIs
Antes de aprender esto
Si alguno te resulta nuevo, empieza por ahí.