Gestión Eficiente de Memoria para el Servicio de Modelos de Lenguaje a Gran Escala con PagedAttention
Efficient Memory Management for Large Language Model Serving with PagedAttention
September 12, 2023
Autores: Woosuk Kwon, Zhuohan Li, Siyuan Zhuang, Ying Sheng, Lianmin Zheng, Cody Hao Yu, Joseph E. Gonzalez, Hao Zhang, Ion Stoica
cs.AI
Resumen
El servicio de alto rendimiento de modelos de lenguaje grandes (LLMs) requiere procesar un número suficiente de solicitudes simultáneamente. Sin embargo, los sistemas existentes enfrentan dificultades porque la memoria de caché de clave-valor (KV cache) para cada solicitud es enorme y varía dinámicamente en tamaño. Cuando se gestiona de manera ineficiente, esta memoria puede desperdiciarse significativamente debido a la fragmentación y la duplicación redundante, lo que limita el tamaño del lote. Para abordar este problema, proponemos PagedAttention, un algoritmo de atención inspirado en las técnicas clásicas de memoria virtual y paginación de los sistemas operativos. Sobre este, construimos vLLM, un sistema de servicio de LLMs que logra (1) un desperdicio casi nulo en la memoria de KV cache y (2) un uso flexible y compartido de la KV cache dentro y entre solicitudes para reducir aún más el uso de memoria. Nuestras evaluaciones muestran que vLLM mejora el rendimiento de LLMs populares entre 2 y 4 veces con el mismo nivel de latencia en comparación con sistemas de vanguardia como FasterTransformer y Orca. La mejora es más notable con secuencias más largas, modelos más grandes y algoritmos de decodificación más complejos. El código fuente de vLLM está disponible públicamente en https://github.com/vllm-project/vllm.
English
High throughput serving of large language models (LLMs) requires batching
sufficiently many requests at a time. However, existing systems struggle
because the key-value cache (KV cache) memory for each request is huge and
grows and shrinks dynamically. When managed inefficiently, this memory can be
significantly wasted by fragmentation and redundant duplication, limiting the
batch size. To address this problem, we propose PagedAttention, an attention
algorithm inspired by the classical virtual memory and paging techniques in
operating systems. On top of it, we build vLLM, an LLM serving system that
achieves (1) near-zero waste in KV cache memory and (2) flexible sharing of KV
cache within and across requests to further reduce memory usage. Our
evaluations show that vLLM improves the throughput of popular LLMs by
2-4times with the same level of latency compared to the state-of-the-art
systems, such as FasterTransformer and Orca. The improvement is more pronounced
with longer sequences, larger models, and more complex decoding algorithms.
vLLM's source code is publicly available at
https://github.com/vllm-project/vllm