Skip to main content

PagedAttention y Gestión de KV-Cache

Un algoritmo de gestión de memoria de GPU que divide el KV-Cache del modelo de lenguaje en páginas virtuales continuas (como en el núcleo de un SO), eliminando la fragmentación y aumentando la capacidad de procesamiento en 4 veces.

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

Cuando un servidor atiende solicitudes a un modelo de lenguaje, el mayor enemigo de la escalabilidad es la memoria:

  • La GPU NVIDIA A100 tiene 80 GB de VRAM. El modelo 70B en cuantización de 4 bits ocupa ~38 GB.
  • Quedan 42 GB para solicitudes de usuarios.
  • Si se reserva memoria de manera tradicional, el servidor solo puede atender simultáneamente 2-3 solicitudes con contexto largo. Intentar conectar un cuarto cliente resulta en un error CUDA Out of Memory.

PagedAttention resolvió este problema al trasladar un principio fundamental de 50 años de los sistemas operativos — memoria virtual paginada (Paging) — a la VRAM de las GPUs.

2. Taxonomía arquitectónica y modelo mental

┌─────────────────────────────────────────────────────────────┐
│                 ARQUITECTURA DE PAGEDATTENTION              │
├─────────────────────────────────────────────────────────────┤
│ 1. Bloques KV Lógicos (Contexto lógico del usuario):        │
│    [Tokens 0-15] ➔ [Tokens 16-31] ➔ [Tokens 32-47]         │
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ Tabla de Bloques (Block Table)   │
│    • Bloque lógico 0 ➔ Bloque físico 7 en VRAM               │
│    • Bloque lógico 1 ➔ Bloque físico 2 en VRAM               │
│    • Bloque lógico 2 ➔ Bloque físico 11 en VRAM              │
├─────────────────────────────────────────────────────────────┤
│ 2. Páginas VRAM Físicas (Slots libres continuos):           │
│    ┌─────────┬─────────┬─────────┬─────────┬─────────┐      │
│    │ Bloque 0│ Bloque 1│ Bloque 2│ ...     │ Bloque 11│      │
│    │ (Req B) │ (Libre) │ (Req A) │         │ (Req A) │      │
│    └─────────┴─────────┴─────────┴─────────┴─────────┘      │
│    • La fragmentación de memoria se reduce del 70% a <4%     │
└─────────────────────────────────────────────────────────────┘

3. Pipeline técnico y mecánica interna

01. Compartición de Prefijos (Prefix Caching / Copy-on-Write)

Si 50 usuarios hacen preguntas simultáneamente sobre el mismo prompt del sistema o documento PDF, PagedAttention no lo copia 50 veces. Todas las solicitudes apuntan a las mismas páginas físicas del KV-Cache en VRAM. La memoria se copia solo cuando el usuario comienza a generar su propia respuesta única (Copy-on-Write).

02. Ramificación Paralela de Pensamientos Agentes (Branching Search)

Cuando un agente explora 4 opciones para resolver un problema (Beam Search o Tree-of-Thought), el contexto común inicial se mantiene en una única instancia de páginas de memoria, ahorrando hasta un 75% de VRAM en cálculos de enjambre.

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

01. Optimización de Memoria en Diálogos Cortos

Para diálogos ultra cortos (1-5 tokens), el overhead de gestionar la tabla de bloques puede aumentar ligeramente el tiempo de despacho.

02. Limpieza de Páginas al Cancelar Solicitudes

Si un usuario interrumpe la conexión, el motor debe devolver inmediatamente las páginas físicas asignadas al pool de bloques libres, de lo contrario, se produce una fuga de memoria (VRAM Memory Leak).

5. Errores comunes, trampas y seguridad

PagedAttention ha realizado una revolución silenciosa en la infraestructura de LLM, similar a la que hizo la memoria virtual en Unix. Gracias a esto, atender a cientos de agentes en una sola GPU se ha convertido en un estándar económicamente viable en la industria.

/ Preguntas frecuentesSchema.org FAQPage

FAQ: PagedAttention y Gestión de KV-Cache

Durante la generación, el modelo debe almacenar los tensores de Keys y Values para cada token previo, para no recalcularlos. Con una longitud de contexto de 128k tokens, el KV-Cache para un solo usuario puede ocupar más de 10-20 GB de memoria.
/ Enlaces internos
Todos los términos