ContrastKV: Robust KV Cache Eviction via Contrastive Signal Fusion for Multi-Query Generalization

发表时间: 2026-07 · ACL 2026

原文: https://aclanthology.org/2026.acl-long.417

速读

一句话结论 本文提出了一种名为 ContrastKV 的查询无关 KV Cache 驱逐算法,通过融合语义和结构对比信号,在仅保留 20% 缓存预算的情况下维持了 92% 的准确率,并将解码延迟降低约 50%。

要解决什么问题 在知识库问答(KBQA)等长上下文应用场景中,大语言模型需要摄入超长的背景知识(如代码库、文档集合或历史对话),这会产生庞大的 KV Cache 显存开销。由于知识库的长度通常比后续的查询和回答长几个数量级,系统必须在多个不同的下游查询中重复使用这些缓存以降低成本。现有的查询感知(Query-aware)驱逐方法在决定保留哪些缓存时严重依赖当前的特定查询,因此完全无法在多查询场景下泛化。为了解决这个问题,业界提出了查询无关(Query-agnostic)的驱逐方法,其中当前最优的基线是 KVzip。然而,这类方法存在一个致命的机制卡点:它们仅依赖单一的代理查询(例如知识库重构提示词)来评估 Token 的重要性。这种单一视角的近似根本无法覆盖下游真实查询的多样性,导致在激烈的压缩率下决策边界变得非常脆弱。经验研究表明,当 KV Cache 的保留率降至 30% 以下时,KVzip 的性能会发生断崖式下跌,保留下来的缓存无法稳定支持多样的下游任务。而理论分析指出,KV Cache 本可以被压缩到 5% 而不损失性能。从 30% 到 5% 之间的巨大落差证明,单一代理查询无法逼近理想的全局最优解,领域内亟需一种能在极高压缩率下依然保持泛化能力的鲁棒驱逐标准。

怎么做的 ContrastKV 的核心思路是引入集成学习中的多样性原理,通过显式对比“语义一致性”和“结构鲁棒性”两种信号,找出在不同查询下都具备高价值的 KV 节点,从而彻底绕开单一代理查询的盲区。该方法的设计由三个关键部件构成。首先是对比信号生成部件,它负责构建一对互补的信号:正向信号是一个与原知识库等长的重构提示词,用于捕获语义上显著的 Token 分布;反向信号则是一个由词表中随机均匀采样生成的最大熵噪声序列(长度通常小于 128 个 Token),这个纯粹的结构性基线旨在激发那些无论语义如何都会吸引高注意力的“注意力沉淀”(Attention Sink)节点。其次是并行重要性打分部件,为了不增加处理两个长序列的额外延迟,模型在预填充阶段并行计算这两个信号的注意力矩阵,并在组和 Token 维度上取最大值,从而独立得出正向分数向量和反向分数向量。最后是核心的双层对比融合机制,负责将两个维度的分数转化为最终的驱逐决策。在注意力头级别(Head-level),算法通过分位数阈值 $\beta$ 进行动态门控:如果一个位置在正反信号中都处于前 $1-\beta$ 的头部,则直接赋予最高分 1.0;如果都处于后 $\beta$ 的尾部,则赋予最低分 0.0;其余模棱两可的情况则保留原始的正向分数。这一步确保了每个注意力头中既具备语义信息又具备结构稳定性的高潜力 Token 不会被动态预算分配机制误删。在层级别(Layer-level),算法利用归一化后的反向信号分数对未被门控决定的正向分数进行增益补偿,其定义性公式为:

$$ \hat{S}_i = \min(S_i^{pos} + \gamma \cdot \hat{S}_i^{neg}, \max(S_i^{pos})) $$

其中 $\gamma$ 是控制增益强度的超参数。这种设计在不破坏主导语义信号的前提下,温和地提升了那些在结构上表现突出的 Token 的权重。通过这种正反信号的交织融合,ContrastKV 构造出了一个更可靠、更具泛化能力的通用驱逐边界。

效果如何 实验在 Qwen2.5-7B-Instruct-1M、Llama3.1-8B-Instruct 和 Qwen2.5-14B-Instruct-1M 三个主流模型上展开,硬件平台为 RTX 4080 SUPER 和 RTX 4090。测试基准采用了专门针对长文本多查询能力的 SCBench,涵盖多任务、全局信息、语义检索和字符串检索四大类共 11 个数据集。对比基线包括代表查询感知路线的 SnapKV 和 Ada-KV,以及代表查询无关路线的当前 SOTA 方法 KVzip。量化结果显示,在仅保留 20% KV Cache 预算的极端设置下,ContrastKV 依然维持了 92% 的原始准确率,比同等条件下的 KVzip 高出 22%,尤其在最困难的字符串检索任务上优势最为显著。当预算进一步压榨到 10% 时,ContrastKV 仍能保持 74% 的准确率,而所有基线方法此时已基本失效。消融实验证明,注意力头级别的融合贡献了最大的性能增益(提升约 42%),而层级别融合则进一步精细化了决策边界。在效率代价方面,20% 预算下的 ContrastKV 使显存占用呈近线性下降(从 7.8GB 降至 1.5GB),并将长上下文问答的解码延迟降低了约 50%。作者也坦诚了该方法的局限性:如果模型在预填充阶段就已经发生显存溢出,该方法无法提供救场;此外,由于正向信号与知识库等长,导致驱逐算法在预填充阶段的时间复杂度较高,这部分开销必须通过后续多轮查询的复用来摊薄才具备实际的工程收益。基于其高压缩率和可复用性,作者还初步验证了将其部署于云边协同架构的潜力。

A1 主要贡献

大型语言模型(LLMs)在推理过程中面临着显著的内存和延迟开销,这主要是因为KV Cache会随着上下文长度的增加而线性增长。这一问题在知识库问答(KBQA)场景中尤为突出,因为该场景需要支持多个下游查询。现有的查询感知(query-aware)驱逐方法无法在不同查询之间泛化;而现有的查询无关(query-agnostic)方法则依赖于单一的代理查询,导致在高驱逐率下产生脆弱的驱逐决策。

为了解决这一问题,本文提出了ContrastKV,这是一种用于多查询泛化的鲁棒的查询无关KV Cache驱逐算法。ContrastKV引入了一种对比信号融合机制,联合利用互补的语义和结构信号。通过对比语义一致性与结构鲁棒性,该方法构建了一个更可靠的驱逐标准,缓解了单查询代理的盲区问题。该框架集成了高效的信号生成、并行的重要性打分,以及跨Head和跨Layer的多级融合。实验表明,ContrastKV优于最先进的方法,在仅使用20% KV Cache预算的情况下保留了高达92%的准确率,同时将解码延迟降低了约50%,并显著降低了GPU内存使用量。

图1:ContrastKV概览。在prefill阶段之后,ContrastKV分三步进行:(1) 对比信号生成,从原始知识库构建正向信号,从随机字符串构建负向信号;(2) 并行打分,独立计算两种信号基于注意力的重要性分数;(3) 正负融合,通过多级策略结合分数以识别具有强泛化潜力的KV对。
图1:ContrastKV概览。在prefill阶段之后,ContrastKV分三步进行:(1) 对比信号生成,从原始知识库构建正向信号,从随机字符串构建负向信号;(2) 并行打分,独立计算两种信号基于注意力的重要性分数;(3) 正负融合,通过多级策略结合分数以识别具有强泛化潜力的KV对。

A3 背景知识/关键Observation/设计原则

预填充阶段的KV Cache驱逐目标。在LLMs的预填充(prefill)阶段,从长度为$n$的知识库生成的KV Cache可以表示为$\mathrm{KV}_{KB} \in \mathbb{R}^{n \times d}$。由于在此阶段查询是不可用的,查询无关的KV Cache驱逐需要在没有特定任务指导的情况下重建重要的上下文信息。在解码阶段,模型必须处理在预填充期间未知的多样化查询$q \in \mathcal{Q}$。为了减少内存和计算开销,KV Cache驱逐算法旨在仅保留大小为$k \ll n$的子集$\mathrm{KV}_{\mathrm{retained}} \subset \mathrm{KV}_{KB}$,使得:

$$ f_{\mathrm{LM}}(q|\mathrm{KV}_{\mathrm{retained}}) \approx f_{\mathrm{LM}}(q|\mathrm{KV}_{KB}), \quad \forall q \in \mathcal{Q} $$


其中$f_{\mathrm{LM}}$表示模型的生成质量。根本的挑战在于最优子集$\mathrm{KV}_{\mathrm{retained}}^*$依赖于未知的查询分布$\mathcal{Q}$。

现有代理查询方法的盲区。现有的查询无关方法通过识别一个旨在代表$\mathcal{Q}$的单一代理查询$\hat{q}$来近似理想情况。令$\mathcal{K}_{\hat{q}} \subset \mathrm{KV}_{KB}$表示被$\hat{q}$识别为重要的KV Cache子集。目标变为:

$$ \mathcal{K}_{\hat{q}} = \mathrm{Top}_k \left( \mathrm{Importance}(\mathrm{KV}_{KB}, \hat{q}) \right) $$


其中$\mathrm{Importance}(\cdot)$计算评分函数,$\mathrm{Top}_k$选择前$k$个最高分。然而,不同的代理查询(例如聊天模板、任务描述或重建提示)捕获了重要性的不同方面,导致:

$$ \exists q \in \mathcal{Q} : \mathcal{K}_{\hat{q}} \not\perp \mathcal{K}_q $$
其中$\mathcal{K}_q$表示对于查询$q$真正重要的KV对。产生这个盲区问题是因为单一查询$\hat{q}$无法充分近似整个$\mathcal{Q}$中多样化的信息需求。

高压缩率下的性能退化。当前最先进的查询无关方法如KVzip【KVZip: Query-Agnostic KV Cache Compression with Context Reconstruction, 2025, NeurIPS】通过采用知识库重建作为通用查询,在多任务场景中有效压缩了KV Cache。然而经验研究表明,当压缩变得激进时,性能会显著下降。具体而言,当KV Cache保留率降至30%以下时,KVzip无法保持泛化稳定性(如图2所示)。保留的缓存$\mathrm{KV}_{\mathrm{retained}}$在支持多样化下游查询的能力上表现出巨大的方差。H2O【H2O: Heavy-Hitter Oracle for Efficient Generative Inference of Large Language Models, 2023, NeurIPS】的理论分析表明,KV Cache理论上可以压缩至原始大小的5%同时保持性能。理论潜力(5%)与实际达成(30%)之间的巨大差异表明,在设计更鲁棒的驱逐算法方面存在很大改进空间。

图2:KVzip的整体性能。
图2:KVzip的整体性能。

理想通用查询与对比信号引入。从集合论的角度来看,理想的通用查询可以概念化为覆盖所有可能的特定查询重要性集合的并集:

$$ \mathcal{K}_{\mathrm{ideal}} = \bigcup_{q \in \mathcal{Q}} \mathcal{K}_q $$


没有任何单一的代理查询能够充分近似$\mathcal{K}_{\mathrm{ideal}}$。然而,通过引入互补信号,可以构建更全面的近似。作者提出,通过同时考虑正向信号(语义相关性)和负向信号(其补集),可以增强泛化能力。令$\mathcal{K}_{\mathrm{pos}}$表示在语义重建下显著的KV对,$\mathcal{K}_{\mathrm{neg}}$表示在最大熵噪声信号下获得高激活的KV对。它们之间的重叠指的是在两种分布下都保持高度显著的Token,这捕获了结合语义信息量和结构稳定性的Token,使其在多样化的下游查询中更加鲁棒。

对比选择任务的数学公式化。作者将KV Cache驱逐问题制定为对比选择任务。使用双重信号:近似预期查询模式的正向(语义)信号$q_{\mathrm{pos}}$,以及通过最大熵噪声提供结构对比的负向(结构)信号$q_{\mathrm{neg}}$。令$\mathbf{S}_{\mathrm{pos}} = \mathrm{Importance}(\mathrm{KV}_{KB}, q_{\mathrm{pos}})$和$\mathbf{S}_{\mathrm{neg}} = \mathrm{Importance}(\mathrm{KV}_{KB}, q_{\mathrm{neg}})$为并行计算的重要性分数向量。目标是找到一个融合函数$\mathcal{F}$,结合这些信号产生更鲁棒的重要性估计:

$$ \mathbf{S}_{\mathrm{fused}} = \mathcal{F}(\mathbf{S}_{\mathrm{pos}}, \mathbf{S}_{\mathrm{neg}}; \Theta) $$


其中$\Theta$表示包括归一化方案和融合规则在内的算法参数。最终保留的缓存选择为:

$$ \mathrm{KV}_{\mathrm{retained}} = \mathrm{Top}_k(\mathbf{S}_{\mathrm{fused}}) $$
核心优化挑战是设计$\mathcal{F}$,使其同时解决三个关键问题:(1) 效率:不能显著增加计算开销;(2) 平衡:必须归一化并平衡$\mathbf{S}_{\mathrm{pos}}$和$\mathbf{S}_{\mathrm{neg}}$的不同数值尺度;(3) 泛化:必须优先考虑语义重要性,同时利用结构对比来识别在$\mathcal{Q}$中具有更广泛效用的KV对。形式上,旨在最大化查询分布中重要KV对的预期覆盖率,同时将驱逐边界推向理论极限:
$$\begin{aligned} \begin{array}{r} \underset{\mathcal{F}}{\max} \mathbb{E}_{q \sim \mathcal{Q}} \left[ \frac{\left| \mathcal{K}_q \cap \mathrm{KV}_{\mathrm{retained}} \right|}{\left| \mathcal{K}_q \right|} \right] \\ \mathrm{s.t.} \quad \left| \mathrm{KV}_{\mathrm{retained}} \right| \leq \alpha \cdot n, \ \alpha < 0.3 \end{array} \end{aligned}$$

A2 方法细节

ContrastKV算法概述。为了解决预填充(prefill)阶段的KV Cache驱逐挑战,作者提出了ContrastKV算法。现有查询无关(query-agnostic)方法的核心局限在于依赖单一代理查询来近似理想的通用查询$q_{\mathrm{univ}}$,这不可避免地为多样的下游查询引入了盲区。受集成学习中多样性原则的启发,作者的核心洞察是:通过对比语义和结构信号,可以增强驱逐决策的鲁棒性。

算法的三阶段执行流程。ContrastKV算法通过三个连续的阶段来识别更具泛化性的KV对集合。首先是对比信号生成(Contrastive Signal Generation),该阶段高效地产生一对互补信号,包括一个正向(语义)样本和一个负向(结构)样本。接着是并行重要性打分(Parallel Importance Scoring),该阶段独立计算两种信号的归一化重要性分数,以平衡它们的影响并减少计算开销。最后是对比融合(Contrastive Fusion),通过两级机制(Head级别和Layer级别)融合这两个信号以细化最终的驱逐决策,确保全局覆盖和局部精度。通过对比语义一致性和结构鲁棒性,ContrastKV为多查询场景构建了更可靠的决策边界。

对比信号的生成设计。此阶段的目标是生成一对简洁且具判别力的信号:一个用于捕获语义上显著的Token分布,另一个用于建立稳定的结构基线。假设知识库长度为$n$。对于正向信号,作者遵循KVzip【KVZip: Query-Agnostic KV Cache Compression with Context Reconstruction, 2025, NeurIPS】的方法,采用知识库重建提示(knowledge base reconstruction prompt)作为$q_{\mathrm{pos}}$,并将其长度设置为$t_{\mathrm{pos}} = n$。对于负向信号,需要一个在语义上与知识库正交的输入,以最大化对比歧义。作者没有使用冗长且不相关的文档,而是生成了一个长度为$t_{\mathrm{neg}}$($t_{\mathrm{neg}} \ll n$)的最大熵噪声序列(Maximum Entropy Noise Sequence),其中每个Token都是从词表上的均匀分布中独立采样的。这个紧凑的噪声序列作为$q_{\mathrm{neg}}$并提供纯粹的结构基线。它的设计旨在突出“注意力池(attention sink)”Token——即无论语义内容如何都能吸引高注意力分数的Token。$q_{\mathrm{pos}}$和$q_{\mathrm{neg}}$与完整的KV Cache一起通过LLM前向传播以获取它们各自的注意力模式,这些模式随后作为后续评分分布的基础。

并行重要性打分机制。为了避免处理两个长序列带来的延迟增加,作者并行评估正向和负向信号。对于每一层$l$和KV头$h$,给定查询特征$\mathbf{Q}_{l,h}$和键特征$\mathbf{K}_{l,h}$,计算注意力矩阵$\mathbf{A}_{l,h} = \mathrm{Softmax}(\mathbf{Q}_{l,h}\mathbf{K}_{l,h}^T)$并对其进行切片以获得对应于缓存键的$\bar{\mathbf{A}}_{l,h}$。每个KV头的重要性分数向量是通过在组(group)和Token维度上取最大值来导出的:

$$\begin{aligned} S_{l,h}^{(\mathrm{pos/neg})} = \max_{\substack{g=1,\dots,G; \\ i=1,\dots,t_{\mathrm{pos/neg}}}} \bar{\mathbf{A}}_{l,h}[g,i] \in \mathbb{R}^n \end{aligned}$$


作者将所有KV头聚合的分数$S$称为最大交叉注意力分数。

两阶段对比融合机制。归一化后的分数通过两阶段过程进行融合,首先在Head级别聚合跨头的注意力模式,然后在Layer级别巩固跨层的信号。这种设计保留了全局重要的Token,同时细化了局部决策。

Head级别融合策略。由于不同的注意力头表现出专门的关注点,某些头可能对特定查询类型至关重要,即使它们的整体注意力质量较低。为了防止在动态预算分配期间驱逐这些头中所有关键的KV对,作者执行了Head级别的门控(gating)。目标是通过基于正向和负向样本分数的Head级别融合,为每个头动态保留一部分相对重要的KV对。设$\mathcal{G}_\beta(\cdot)$表示分数向量的第$\beta$个分位数。作者将下限和上限阈值设置为$\beta$和$1 - \beta$。对于每个位置$i$,门控分数$\tilde{S}_i$定义为:

$$\begin{aligned} \tilde{S}_i = \begin{cases} 1.0, & \text{if } S_i^{pos} \geq \mathcal{G}_{1-\beta}(S^{pos}) \text{ and } S_i^{neg} \geq \mathcal{G}_{1-\beta}(S^{neg}), \\ 0.0, & \text{if } S_i^{pos} \leq \mathcal{G}_{\beta}(S^{pos}) \text{ and } S_i^{neg} \leq \mathcal{G}_{\beta}(S^{neg}), \\ S_i^{pos}, & \text{otherwise}. \end{cases} \end{aligned}$$


该规则提升了在两种信号中都显著的Token(可能具有泛化性),并降低了在两种信号中都可以忽略的Token(可能是冗余的),同时保留了模糊情况下的原始正向分数。它确保每个头保留一组最小的高潜力KV对。

图3:Head级别融合策略概览。此处的分数仅用于说明算法原理,不代表实际的注意力分数。Head的颜色代表其重要性,从浅到深。
图3:Head级别融合策略概览。此处的分数仅用于说明算法原理,不代表实际的注意力分数。Head的颜色代表其重要性,从浅到深。

Layer级别融合策略。为了进一步增强对一般查询模式的敏感性,作者在每一层使用负向信号作为参考执行分数提升(score boost)。提升仅应用于尚未由Head级别门控决定的位置(即分数为$S_i^{pos}$的位置)。提升幅度与负向分数的Min-Max归一化分数$\hat{S}_i^{neg}$成正比:

$$\begin{aligned} \begin{array}{r} \hat{S}_i^{neg} = \frac{S_i^{neg} - \min(S_i^{neg})}{\max(S_i^{neg}) - \min(S_i^{neg})} \\ \hat{S}_i = \min\left(S_i^{pos} + \gamma \cdot \hat{S}_i^{neg}, \max(S_i^{pos})\right) \end{array} \end{aligned}$$


其中$\gamma$是控制增益强度的超参数。这一步骤温和地提升了那些在正向信号中不处于顶部、但在负向信号中表现出相对突出的Token,从而在不覆盖主要语义信号的情况下细化决策边界。Head级别和Layer级别的融合函数是固定的而不是学习的,因为作者有意采用简单的线性公式来保持在不同模型和任务上的可解释性和鲁棒性。

图4:Layer级别融合策略概览。
图4:Layer级别融合策略概览。

A4 实验环境

  • 数据集:采用SCBench基准测试,提供全面的多查询评估套件。包含11个数据集,涵盖四种长文本能力:字符串检索(String Retrieval)、语义检索(Semantic Retrieval)、全局信息(Global Information)和多任务处理(Multi-tasking)。
  • 模型架构:评估了三个经过指令微调的主流LLMs:Qwen2.5-7B-Instruct-1M、Llama3.1-8B-Instruct、Qwen2.5-14B-Instruct-1M。由于Llama3.1-8B-Instruct的128K Token上下文长度限制,排除了En.QA和En.MultiChoice中上下文超过125K的样本。
  • 硬件配置:默认情况下,Qwen2.5-7B-Instruct-1M实验在配备32 GB内存的RTX 4080 SUPER上进行;Llama3.1-8B-Instruct实验在配备48 GB内存的RTX 4090上进行。
  • 软件配置:PyTorch 2.1, Python 3.10, CUDA 12.1。所有实验均在bfloat16精度下进行。对比基线包括SnapKV、Ada-KV和KVzip。

A5 实验结果

  • 多查询性能比较(表1):在Qwen2.5-7B和Llama3.1-8B上跨四个类别的八个基准测试进行评估。查询感知方法(SnapKV, Ada-KV)在多查询设置中性能严重下降。基线KVzip在20%缓存预算下准确率降至70%,在10%预算下降至56%。相比之下,ContrastKV在20%预算下保持了92%的原始准确率,即使在极端的10%预算下也保持了74%的准确率。在全局信息任务中,由于KV驱逐后注意力分散减少,所有方法的容忍度都更高。在Qwen2.5-14B模型上也观察到一致的结果,验证了算法的模型无关性。
  • 不同保留率下的性能分析(表2):在Qwen2.5-7B上评估KVzip和ContrastKV。当预算充足($\geq 50\%$)时,ContrastKV略落后于KVzip。然而,当预算降至40%或更低时,ContrastKV开始显示出显著优势。这正是KV驱逐变得具有实际意义的区间。
  • 消融实验(表3):在20%预算下对ContrastKV的融合组件进行消融。结果显示,Head级别融合提供了主要的性能增益(特别是将字符串检索提高了42.22%),这源于其保留正负样本中显著共同特征的能力。Layer级别融合贡献了适度的增益,但与Head级别结合时进一步细化了性能(比基线提高45.81%)。
  • 效率分析(表4):使用未见过的代码库作为知识库构建长上下文问答任务。全量KV的解码延迟为110.81 ms/token,GPU显存占用7.8GB。在20%预算下,ContrastKV将延迟降至55.28 ms/token,显存降至1.5GB;在10%预算下,延迟降至44.26 ms/token,显存降至0.7GB。GPU内存使用量与缓存预算呈近乎线性的缩放关系。

A6 结论

本文解决了长上下文、多查询KBQA中的KV Cache爆炸问题,提出了基于对比信号融合的查询无关驱逐框架ContrastKV。与依赖单一代理查询的现有方法不同,该方法联合评估语义一致性和结构鲁棒性,从而在各种下游任务中实现一致的性能。实验表明,ContrastKV仅用20%的KV Cache就保持了92%的原始准确率,同时大幅降低了推理延迟和内存使用。其主要局限在于:(1) 无法缓解模型在预填充阶段发生的内存溢出(这是大多数KV驱逐方法的通病);(2) 由于正向样本与知识库等长,注意力计算具有较高的时间复杂度,驱逐阶段耗时较长(但该成本可在多查询中摊销)。未来的工作将探索向多模态和动态检索场景的扩展,以及优化的边缘侧部署。

A7 附录

对比样本的消融实验(A.1)。为了验证选择与知识库完全无关的随机字符串作为对比样本的合理性,作者将负向信号替换为知识库前10%的内容。结果表明,在20%预算下两者准确率相似,但在10%的高驱逐率下,使用随机字符串作为对比样本显示出明显优势,证明了选择与知识库无关的数据进行对比的必要性。

注意力分数可视化(A.2)。通过对Llama3.1-8B-Instruct的最大交叉注意力分数进行可视化(图5),可以观察到ContrastKV算法识别并保留了许多在单一知识库重建中注意力分数较低的KV对,特别是在较浅的层中。

图5:最大注意力分数可视化。每个热力图可视化了在使用Llama3.1-8B-Instruct计算时,知识库示例的KV对获得的最大注意力分数。
图5:最大注意力分数可视化。每个热力图可视化了在使用Llama3.1-8B-Instruct计算时,知识库示例的KV对获得的最大注意力分数。

算法参数设置(A.3)。作者在Qwen2.5-7B模型上以20%预算进行了参数寻优实验。
- 对于下限和上限阈值分位数$\beta$,当其在5%到10%之间时,准确率差异在0.5%以内;超过15%时性能显著下降,推荐设置为5%到10%之间。
- 对于负向样本长度$t_{\mathrm{neg}}$,不同设置下的准确率差异保持在1%以内,表明负向样本的具体长度对算法准确率影响极小,考虑到时间成本,建议将其限制在128个Token以内。
- 对于提升比例$\gamma$,不同设置下的准确率差异同样在1%以内,建议设置为达到最高准确率的值(即0.12)。

效率分析的问答设置(A.4)。为了测试模型在面对完全未知的长文本输入时的检索和推理能力,作者采用了在Qwen2.5-7B发布之后才开源的代码库。基于该知识库设计了10个相关问题。实验结果显示,采用20%和10%预算的ContrastKV均能准确回答所有问题,证明算法不依赖于模型参数中编码的记忆知识。

基于KV驱逐算法的云边协同加速框架(A.5)。作者提出了一个由用户端、边缘服务器和云服务器组成的三层框架。云服务器执行预填充并运行KV驱逐算法,随后将驱逐后的KV Cache传输给边缘服务器进行后续推理。初步的可行性实验(使用H800模拟云,RTX 4090模拟边缘)表明,使用驱逐后的KV Cache,即使边缘服务器性能较低,其推理速度也显著高于使用全量KV Cache的云服务器。此外,ContrastKV支持的更高驱逐率允许在保持准确率的同时适应更严格的内存限制。