Zubnet AIAprenderWiki › PagedAttention
Infraestructura

PagedAttention

También conocido como:
Una técnica de gestión de memoria para el KV cache que toma prestado de la memoria virtual de los sistemas operativos. En lugar de asignar un bloque contiguo de memoria GPU para el KV cache de cada solicitud (lo que desperdicia memoria por fragmentación), PagedAttention almacena el cache en bloques no contiguos ("páginas") que se asignan bajo demanda y pueden compartirse entre solicitudes con prefijos comunes.

Por qué importa

PagedAttention es la innovación detrás de vLLM y ahora es adoptada por la mayoría de los frameworks de servicio de LLMs. Aumentó el rendimiento de servicio 2–4x comparado con implementaciones ingenuas al eliminar el desperdicio de memoria por fragmentación. Sin ella, servir modelos de contexto largo a muchos usuarios concurrentes sería dramáticamente más caro.

En profundidad

El problema que PagedAttention resuelve: cuando llega una solicitud, no sabes qué tan larga será la respuesta, así que debes preasignar KV cache para la longitud máxima posible. Si la longitud máxima es 4096 tokens pero la respuesta es solo de 200 tokens, el 95% de la memoria asignada se desperdicia. Multiplica por cientos de solicitudes concurrentes y la memoria GPU se llena rápido, limitando el rendimiento.

La analogía con la memoria virtual

PagedAttention divide el KV cache en páginas de tamaño fijo (por ejemplo, 16 tokens por página). Las páginas se asignan solo cuando se necesitan y pueden almacenarse en cualquier lugar de la memoria GPU (no contiguo). Una tabla de páginas mapea posiciones lógicas a ubicaciones de memoria física, exactamente como la memoria virtual del sistema operativo. Esto elimina la fragmentación: la memoria se asigna página por página a medida que la respuesta crece, y las páginas liberadas están inmediatamente disponibles para nuevas solicitudes.

Compartición de prefijos

Una extensión poderosa: cuando múltiples solicitudes comparten el mismo prefijo de prompt (común con prompts de sistema compartidos), sus páginas de KV cache para ese prefijo pueden compartirse físicamente — almacenadas una vez en memoria pero referenciadas por todas las solicitudes. Esta es la semántica copy-on-write del diseño de sistemas operativos aplicada al servicio de LLMs. Para aplicaciones donde muchos usuarios comparten el mismo prompt de sistema, esto puede reducir el uso de memoria en más del 50% para la porción compartida.

Conceptos relacionados

← Todos los términos