1. ¿Qué es el KV Cache y qué problema de redundancia resuelve en un LLM?

El KV Cache (Key-Value Cache o Caché de Claves y Valores) es una técnica de optimización de memoria esencial utilizada para acelerar la velocidad a la que los Modelos de Lenguaje (LLMs) generan texto palabra por palabra.

Cuando interactúas con una IA, el modelo procesa todo el texto introducido y calcula unos datos matemáticos llamados vectores de Clave (Key) y Valor (Value) para cada palabra. Estos vectores son los que permiten al mecanismo de atención del modelo entender el contexto. En los sistemas antiguos, cada vez que la IA generaba una nueva palabra, tenía que volver a procesar todas las palabras anteriores desde cero para calcular estos vectores. El KV Cache resuelve esta redundancia: guarda en la memoria rápida de la GPU los vectores ya calculados de las palabras pasadas, de modo que el modelo solo tiene que calcular los datos de la palabra nueva, ahorrando una cantidad inmensa de operaciones matemáticas repetitivas.

2. ¿Cuál es la diferencia entre la fase de Prefill y la fase de Decoding?

El proceso de generación de un LLM se divide en dos etapas técnicas muy marcadas que interactúan con la memoria caché de forma opuesta:

  1. Fase de Prefill (Prellenado): Es el momento inicial en el que el usuario envía su pregunta (prompt). El modelo toma todo ese bloque de texto introducido de golpe, lo procesa en paralelo y calcula los vectores de clave y valor para cada palabra. Esta fase es muy intensa a nivel de cálculo matemático en los núcleos de la GPU y sirve, precisamente, para «llenar» el KV Cache por primera vez.
  2. Fase de Decoding (Decodificación): Es la etapa posterior donde la IA empieza a responder generando una palabra a la vez. Aquí, el modelo no necesita reprocesar el prompt; simplemente consulta los datos guardados en el KV Cache para saber qué ha escrito antes y predecir el siguiente token. Esta fase es mucho más ligera en operaciones matemáticas, pero depende por completo de la velocidad de lectura de la memoria de la GPU.

3. ¿Por qué el KV Cache genera un cuello de botella de memoria en la GPU?

Aunque el KV Cache hace que la IA sea drásticamente más rápida, introduce un nuevo problema logístico: consume una cantidad masiva de memoria de video (VRAM) en las tarjetas gráficas.

A medida que la conversación se vuelve más larga o el modelo atiende a múltiples usuarios simultáneamente en un servidor empresarial, el tamaño de la caché crece de forma lineal. Esto genera un cuello de botella debido a la asignación de memoria estática tradicional. Los servidores suelen reservar un bloque fijo y gigante de memoria para la caché de cada usuario basándose en la longitud máxima de contexto del modelo, incluso si el usuario solo escribe una pregunta corta. Esto provoca que gran parte de la valiosa memoria de la GPU se quede vacía e inutilizada (fragmentación de memoria), lo que limita la cantidad de usuarios que el sistema puede atender al mismo tiempo y puede provocar desbordamientos de memoria (Out of Memory u OOM) que cuelgan el servicio.