PagedAttention es un algoritmo de atención para el servicio eficiente de modelos de lenguaje grandes (LLM). Fue presentado en 2023 por Woosuk Kwon y sus colegas en el artículo Efficient Memory Management for Large Language Model Serving with PagedAttention [ 1 ] , junto con el motor de servicio vLLM . El método almacena la caché de clave-valor utilizada durante la decodificación autorregresiva en bloques de tamaño fijo que pueden asignarse a memoria física no contigua, tomando prestadas ideas de la memoria virtual , la paginación y el diseño de sistemas operativos [ 2 ] [ 3 ] .
Fondo
En la inferencia de transformadores , la caché clave-valor crece con la longitud de la secuencia y el número de solicitudes concurrentes . Kwon et al. argumentaron que los sistemas de servicio anteriores generalmente reservaban regiones de caché contiguas por adelantado, lo que causaba espacio reservado, fragmentación interna y fragmentación externa. En sus experimentos, el artículo informó que la utilización efectiva de la memoria de los sistemas anteriores podía caer hasta un 20,4 %. [ 2 ]
Descripción
PagedAttention particiona la caché de cada secuencia en bloques KV de tamaño fijo . La caché de una solicitud se representa como una secuencia de bloques lógicos, mientras que una tabla de bloques asigna esos bloques lógicos a bloques de memoria física de la GPU. Como resultado, los bloques lógicos vecinos no necesitan ser contiguos en la memoria física, y se pueden asignar nuevos bloques bajo demanda a medida que avanza la generación. [ 2 ]
El diseño también facilita compartir el estado de la caché entre rutas de decodificación relacionadas. En vLLM , los bloques físicos pueden contarse por referencia y compartirse entre solicitudes o ramas, y se utiliza la copia en escritura con granularidad de bloque cuando se debe modificar un bloque compartido. El artículo original aplicó este diseño al muestreo paralelo, la búsqueda en haz y las indicaciones con prefijos compartidos. [ 2 ]
Formulación matemática
Para un token de consultaEn la autoatención causal, la salida de atención estándar se puede escribir como dónde,, yson los vectores de consulta, clave y valor, yes la dimensión de atención. [ 2 ]
Si la caché se particiona en bloques de tamaño, los bloques de clave y valor se pueden escribir como PagedAttention realiza entonces el cálculo por bloques: dóndees el vector de puntuaciones de atención para el-ésimo bloque KV. En la formulación dada por Kwon et al. , esto preserva el cálculo de atención causal al tiempo que permite que los bloques de clave y valor residan en memoria física no contigua. [ 2 ]
Rendimiento y uso
El artículo de vLLM informó que, en las cargas de trabajo evaluadas, el uso de PagedAttention y el diseño de gestión de memoria asociado mejoraron el rendimiento de servicio entre 2 y 4 veces con respecto a las líneas base comparadas, incluidas FasterTransformer y Orca, al tiempo que se conservaron las salidas del modelo. En experimentos en OPT-13B con el trazado Alpaca, el artículo también informó ahorros de memoria del 6,1 al 9,8 % para el muestreo paralelo y del 37,6 al 55,2 % para la búsqueda de haces mediante el uso compartido de bloques KV. [ 2 ]
Una encuesta de 2024 sobre sistemas de servicio LLM describió PagedAttention como una norma de la industria en los marcos de servicio LLM, citando el soporte en TGI, vLLM y TensorRT-LLM. [ 3 ]
Limitaciones y alternativas
Trabajos posteriores han descrito las ventajas y desventajas de este enfoque. El artículo de vAttention de 2025 argumentó que PagedAttention requiere que los núcleos de atención se reescriban para admitir la paginación y aumenta la complejidad del software, los problemas de portabilidad, la redundancia y la sobrecarga de ejecución, proponiendo en su lugar un administrador de memoria que mantiene la caché contigua en la memoria virtual mientras se basa en la paginación bajo demanda para la asignación física. [ 4 ]
vAtención
A diferencia de PagedAttention, vAttention no introduce una regla de atención diferente; conserva el cálculo de atención estándar. En la notación de Prabhu et al. , los tensores de clave y valor para una solicitud vista hasta ahora son: , dóndees la longitud del contexto vista hasta ahora,es el número de cabezales KV en un trabajador, yes la dimensión de cada cabezal KV. [ 4 ]
En los sistemas anteriores a PagedAttention, la caché K (o caché V) en cada capa de un trabajador se asigna típicamente como un tensor 4D de forma dóndees el tamaño del lote yes la longitud máxima de contexto admitida por el modelo. [ 4 ]
vAttention conserva esta vista de memoria virtual contigua mientras aplaza la asignación de memoria física al tiempo de ejecución. Un marco de servicio mantiene tensores K y V separados para cada capa, por lo que vAttention reserva búferes de memoria virtual en un trabajador, dondees el número de capas gestionadas por ese trabajador. [ 4 ]
El tamaño máximo de un búfer de memoria virtual es dóndees el tamaño máximo de la caché K (o caché V) por capa de una sola solicitud en un trabajador. El documento define dóndees el número de bytes necesarios para almacenar un elemento. [ 4 ]
En esta formulación, vAttention mantiene la caché KV contigua en la memoria virtual y se basa en la paginación bajo demanda para la asignación física, en lugar de modificar el núcleo de atención para operar sobre bloques de caché KV no contiguos. [ 4 ]
Véase también
- AlphaDev y AlphaEvolve : sistemas de IA de Google DeepMind para descubrir y optimizar algoritmos de informática.
- Mecanismo de atención
- Búsqueda por haz
- Políticas de reemplazo de caché
- Lista de algoritmos de inteligencia artificial
Referencias
- ↑ Kwon, Woosuk; Li, Zhuohan; Zhuang, Siyuan; Sheng, Ying; Zheng, Lianmin; Yu, Cody Hao; Gonzalez, Joseph E.; Zhang, Hao; Stoica, Ion (12 de septiembre de 2023). "Gestión eficiente de la memoria para el servicio de modelos de lenguaje grandes con PagedAttention". arXiv : 2309.06180 [ cs.LG ].
- 1 2 3 4 5 6 7 Kwon, Woosuk; Li, Zhuohan; Zhuang, Siyuan; Sheng, Ying; Zheng, Lianmin; Yu, Cody Hao; Gonzalez, Joseph E.; Zhang, Hao; Stoica, Ion (2023). "Gestión eficiente de memoria para el servicio de modelos de lenguaje grandes con PagedAttention". Actas del 29.º Simposio sobre Principios de Sistemas Operativos . Asociación para la Maquinaria de Computación. págs. 611–626 . arXiv : 2309.06180 . doi : 10.1145/3600006.3613165 .
- 1 2 Li, Baolin; Jiang, Yankai; Gadepally, Vijay; Tiwari, Devesh (17 de julio de 2024). "LLM Inference Serving: Survey of Recent Advances and Opportunities". arXiv : 2407.12391 [ cs.DC ].
- 1 2 3 4 5 6 Prabhu, Ramya; Nayak, Ajay; Mohan, Jayashree; Ramjee, Ramachandran; Panwar, Ashish (2025). "vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention". Actas de la 30.ª Conferencia Internacional ACM sobre Soporte Arquitectónico para Lenguajes de Programación y Sistemas Operativos, Volumen 1. Association for Computing Machinery. págs. 1133–1150 . doi : 10.1145/3669940.3707256 .
- Algoritmos
- Inteligencia artificial
- Modelos de lenguaje a gran escala