CompressKV: Semantic Retrieval Heads Know What Tokens are Not Important Before Generation

2508.02401v1 cs.CL, cs.AI 2025-08-09
Авторы:

Xiaolin Lin, Jingcun Wang, Olga Kondrateva, Yiyu Shi, Bing Li, Grace Li Zhang

Резюме на русском

**Резюме** Современные большие языковые модели (LLMs) сверточных архитектур способны обрабатывать длинные контексты, однако впоследствии сталкиваются с проблемой эффективности памяти из-за растущего размера кэша ключ-значение (KV). Большинство методов сжатия KV-кэша основываются на групповом запросе (GQA) и используют все аттенционные головы для определения важных токенов. Это приводит к неоптимальным выборам, так как не все головы имеют одинаковый вклад в выделение смысла. Предлагаемый подход CompressKV расширяет эту идею, идентифицируя головы каждого слоя, которые особенно эффективны в поиске ключевых токенов и учете их семантического окружения. Эти головы используются для определения важных токенов и сохранения соответствующих им пар KV-кэша. Также вводится адаптивная стратегия распределения KV-кэша по каждому слою. Эксперименты показали, что CompressKV превосходит современные методы по индикаторам потребления памяти и производительности на LongBench и Needle-in-a-Haystack. Результаты доступны в открытом доступе по адресу: https://github.com/TUDa-HWAI/CompressKV.git.

Abstract

Recent advances in large language models (LLMs) have significantly boosted long-context processing. However, the increasing key-value (KV) cache size poses critical challenges to memory and execution efficiency. Most KV cache compression methods rely on heuristic token eviction using all attention heads in Grouped Query Attention (GQA)-based LLMs. This method ignores the different functionalities of attention heads, leading to the eviction of critical tokens and thus degrades the performance of LLMs. To address the issue above, instead of using all the attention heads in GQA-based LLMs to determine important tokens as in the previous work, we first identify the attention heads in each layer that are not only capable of retrieving the initial and final tokens of a prompt, but also capable of retrieving important tokens within the text and attending to their surrounding semantic context. Afterwards, we exploit such heads to determine the important tokens and retain their corresponding KV cache pairs. Furthermore, we analyze the cache eviction error of each layer individually and introduce a layer-adaptive KV cache allocation strategy. Experimental results demonstrate the proposed CompressKV consistently outperforms state-of-the-art approaches under various memory budgets on LongBench and Needle-in-a-Haystack benchmarks. Our code is publicly available at: https://github.com/TUDa-HWAI/CompressKV.git.

Ссылки и действия