VarRate: 无训练的可变速率KV缓存压缩用于长上下文大语言模型
摘要
介绍VarRate,一种无训练的KV缓存压缩方法,根据查询显著性为每个令牌分配可变低秩预算,避免了不可逆的令牌驱逐,并且在LongBench上以匹配的内存预算优于均匀秩方法。
arXiv:2607.15498v1 公告类型:新
摘要:键值(KV)缓存是长上下文大语言模型(LLM)推理中的主要内存瓶颈。两种主流无训练方法在结构上均存在局限:令牌选择方法(SnapKV、Ada-KV)通过观察窗口对重要性进行评分并驱逐低分令牌,但驱逐是不可逆的——因此当重要性信号在查询无关复用下退化时,准确率会下降11-15个百分点;均匀低秩编码保留了所有令牌但均匀分配秩,浪费了预算。我们观察到这两种失败的共同解决方法:应该分配秩,而不是驱逐。我们提出了VarRate,一种无训练的KV编解码器,根据查询显著性为每个令牌分配可变低秩预算,使每个令牌保持非零秩。类似的自适应秩编解码器只能通过训练实现这种分配;VarRate无需训练。由于没有令牌被丢弃,它在查询感知选择失效时仅下降3.5-5.5个百分点。在LongBench(16个任务)上匹配20%预算时,VarRate在Llama-3.1-8B和Qwen2.5-7B上均保持在未压缩模型的0.8个百分点以内。平均而言,它是最强的匹配内存压缩器。它在两个模型上均显著优于均匀秩消融版本。与专门为查询无关复用构建的KVzip相比,它在四种设置中的三种上准确率相当,整体差距在1个百分点以内,而预填充开销仅为KVzip的八分之一。
查看缓存全文
缓存时间: 2026/07/20 09:33
# VarRate:面向长上下文大语言模型的无训练可变速率KV缓存压缩技术
来源:https://arxiv.org/html/2607.15498
###### 摘要
键值(KV)缓存是长上下文大语言模型(LLM)推理过程中主要的内存瓶颈。当前两种主流的无训练方法族均存在结构性缺陷:令牌*选择*方法(SnapKV、Ada-KV)从观察窗口中评分重要性并*驱逐*低分令牌,但驱逐是不可逆的——当重要性信号在查询无关复用场景下退化时,准确率会骤降11–15个点;而均匀*低秩*编码保留所有令牌,但分配相同的秩,浪费了预算。我们观察到这两种失败有共同的解决方案:秩应当被*分配*,而非驱逐。我们提出VarRate,一种无训练KV编解码器,根据令牌的查询显著性为每个令牌分配可变低秩预算,保留所有令牌的非零秩。采用类似自适应秩的编解码器只能通过训练实现这种分配;VarRate无需训练。由于没有令牌被丢弃,在查询感知选择崩溃的场景下,VarRate的准确率仅下降3.5–5.5个点。在LongBench(16个任务)的20%预算匹配下,VarRate在Llama-3.1-8B和Qwen2.5-7B上均保持在未压缩模型0.8个点以内。从两个模型的平均来看,它是匹配内存的最强压缩器。它在两个模型上都显著优于均匀秩消融实验。针对专为查询无关复用设计的KVzip方法,在四个设置中的三个任务上准确率持平,整体差距在一个点内,而预填充开销仅为KVzip的八分之一。参见图注
图1:VarRate根据显著性分配秩——它既不驱逐令牌也不均匀分配秩。每个条形代表一个令牌,高度为其分配的秩,在下方标注。(a) 令牌选择驱逐低分令牌;被丢弃的KV永久消失,错误的决策无法挽回。(b) 均匀低秩编码保留所有令牌但分配相同秩——对简单令牌是浪费,对关键令牌则是饥饿。(c) 未压缩缓存:每个令牌满秩,准确率目标。(d) VarRate根据显著性变化秩,且每个令牌维持非零底限(rmin=16),在(a)和(b)的预算下达到目标。图(a)、(b)、(d)使用相同的KV预算;(c)为未压缩。秩为示意。
## 1 引言
大语言模型(LLM)日益处理长上下文——多文档问答、仓库级代码、书籍长度的摘要(Bai et al. 2024)。使自回归推理在这种输入上可行的是键值(KV)缓存,它存储了之前令牌的注意力键和值(Vaswani et al. 2017),从而无需在每一步重新计算。然而,缓存随上下文长度线性增长,在长上下文下,解码时主导显存的是缓存而非模型权重(Xiao et al. 2024)。因此,在保持准确率的同时压缩KV缓存已成为高效LLM服务的核心问题。
两种无训练方法族占据主导。
*令牌选择*方法保持固定大小的缓存并*驱逐*其余部分(图1a)。其中最强大的——SnapKV(Li et al. 2024)及其启发的预算细化后续方法(Cai et al. 2025;Feng et al. 2025)——从近期观察窗口对每个令牌评分,该信号本质上是当前查询;早期变体则基于位置或累积注意力选择(Xiao et al. 2024;Zhang et al. 2023)。查询感知选择在压缩时已知查询的条件下表现出色。但若将一份文档压缩后服务多个查询——前缀缓存、多轮对话——信号不再描述将要问的问题;由于驱逐不可逆,每个被误判的令牌都会永久消失,准确率崩溃。
*均匀低秩编码*(Chang et al. 2025)采取相反立场:保留所有令牌但将每个投影到相同的降秩子空间(图1b)。它不丢弃任何令牌,但对平凡令牌和关键令牌分配相同的秩预算——在不该用的地方浪费,在该用的地方饥饿。量化(Liu et al. 2024;Zandieh, Daliri, and Han 2025)作为第三条轴,降低数值精度,与前两者正交。两者都不占据的中间地带是自然的:*保留所有令牌,但给每个令牌应有的秩*。确实能逐令牌变化秩的方法要么通过训练门控(Lu et al. 2026),要么按固定位置分割(Zhu et al. 2025)——从未利用模型自身的注意力。
缓存仅在两个条件同时成立时才在复用下失败:重要性信号已过时,且方法对低分数的响应是破坏性的。查询感知选择两者皆具。一种解决方法是修复信号——KVzip(Kim et al. 2025)通过缓存重构上下文的好坏来评分令牌,这是一个查询无关的标准,因此鲁棒——但它需要多次使用完整模型重新编码整个上下文,成本是预填充的倍数。我们采取另一种解决方法:移除第二个条件——*秩应当被分配,而非驱逐*。渐进的、可逆的秩预算使每个令牌保持一定保真度,因此过时的信号只是次优地使用预算——误判的令牌被粗略化,从不丢弃——而信号可以保持廉价,因为错误不再是致命的。
我们将此实现为VarRate,一种无训练KV编解码器,根据令牌的查询显著性通过水填充共享低秩基来分配*可变*低秩预算,使显著令牌在高秩,其余在非零底限之上(图1d)。据我们所知,VarRate是首个从查询显著性信号设置逐令牌秩的*无训练*方法——一个渐进的预算,而非固定位置分割。这种设计恰好补偿了查询感知选择最弱的地方。在LongBench上跨越两个模型家族,在匹配的20% KV预算下,VarRate保持在未压缩模型一个点以内,并在两个模型上显著优于其自身均匀秩消融实验。在查询无关复用下,查询感知选择损失11–15个点,而VarRate仅损失3.5–5.5,并严格优于已发表的低秩编解码器Palu在每个预算下。在准确率上,VarRate与KVzip相差在一个点以内(后者仍略优),压缩成本仅为KVzip的约八分之一。我们未声称击败所有基线——与内存匹配的量化相比,VarRate持平——但它提供了自适应秩压缩的鲁棒性,且无需通常的训练成本。
贡献。
- 我们展示了两种主流无训练方法族因互补原因失败——查询感知选择因为过时信号与不可逆响应相遇,均匀编码因为分配秩时不考虑显著性——而通过*分配*秩按显著性可同时解决两者(图1)。
- 我们提出VarRate,首个无训练可变速率低秩KV编解码器:通过水填充共享基设置逐令牌秩,依据查询显著性,底限设置确保无令牌被丢弃,无需训练、微调或架构修改。
- 在跨两个模型家族和16个LongBench任务上,VarRate在20%预算下与未压缩模型相差一个点以内,显著优于均匀秩编码,严格优于Palu,并且——与查询感知选择不同——在查询无关复用下保持鲁棒,与专为此设计的KVzip相差一个点以内,压缩成本仅为KVzip的约8倍更低。
## 2 相关工作
令牌选择(驱逐)。
主流的无训练方法通过评分令牌并丢弃其余来保持固定大小的缓存。StreamingLLM(Xiao et al. 2024)保留注意力库和近期窗口;H2O(Zhang et al. 2023)根据累积注意力驱逐;SnapKV(Li et al. 2024)从近期观察窗口评分重要性;PyramidKV(Cai et al. 2025)和Ada-KV(Feng et al. 2025)细化层和头之间的驱逐*预算*;SlimInfer(Long et al. 2026)在前向过程中动态修剪令牌。这些方法在长上下文任务上牺牲的准确率已被系统化基准测试(Yuan et al. 2024)。在查询感知成员中——它们中最强的——两个弱点叠加:重要性信号本质上是当前查询,因此一旦缓存跨查询复用就会过时;并且驱逐是*不可逆*的,因此被过时信号误判的令牌无法恢复。VarRate重用SnapKV的显著性信号,但用于*分配*秩而非驱逐——误判的令牌被粗略化到低秩,从不销毁。
低秩KV压缩。
第二种方法族减少每个令牌键和值的*维度*而非令牌数量。Palu(Chang et al. 2025)和Eigen Attention(Saxena et al. 2024)将缓存投影到固定低秩子空间:它们不丢弃任何令牌,但给每个令牌相同的秩。*自适应*秩的编解码器主要在层和头之间进行——MatryoshkaKV(Lin et al. 2025)通过训练调整,而LoRC(Zhang et al. 2024a)后验地逐层设置,无需训练。两种方法*逐令牌*变化秩:DynaKV(Lu et al. 2026)通过微调学习门控网络,而OjaKV(Zhu et al. 2025)是无训练的但按位置分配——满秩锚点加上其他令牌的一个低秩,基于在线Oja自适应基。VarRate填补了剩余单元格:据我们所知,它是首个*无训练*方法,通过水填充共享基,从查询显著性信号设置*渐进的*逐令牌秩,并保持每个令牌在非零底限之上。
量化。
正交的轴是降低数值精度而非秩或令牌数量。KIVI(Liu et al. 2024)使用逐通道2位键和逐令牌值,而KVQuant(Hooper et al. 2024)和QJL(Zandieh, Daliri, and Han 2025)进一步降低位宽并减少开销。由于量化降低精度而非秩,它与VarRate互补,两者可以组合,我们在实验中确认了这一点。
查询无关复用与合并。
当缓存被一次压缩后跨多个查询复用时,依赖查询的评分必然失败。两种方法通过使*信号*查询无关来应对:KVzip(Kim et al. 2025)通过缓存重构上下文的好坏评分令牌;Expected Attention(Devoto, Jeblick, and Jégou 2025)以封闭形式估计未来查询的注意力。KVzip确实鲁棒——而且它*驱逐*,这表明驱逐本身并非罪魁祸首:罪魁祸首是过时信号与不可逆响应结合。其代价是使用完整模型重新编码上下文,成本是预填充的倍数;Expected Attention便宜得多,但在我们评估的该机制下表现不佳。VarRate移除不可逆响应而非修复信号,与KVzip的准确率相差一个点以内,成本约为KVzip的八分之一。一个相关方向*合并*而非丢弃被驱逐的条目,如CaM(Zhang et al. 2024b)和KeepKV(Tian et al. 2026),避免硬性损失但引入注意力分布偏移,VarRate基于重构的编码避免了这一问题。
## 3 VarRate
我们提出VarRate,一种无训练编解码器,通过给每个令牌分配*可变*低秩预算来压缩KV缓存,预算由查询显著性在固定内存预算下分配。编解码器在每层独立应用,每层有其校准的基;我们描述一层并省略层索引。图2给出流程,算法1完整表述。
图2:VarRate,一层。(1) 键被反旋转到预RoPE,并与值合并成一个逐令牌向量zt,因此单个基服务所有头。(2) 跨步锚点与近期窗口精确存储;其他每个令牌编码为其c个最近锚点均值的残差et。(3) SnapKV显著性ŝt通过水填充转化为逐令牌秩rt,在平坦编解码器的预算下。每个条形代表分配:灰色底限rmin每个令牌保留,加上显著性在上面购买的。由于∑_{t∈C} rt = B,条形面积在均匀秩线上方等于下方——VarRate花费与平坦编解码器完全相同的预算,仅重新分配。(4) 对共享基的单一投影在每个令牌处截断为前rt个系数;每列至少保留rmin,因此没有令牌被丢弃。重构的键最后再旋转到后RoPE。秩为示意。
### 3.1 预备知识与编解码器设置
注意力与KV缓存。
每层有H个查询头以及G≤H个键值头(组查询注意力,GQA),宽度为dh。在头h中,查询q注意已缓存的令牌的键和值{(kt^h, vt^h)},返回∑t α_{q,t}^h vt^h,注意力权重α_{q,t}^h = softmax_t(⟨q, kt^h⟩/√dh)。缓存这些键和值避免了每一步重新计算,但缓存随提示长度L线性增长,在长上下文下占据显存。VarRate压缩它;我们首先固定其表示。
为什么分配秩。
令牌选择和均匀低秩编码是单一选择的两极——每个令牌保留多少。选择保留少数令牌完整并丢弃其余;均匀编码保留所有令牌在一个降秩上。两者都不将努力匹配重要性。令牌的值进入注意力输出时加权方式与它接收的注意力权重相同,而其键的误差主要通过相同权重扰动输出,因此高度注意的令牌中的编码错误对输出的扭曲远大于扩散令牌中的相同错误。VarRate利用这种不对称性:它将秩预算花费在注意力集中的地方,保持查询显著性高。相似文章
CompressKV:语义检索引导的KV缓存压缩方法,用于资源高效的长上下文大语言模型推理
CompressKV针对基于GQA的大语言模型,提出了一种语义检索引导的KV缓存压缩方法,通过识别语义检索头来保留关键令牌。在LongBench任务中,仅使用3%的KV缓存即可实现超过97%的全缓存性能。
KV Packet: 免重计算的上下文无关KV缓存用于大语言模型
KV Packet 提出了一种免重计算的缓存复用框架,用于大语言模型。该框架使用可训练的软标记适配器来弥合上下文不连续性,消除了开销,同时在 Llama-3.1 和 Qwen2.5 上的性能与完全重计算基线相当。
KVarN:方差归一化的KV缓存量化减轻推理任务中的错误累积
KVarN是一个免校准的KV缓存量化器,它使用哈达玛旋转和双缩放方差归一化来减少大型语言模型自回归解码过程中的错误累积,在推理基准上实现了最先进的2位精度。
基于熵与低秩重构的高保真KV缓存摘要
提出一种SRC流水线,通过基于熵的选择和低秩重构对KV缓存进行摘要,而非直接裁剪token,在百万token的LLM上下文中降低显存占用,同时避免灾难性注意力错误。
LKV:通过端到端学习多头预算与 Token 选择优化大模型 KV 缓存淘汰机制
本文提出了 LKV,这是一种通过端到端学习基于 Attention Head 的预算分配与 Token 选择策略来优化大语言模型 KV 缓存淘汰的方法,在实现高压缩率的同时取得了最先进的性能表现。