Ada-KV: Optimizing KV Cache Eviction by Adaptive Budget Allocation for Efficient LLM Inference
Yuan Feng, Junlin Lv, Yukun Cao, Xike Xie, S. Kevin Zhou
TL;DR
Ada-KV identifies uniform per-head budgets in KV-cache eviction as a bottleneck for long-sequence LLM inference. It provides a theoretical bound on eviction loss and introduces a head-wise adaptive budget allocator that minimizes this bound, enabling plug-and-play enhancements to existing Top-k eviction methods like SnapKV and Pyramid. Empirically, Ada-KV consistently improves generation quality across 29 datasets in Ruler and LongBench under both question-aware and question-agnostic settings, while maintaining efficient computation via optimized kernels and FlashAttention integration. The approach demonstrates strong practical impact for scalable long-context inference and offers broad applicability to related cache-optimization strategies.
Abstract
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.
