LServe: Эффективное обслуживание длинных последовательностей в LLM с использованием унифицированного разреженного внимания
LServe: Efficient Long-sequence LLM Serving with Unified Sparse Attention
February 20, 2025
Авторы: Shang Yang, Junxian Guo, Haotian Tang, Qinghao Hu, Guangxuan Xiao, Jiaming Tang, Yujun Lin, Zhijian Liu, Yao Lu, Song Han
cs.AI
Аннотация
Крупные языковые модели (LLM) продемонстрировали значительный потенциал в обработке длинных последовательностей, однако эффективное обслуживание таких моделей с длинным контекстом остается сложной задачей из-за квадратичной вычислительной сложности механизма внимания на этапе предварительного заполнения и большого объема памяти, занимаемого кэшем ключей и значений (KV) на этапе декодирования. Для решения этих проблем мы представляем LServe — эффективную систему, которая ускоряет обслуживание LLM с длинными последовательностями за счет гибридного разреженного внимания. Этот метод объединяет различные аппаратно-ориентированные структурированные шаблоны разреженности для внимания на этапах предварительного заполнения и декодирования в единую структуру, где вычисления для менее важных токенов пропускаются блоками. LServe демонстрирует совместимость статической и динамической разреженности в механизме внимания LLM с длинным контекстом. Такая конструкция позволяет достичь мультипликативного ускорения за счет комбинации этих оптимизаций. В частности, мы преобразуем половину голов внимания в почти бесплатные потоковые головы на этапах предварительного заполнения и декодирования. Кроме того, мы обнаружили, что для сохранения возможностей работы с длинным контекстом требуется лишь постоянное количество страниц KV, независимо от длины контекста. Затем мы разрабатываем иерархическую политику выбора страниц KV, которая динамически обрезает страницы на основе запросо-центрированного сходства. В среднем LServe ускоряет предварительное заполнение LLM до 2.9 раз и декодирование в 1.3–2.1 раза по сравнению с vLLM, сохраняя точность работы с длинным контекстом. Код доступен по адресу: https://github.com/mit-han-lab/omniserve.
English
Large language models (LLMs) have shown remarkable potential in processing
long sequences, yet efficiently serving these long-context models remains
challenging due to the quadratic computational complexity of attention in the
prefilling stage and the large memory footprint of the KV cache in the decoding
stage. To address these issues, we introduce LServe, an efficient system that
accelerates long-sequence LLM serving via hybrid sparse attention. This method
unifies different hardware-friendly, structured sparsity patterns for both
prefilling and decoding attention into a single framework, where computations
on less important tokens are skipped block-wise. LServe demonstrates the
compatibility of static and dynamic sparsity in long-context LLM attention.
This design enables multiplicative speedups by combining these optimizations.
Specifically, we convert half of the attention heads to nearly free streaming
heads in both the prefilling and decoding stages. Additionally, we find that
only a constant number of KV pages is required to preserve long-context
capabilities, irrespective of context length. We then design a hierarchical KV
page selection policy that dynamically prunes KV pages based on query-centric
similarity. On average, LServe accelerates LLM prefilling by up to 2.9x and
decoding by 1.3-2.1x over vLLM, maintaining long-context accuracy. Code is
released at https://github.com/mit-han-lab/omniserve.Summary
AI-Generated Summary