跳到主要内容
返回时间线
arXiv来源发表:

VerKV把KV缓存压到GPU只留3.13%:先估注意力误差,再按需从CPU取回

核心概要

长上下文推理时KV缓存随序列长度线性增长,常超出GPU显存。VerKV把完整缓存留在CPU内存,GPU上只保留按重要性分数做泊松抽样得到的少量token,每个解码步先用证书估计注意力误差,超出容差才从CPU取回额外条目。在Qwen3-4B、Qwen3.5-9B和Ministral-3-8B三个模型、RULER与LOFT两个基准的32K和128K上下文上,GPU常驻缓存为3.13%时三者分别保留94.6%、84.6%和79.6%的全量质量,而Fast KVzip和KVzip在同样3.13%下只剩1.9%至11.9%。

AI-generated editorial illustration: Verify Before You Fetch: Reliable KV Cache Compression for LLM Inference

深度剖析

VerKV让长上下文推理在GPU上只保留极小一部分KV缓存,同时把注意力输出与全量计算之间的差距控制在可估计的范围内,而不是像查询无关压缩那样在压缩率升高后失去质量保证。 此前的查询无关KV压缩在预填充阶段按重要性分数保留固定数量的token,对未来查询不提供注意力近似误差的保证;在相同GPU显存下,Fast KVzip和KVzip在3.13%常驻缓存时只保留1.9%至11.9%的全量质量。 在三个模型和两个长上下文基准的32K与128K设置上,GPU常驻缓存为12.5%时VerKV在Qwen3-4B、Qwen3.5-9B和Ministral-3-8B上分别保留100.1%、90.6%和98.2%的全量质量,6.25%时为95.0%、85.2%和85.2%,3.13%时为94.6%、84.6%和79.6%。

每个解码步先判断只用GPU上的样本能否满足误差容差,能就完全不访问CPU,不能才取回最少的额外KV条目。 全量卸载在每个解码步都把整份缓存从主机搬到GPU,而纯压缩方法从不取回,两者分别以延迟和精度为代价。 KVFetch对约20%至25%的查询完全不访问CPU缓存;在Qwen3-4B上每次前向只读取约4.8%的KV缓存,三个模型整体为4.7%至19.4%;放宽容差后,不访问CPU的查询比例可升到65%至67%。

GPU上的样本由泊松抽样产生,抽样概率来自现有压缩方法给出的重要性分数,因此可以用Bernstein不等式同时估计偏差、方差和单token影响,得到相对误差上界。 确定性top-k选择只能给出一个点估计,无法据此判断近似误差有多大,也就无法决定是否需要补充条目。 在使用精确注意力权重时,经验失败率始终低于目标失败概率,逐决策误差在多数决策中落在容差内;在vLLM实现中,VerKV的解码吞吐达到全量卸载稠密注意力的水平,同时GPU只常驻3.13%的KV缓存。

启示与展望

评估覆盖Qwen3-4B、Qwen3.5-9B和Ministral-3-8B三个指令微调模型,RULER与LOFT两个基准,32K和128K两种上下文长度,以及12.5%、6.25%和3.13%三档GPU常驻缓存;速度测量在单张NVIDIA H100上以vLLM实现、单请求方式完成。

误差证书的推导假设查询固定、草图精确且样本为泊松抽样;2-bit草图在严格容差下会超出目标失败概率,因为证书没有计入草图误差。上下文变长时,使用近似草图的质量会下降,而精确草图仍能恢复稠密质量。