What is KV Cache?

    Un búfer de memoria que almacena los tensores de clave y valor previamente computados del mecanismo de atención, evitando cálculos redundantes durante la generación autorregresiva de texto.

    Definition

    El KV cache (caché de clave-valor) es una optimización de memoria usada durante la generación autorregresiva de texto con modelos transformer. Cuando un modelo genera texto token por token, cada nuevo token requiere atender a todos los tokens anteriores a través del mecanismo de atención, lo que implica computar tensores de clave (K) y valor (V) para cada token en la secuencia. Sin caché, el modelo recalcularía los tensores K y V para todos los tokens anteriores en cada paso de generación — un cálculo redundante que crece cuadráticamente con la longitud de la secuencia.

    El KV cache almacena los tensores K y V computados para cada token a medida que se genera, de modo que los pasos de generación posteriores solo necesitan computar K y V para el nuevo token y leer los valores cacheados para todos los tokens anteriores. Esto reduce el cálculo por paso de O(n) a O(1) para el cálculo de K/V, acelerando drásticamente la generación. El compromiso es la memoria: el KV cache crece linealmente con la longitud de la secuencia, y para contextos largos o tamaños de lote grandes, puede consumir más memoria GPU que los pesos del modelo en sí.

    Para un modelo típico de 7B parámetros en FP16, cada token en el KV cache requiere aproximadamente 1 MB de memoria (a través de todas las capas). Un contexto de 4096 tokens por lo tanto requiere aproximadamente 4 GB de memoria de KV cache. Para una ventana de contexto de 128K, el KV cache solo requeriría aproximadamente 128 GB — muy por encima de la memoria de los pesos del modelo. Por esto la gestión eficiente del KV cache es uno de los desafíos más importantes en el servicio de LLM.

    Why It Matters

    La gestión del KV cache es el cuello de botella crítico en el servicio de LLM a escala. La caché determina cuántas solicitudes concurrentes puede servir una GPU (tamaño de lote), qué tan largos pueden ser los contextos (longitud máxima de secuencia) y cuánta memoria queda disponible para los pesos del modelo. Los sistemas eficientes de KV cache se traducen directamente en mayor throughput, menor latencia y costos de servicio reducidos.

    Innovaciones en la gestión del KV cache — como PagedAttention (usado por vLLM), que gestiona la memoria de la caché como un sistema operativo gestiona páginas de memoria virtual — han mejorado drásticamente la eficiencia del servicio de LLM. Antes de PagedAttention, los sistemas de servicio desperdiciaban hasta el 60% de la memoria del KV cache debido a la fragmentación. Estas innovaciones son tan impactantes como las mejoras en la arquitectura del modelo para la economía del despliegue en el mundo real.

    How It Works

    Durante la fase de prefill (procesamiento del prompt inicial), el modelo computa los tensores K y V para todos los tokens de entrada y los almacena en la caché. Durante la fase de decodificación (generación de nuevos tokens), cada paso de generación computa K y V solo para el nuevo token, los agrega a la caché y usa la caché completa para el cálculo de atención.

    Las técnicas avanzadas de KV cache incluyen: KV cache cuantizado (almacenar tensores cacheados en INT8 o INT4 en lugar de FP16, reduciendo la memoria de 2 a 4 veces con impacto mínimo en la calidad); atención de consulta agrupada (GQA, que usa menos cabezas K/V que cabezas de consulta, reduciendo el tamaño de la caché); atención de ventana deslizante (solo cachear los N tokens más recientes en lugar del historial completo); y PagedAttention (gestionar la memoria de la caché en páginas de tamaño fijo, eliminando la fragmentación y permitiendo compartir memoria eficientemente entre solicitudes).

    Example Use Case

    Una plataforma de servicio maneja 200 sesiones de chat concurrentes, cada una con contextos de hasta 8K tokens, en 4 GPUs A100-80GB. Sin PagedAttention, la fragmentación del KV cache los limita a 80 sesiones concurrentes. Con PagedAttention de vLLM gestionando el KV cache, sirven las 200 sesiones con un 95% de utilización de memoria, reduciendo sus requisitos de GPU de 10 GPUs a 4 — una reducción del 60% en costos de infraestructura.

    Key Takeaways

    • El KV cache almacena tensores de clave/valor de atención previamente computados para evitar cálculos redundantes.
    • Es esencial para la generación autorregresiva eficiente — sin él, el cálculo crece cuadráticamente.
    • La memoria del KV cache crece linealmente con la longitud de la secuencia y puede superar la memoria de los pesos del modelo para contextos largos.
    • Técnicas como PagedAttention, GQA y la cuantización de la caché optimizan la eficiencia de memoria.
    • La gestión del KV cache determina directamente el throughput de servicio, la latencia y los costos de infraestructura.

    How Ertas Helps

    Los modelos ajustados en Ertas Studio heredan las características de eficiencia del KV cache de su arquitectura base. Studio soporta modelos con atención de consulta agrupada (GQA) que reducen los requisitos de memoria del KV cache, permitiendo contextos más largos durante la inferencia local con exportaciones GGUF.

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.