Ada-KV: Optimizing KV Cache Eviction by Adaptive Budget Allocation for Efficient LLM Inference
Feng, Lv, Cao et al.
Large Language Models have excelled in various domains but face efficiency challenges due to the growing Key-Value (KV) cache required for long-sequence inference. Recent efforts aim to reduce KV cache size by evicting vast non-critical cache elements during runtime while preserving generation quality. However, these methods typically allocate compression budgets uniformly across all attention heads, ignoring the unique attention patterns of each head. In this paper, we establish a theoretical loss upper bound between pre- and post-eviction attention output, explaining the optimization target of prior cache eviction methods, while guiding the optimization of adaptive budget allocation. Base on this, we propose {\it Ada-KV}, the first head-wise adaptive budget allocation strategy. It offers plug-and-play benefits, enabling seamless integration with prior cache eviction methods. Extensive evaluations on 13 datasets from Ruler and 16 datasets from LongBench, all conducted under both question-aware and question-agnostic scenarios, demonstrate substantial quality improvements over existing methods. Our code is available at https://github.com/FFY0/AdaKV.
academic
Ada-KV: Оптимизация вытеснения KV-кэша путём адаптивного распределения бюджета для эффективного вывода LLM
Большие языковые модели (LLM) демонстрируют превосходные результаты в различных областях, однако сталкиваются с проблемами эффективности из-за растущих требований к кэшу Key-Value (KV) при выводе на длинных последовательностях. Недавние исследования снижают размер KV-кэша путём вытеснения во время выполнения большого количества некритических элементов кэша, сохраняя при этом качество генерации. Однако эти методы обычно распределяют бюджет сжатия равномерно между всеми головками внимания, игнорируя уникальные паттерны внимания каждой головки. В данной работе устанавливается теоретическая верхняя граница потерь между выходами внимания до и после вытеснения, объясняются цели оптимизации предыдущих методов вытеснения кэша и направляется оптимизация адаптивного распределения бюджета. На основе этого авторы предлагают Ada-KV — первую стратегию адаптивного распределения бюджета на уровне головки. Метод обладает преимуществом plug-and-play, позволяя беспрепятственно интегрироваться с существующими методами вытеснения кэша.
По мере увеличения длины последовательности, обрабатываемой большими языковыми моделями (например, GPT поддерживает 128K, Claude3 поддерживает 200K, Gemini-Pro-1.5 поддерживает 2M токенов), требования к памяти для KV-кэша растут экспоненциально. Для LLM с 8B параметров обработка одной последовательности из 2M токенов может потребовать до 256GB кэша, что серьёзно влияет на эффективность памяти GPU и время выполнения вычислений.
Существующие методы вытеснения кэша подразделяются на две основные категории:
Методы вытеснения скользящего окна: просто сохраняют начальные и недавние элементы кэша, но значительно снижают качество генерации
Методы Top-k вытеснения: выбирают критические элементы кэша на основе весов внимания, но распределяют бюджет равномерно между всеми головками внимания
Ключевая проблема заключается в том, что существующие методы игнорируют уникальные характеристики различных головок внимания: некоторые головки имеют разреженные сконцентрированные паттерны внимания, тогда как другие головки имеют более рассеянное распределение внимания.
Анализируя модель Llama-3.1-8B-Instruct, авторы обнаружили, что большинство головок внимания сохраняют почти все веса внимания, используя лишь небольшую долю кэша (например, top 5%), тогда как рассеянные головки требуют большей доли кэша. Этот неравномерный паттерн концентрации внимания обеспечивает теоретическую основу для адаптивного распределения бюджета.
Стратегия адаптивного распределения бюджета: предложена первая стратегия адаптивного распределения бюджета на уровне головки Ada-KV, которая динамически регулирует распределение бюджета в соответствии с уникальными паттернами внимания каждой головки внимания
Установление теоретической базы: создана теоретическая база для вытеснения кэша, определены потери при вытеснении и выведена их верхняя граница, объясняются цели оптимизации существующих методов и направляется разработка Ada-KV
Совместимость plug-and-play: Ada-KV обладает характеристикой plug-and-play, позволяя беспрепятственно интегрироваться в существующие методы вытеснения кэша, и сохраняет вычислительную эффективность благодаря эффективной реализации CUDA-ядра
Комплексная экспериментальная проверка: проведена комплексная оценка на 29 наборах данных из Ruler и LongBench, демонстрирующая значительные улучшения как в сценариях с учётом вопроса, так и без учёта вопроса
Для многоголовочного слоя самовнимания выбрать элементы KV-кэша, которые следует сохранить в условиях ограничения бюджета, минимизируя потери между выходом внимания после вытеснения и исходным выходом.
Входные данные: общий бюджет B, веса внимания каждой головки {A_i}
Выходные данные: распределённый бюджет {B_i^*}
1. Объединить веса внимания всех головок: A = Cat({A_i})
2. Выбрать top B весов из A: Top-k(A, k=B)
3. Подсчитать количество выбранных весов для каждой головки: {f_i}
4. Установить распределённый бюджет: {B_i^* = f_i}
Эталон Ruler: 13 задач на длинных последовательностях, в основном варианты тестов Needle-in-a-Haystack, оценка на длине 16K
Эталон LongBench: 16 наборов данных, охватывающих QA на одном документе, QA на нескольких документах, суммаризацию, обучение с несколькими примерами, синтетические задачи и генерацию кода
В зависимости от типа задачи используются соответствующие метрики: F1-оценка (задачи QA), Rouge-L (суммаризация), точность (классификация), редакционное сходство (задачи кодирования)
Ada-KV впервые предложила стратегию адаптивного распределения бюджета на уровне головки, значительно улучшив производительность существующих методов вытеснения кэша
Теоретический анализ устанавливает строгую базу для вытеснения кэша, направляя разработку алгоритма
Сценарий сжатия без учёта вопроса выявляет ограничения существующих методов, которым следует уделить больше внимания
Статья цитирует 64 связанные работы, включая в основном:
Фундаментальные работы по большим языковым моделям (GPT-4, Claude, Gemini и др.)
Методы оптимизации KV-кэша (H2O, SnapKV, Pyramid и др.)
Оптимизацию механизма внимания (FlashAttention, разреженное внимание и др.)
Эталоны обработки длинных последовательностей (Ruler, LongBench и др.)
Общая оценка: Это высококачественная исследовательская статья, достигшая хорошего баланса между теоретическим вкладом и практической ценностью. Метод Ada-KV прост и эффективен, теоретический анализ строг, экспериментальная проверка полна. Статья не только решает важные ограничения существующих методов, но и предоставляет ценную базу и направления для будущих исследований.