MInference 1.0: Ускорение предварительного заполнения для LLM с длинным контекстом с помощью динамического разреженного внимания.
MInference 1.0: Accelerating Pre-filling for Long-Context LLMs via Dynamic Sparse Attention
July 2, 2024
Авторы: Huiqiang Jiang, Yucheng Li, Chengruidong Zhang, Qianhui Wu, Xufang Luo, Surin Ahn, Zhenhua Han, Amir H. Abdi, Dongsheng Li, Chin-Yew Lin, Yuqing Yang, Lili Qiu
cs.AI
Аннотация
Вычислительные вызовы вывода больших языковых моделей (LLM) остаются значительным барьером для их широкого применения, особенно по мере увеличения длины запросов. Из-за квадратичной сложности вычислений внимания 8B LLM требуется 30 минут для обработки запроса из 1 миллиона токенов (т. е. этап предварительного заполнения) на одном GPU A100. Существующие методы ускорения предварительного заполнения часто не способны сохранить приемлемую точность или эффективность при применении к LLM с длинным контекстом. Для решения этой проблемы мы представляем MInference (Milliontokens Inference) - разреженный метод вычислений, разработанный для ускорения обработки длинных последовательностей. Конкретно, мы выделяем три уникальных шаблона в матрицах внимания с длинным контекстом - A-образный, Вертикальная черта и Блочно-разреженный, которые можно использовать для эффективных разреженных вычислений на GPU. Мы определяем оптимальный шаблон для каждой головы внимания оффлайн и динамически создаем разреженные индексы на основе назначенного шаблона во время вывода. С помощью шаблона и разреженных индексов мы выполняем эффективные вычисления разреженного внимания с помощью наших оптимизированных ядер GPU для значительного снижения задержки на этапе предварительного заполнения LLM с длинным контекстом. Наш метод может быть применен к существующим LLM напрямую без каких-либо изменений в настройках предварительного обучения или дополнительной донастройки. Проведя оценку на широком спектре задач, включая InfiniteBench, RULER, PG-19 и Needle In A Haystack, а также модели, включая LLaMA-3-1M, GLM4-1M, Yi-200K, Phi-3-128K и Qwen2-128K, мы демонстрируем, что MInference эффективно сокращает задержку вывода до 10 раз на этапе предварительного заполнения на A100, сохраняя точность. Наш код доступен по адресу https://aka.ms/MInference.
English
The computational challenges of Large Language Model (LLM) inference remain a
significant barrier to their widespread deployment, especially as prompt
lengths continue to increase. Due to the quadratic complexity of the attention
computation, it takes 30 minutes for an 8B LLM to process a prompt of 1M tokens
(i.e., the pre-filling stage) on a single A100 GPU. Existing methods for
speeding up prefilling often fail to maintain acceptable accuracy or efficiency
when applied to long-context LLMs. To address this gap, we introduce MInference
(Milliontokens Inference), a sparse calculation method designed to accelerate
pre-filling of long-sequence processing. Specifically, we identify three unique
patterns in long-context attention matrices-the A-shape, Vertical-Slash, and
Block-Sparsethat can be leveraged for efficient sparse computation on GPUs. We
determine the optimal pattern for each attention head offline and dynamically
build sparse indices based on the assigned pattern during inference. With the
pattern and sparse indices, we perform efficient sparse attention calculations
via our optimized GPU kernels to significantly reduce the latency in the
pre-filling stage of long-context LLMs. Our proposed technique can be directly
applied to existing LLMs without any modifications to the pre-training setup or
additional fine-tuning. By evaluating on a wide range of downstream tasks,
including InfiniteBench, RULER, PG-19, and Needle In A Haystack, and models
including LLaMA-3-1M, GLM4-1M, Yi-200K, Phi-3-128K, and Qwen2-128K, we
demonstrate that MInference effectively reduces inference latency by up to 10x
for pre-filling on an A100, while maintaining accuracy. Our code is available
at https://aka.ms/MInference.Summary
AI-Generated Summary