Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

KV Cache

El KV Cache almacena los resultados de atención de tokens previos para no recalcularlos en cada nuevo token, acelerando dramáticamente la generación autoregresiva.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • KV Cache as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

Cuando un LLM genera texto token por token, sin KV Cache recalcularía la atención sobre TODOS los tokens anteriores para cada token nuevo. Eso es O(n²) en cómputo y O(n²) en memoria. El KV Cache guarda los vectores Key y Value de los tokens ya generados; al generar el siguiente token, solo calcula atención sobre el nuevo token contra el cache, reduciendo la complejidad a O(n).

Sin KV Cache, generar 100 tokens sería 100 veces más lento que lo que experimentás hoy. Es una optimización universal en todos los LLMs modernos.

Alcance y supuestos

Cubre KV Cache como optimización de inferencia y su trade-off memoria vs velocidad. Asume familiaridad con Transformers.

Modelo mental

Un profesor que da una clase y anota en el pizarrón los puntos clave. Cuando un alumno nuevo llega, en vez de repetir toda la clase, el alumno lee el pizarrón. El KV Cache es el pizarrón de los Transformers.

Uso práctico

  • ✅ Acelera la inferencia. Sin él, los LLMs serían impracticablemente lentos.
  • ❌ Consume memoria VRAM proporcional a la longitud de la secuencia.

Ejemplo trabajado: costo de KV Cache

Generar 10K tokens en un LLM de 70B parámetros puede requerir ~20 GB solo para el KV Cache. Técnicas como Multi-Query Attention (MQA) reducen este costo.

Evidencia

  • El KV Cache es estándar en todos los frameworks de inferencia: vLLM, llama.cpp, TensorRT-LLM.

Fuentes citadas