Skip to main content

KV Cache (Key-Value Cache)

Optimización de memoria en modelos Transformer que almacena vectores de claves y valores (Keys and Values) de tokens procesados en la memoria rápida de la GPU. Permite generar cada palabra siguiente instantáneamente, pero crece rápidamente en tamaño con cada nuevo mensaje en el chat.

1. Visión general del concepto y problema sistémico

Al interactuar con un modelo de lenguaje, se observan dos cosas:

  1. El modelo produce palabras a una velocidad constante (por ejemplo, 40 palabras por segundo). No se ralentiza al final de una respuesta larga.
  2. Sin embargo, si el diálogo dura una hora y la historia de mensajes se vuelve muy grande, el programa de repente muestra un error: “Out of Memory” (memoria de la GPU agotada).

Ambos fenómenos son causados por un único mecanismo: KV Cache (Key-Value Cache).

Desde un punto de vista práctico, es un cuaderno de memoria a corto plazo para IA: para no tener que releer toda la conversación anterior desde cero para cada nueva palabra, el modelo almacena los resultados matemáticos de las palabras ya leídas en un búfer ultrarrápido de la memoria de la GPU.

2. Taxonomía arquitectónica y modelo mental

SIN KV CACHE (Desaceleración catastrófica):
Generación de palabra 1  ➔ Calculamos palabra 1 (1 acción)
Generación de palabra 2  ➔ Recalculamos palabras 1, 2 (2 acciones)
Generación de palabra 100➔ Recalculamos todas las 100 palabras nuevamente (¡100 acciones!)
... ¡La velocidad cae casi a cero!

─────────────────────────────────────────────────────────────

CON KV CACHE (Velocidad constante y rápida):
Las palabras 1..99 ya están calculadas y almacenadas en el KV Cache de la GPU.
Generación de palabra 100 ➔ Cálculo de SOLO un nuevo token.
⚡ La velocidad se mantiene alta desde la primera hasta la última palabra.

3. Pipeline técnico y mecánica interna

Muchos usuarios se preguntan:

  • “El modelo pesa 5 GB, mi GPU tiene 8 GB. ¿Por qué se cierra después de un gran archivo PDF?”

Porque esos 3 GB de reserva se ocupan instantáneamente por el KV Cache:

  • Cada token en el contexto requiere almacenar vectores de Key y Value en cada capa del transformer.
  • Si tienes un documento largo de 32,000 tokens, el tamaño de esta tabla en memoria puede superar el peso del propio modelo.

4. Escenarios prácticos de ingeniería en producción

01. Optimización del tamaño del contexto

Si tu aplicación de chat local se cierra por falta de memoria, no es necesario cambiar a un modelo más débil: basta con limitar el tamaño de la ventana de contexto (por ejemplo, de 32k a 8k tokens) o limpiar el historial del chat antiguo, liberando así el KV Cache.

02. Manejo de múltiples usuarios

En un entorno de múltiples usuarios, el KV Cache puede crecer rápidamente. Implementar un sistema de gestión de sesiones que limite la longitud del diálogo por usuario puede ayudar a mantener la estabilidad del sistema.

03. Uso de vLLM para eficiencia

Integrar vLLM y PagedAttention en tu infraestructura puede reducir significativamente la fragmentación del KV Cache, permitiendo manejar más solicitudes simultáneamente sin comprometer el rendimiento.

5. Errores comunes, trampas y seguridad

  • No monitorear el uso de VRAM: Ignorar el uso de memoria puede llevar a errores de Out of Memory. Implementa herramientas de monitoreo para rastrear el uso de VRAM en tiempo real.
  • No ajustar el tamaño del contexto: Mantener un tamaño de contexto excesivo puede causar problemas de rendimiento. Ajusta el tamaño según la capacidad de la GPU y la longitud esperada del diálogo.
  • Subestimar la carga de múltiples usuarios: No considerar el impacto de múltiples usuarios en el KV Cache puede resultar en caídas del sistema. Planifica la arquitectura para escalar según la demanda.
/ Preguntas frecuentesSchema.org FAQPage

FAQ: KV Cache (Key-Value Cache)

La velocidad de generación sería catastróficamente baja: para generar la palabra 100, el modelo tendría que recalcular la atención para las 99 palabras anteriores. Con cada nueva palabra, el modelo imprimiría cada vez más lento.
/ Enlaces internos
Todos los términos