¿Cómo gestiona Paged Attention la caché KV cuando hay solicitudes simultáneas de IA local?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

La atención paginada gestiona la caché KV simultánea asignando el estado de tokens creciente de cada solicitud a bloques de tamaño fijo que pueden asignarse y reciclarse de forma independiente.

Esto es importante en un servidor de IA doméstico porque los chats activos, las tareas con documentos y los agentes rara vez tienen la misma longitud de contexto o terminan al mismo tiempo. Una estrategia de reserva contigua desperdicia la escasa memoria del acelerador alrededor de esas secuencias variables. La paginación cambia la disposición de la memoria para que el planificador pueda utilizar la capacidad disponible de forma más eficiente.

Las solicitudes simultáneas crean cachés KV que crecen a ritmos diferentes

Cada solicitud autorregresiva activa necesita el estado de claves y valores de los tokens que ha procesado. Un chat puede terminar después de 100 tokens, mientras que otro continúa durante miles, por lo que su demanda de memoria no puede conocerse con exactitud cuando comienza el lote.

El artículo sobre PagedAttention identifica la memoria de la caché KV que crece dinámicamente como un cuello de botella al servir modelos que limita el procesamiento por lotes cuando la asignación es ineficiente.

En un servidor doméstico con varios usuarios o agentes en segundo plano, esta variabilidad convierte una gran cantidad de memoria libre en muchas asignaciones activas de distintos tamaños.

Las reservas contiguas fijas desperdician memoria alrededor de secuencias variables

Un entorno de ejecución ingenuo puede reservar una región contigua grande para cada solicitud basándose en una longitud máxima. Las solicitudes cortas dejan espacio sin usar dentro de su reserva, mientras que las más largas pueden necesitar reasignación o sobreaprovisionamiento.

vAttention resume la motivación original de la paginación: las reservas anticipadas de KV crean fragmentación interna. La memoria desperdiciada reduce el número de solicitudes que pueden permanecer activas simultáneamente.

El síntoma práctico es alcanzar el límite de memoria o tener un lote máximo pequeño, aunque la suma de los estados de tokens realmente utilizados parezca inferior a la VRAM disponible.

PagedAttention divide el estado KV en bloques de tamaño fijo

PagedAttention reemplaza un único búfer de solicitud físicamente contiguo por una secuencia lógica de bloques. A medida que llegan más tokens, el entorno de ejecución asigna bloques físicos adicionales desde un conjunto compartido.

vLLM explica que los bloques KV pueden residir en memoria física no contigua. Una tabla de bloques asigna el orden lógico de los tokens de la solicitud a esas ubicaciones físicas.

El modelo sigue atendiendo a la secuencia correcta. La indirección cambia la ubicación en memoria, no el orden semántico de la conversación.

-15% OFF

Los bloques liberados regresan a un conjunto compartido cuando terminan las solicitudes

Cuando una solicitud termina, sus bloques no compartidos pueden liberarse de inmediato y reutilizarse para otra solicitud activa o recién admitida. El servidor no necesita esperar a que un área enorme completa quede vacía.

La pila de inferencia de NVIDIA expone la capacidad de la caché KV como un recurso de servicio que debe equilibrarse con los pesos y el espacio de trabajo del entorno de ejecución.

Este reciclaje a nivel de bloque es valioso en casa porque las longitudes de las solicitudes son irregulares: una persona hace una pregunta breve sobre el hogar inteligente, mientras otra ejecuta un asistente de documentos largo y un agente en segundo plano resume archivos.

La paginación aumenta la concurrencia al reducir la fragmentación, no al hacer más pequeño cada token

PagedAttention no hace fundamentalmente más pequeños los tensores de claves y valores de un token. Su principal beneficio de memoria proviene de asignar el espacio de forma más cercana al crecimiento real de la secuencia y permitir el uso compartido cuando es válido.

La guía distribuida de PyTorch separa el paralelismo de modelos de la gestión de memoria del servicio. La paginación no es paralelismo tensorial ni divide por sí misma los pesos del modelo entre varias GPU.

Si los pesos del modelo ya consumen casi toda la memoria del dispositivo, la paginación no puede crear capacidad suficiente para una gran concurrencia. Mejora el aprovechamiento de la región KV restante.

La gestión de bloques tiene sus propios costes y límites de planificación

El entorno de ejecución ahora mantiene tablas de bloques, recuentos de referencias, decisiones de asignación y kernels de atención compatibles con disposiciones paginadas. Los lotes extremadamente pequeños o el hardware no compatible pueden reducir la ventaja.

El artículo de ZimaSpace sobre la concurrencia familiar y la presión sobre la caché KV muestra el límite desde la perspectiva del usuario: la eficiencia de la memoria importa porque determina cuántos contextos activos pueden coexistir antes de que crezca la espera en cola.

Prueba varias longitudes de solicitud y patrones de llegada, en lugar de un único lote sintético. La guía de ZimaSpace sobre ventanas de contexto deslizantes y memoria KV es una comparación útil porque el uso de ventanas cambia cuánto estado conserva cada secuencia, mientras que la paginación cambia cómo se asigna ese estado. Registra las secuencias activas, los bloques KV utilizados, el tiempo en cola y las interrupciones.

El planificador de TGI de Hugging Face también distingue entre el prellenado y la decodificación en la planificación del servicio simultáneo. La memoria paginada ayuda al planificador a admitir trabajo, pero la equidad y la latencia siguen dependiendo de cómo se ponga ese trabajo en cola.

Centro de Tecnología e IA

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.