从KV缓存压缩的角度重新思考LoRA内存
摘要
本文研究了文档级问答中参数侧内存(LoRA适配器)与上下文侧内存(KV缓存)之间的交互。研究发现,当KV缓存被大幅压缩时,文档LoRA变得最有价值,可恢复13–21个ROUGE-L点,并且经过问答监督的适配器优于基于下一词预测的适配器。
arXiv:2606.05698v1 公告类型:新
摘要:参数化检索增强将文档信息编码为轻量级、文档特定的模块(例如LoRA适配器),从而减少将全部证据作为输入上下文的需求。然而,这种参数侧内存与存储于KV缓存中的上下文侧内存如何交互尚不清楚。我们通过逐步剔除文档键值状态,并衡量在保留上下文之外文档LoRA何时发挥作用,在文档级问答中研究了这一交互。我们发现,当KV缓存大体完整时,文档LoRA贡献甚微,但在激进压缩下其价值逐渐显现——当没有文档上下文保留时,可恢复13-21个ROUGE-L点。当基础模型对文档进行编码,且适配器仅在答案生成时应用时,增益最大,这表明文档LoRA更应被理解为解码时的参数化内存,而非文档编码器。最后,问答风格的监督比基于原始上下文的下一词预测能产生显著更强的适配器。这些结果将文档LoRA定位为一种互补的内存通道,其价值恰好出现在上下文侧证据稀缺之时。
查看缓存全文
缓存时间: 2026/06/05 08:07
# 通过键值缓存压缩的视角重新思考LoRA内存
**来源:** https://arxiv.org/html/2606.05698
**Chunsheng Zuo, Liaoyaqi Wang, William Jurayj, William Fleshman, Benjamin Van Durme**
约翰霍普金斯大学
\{czuo3, lwang240, wjurayj1, will.fleshman, bvandur1\}@jhu.edu
###### 摘要
参数化检索增强将文档信息编码为轻量级、文档特定的模块(例如LoRA适配器),减少了将所有证据作为输入上下文包含在内的需要。然而,参数侧内存与存储在KV缓存中的上下文侧内存之间如何相互影响仍不清楚。我们通过逐步驱逐文档键值状态,并测量文档LoRA在保留上下文之外的贡献,在文档级问答中研究了这种交互。我们发现,当KV缓存基本完整时,文档LoRA几乎没有额外贡献,但在激进压缩下变得日益有用——在没有文档上下文的情况下可恢复13–21个ROUGE-L点。当基础模型编码文档,且适配器仅在答案生成期间应用时,增益最大,这表明文档LoRA更适合被理解为解码时的参数化内存,而非文档编码器。最后,QA式监督产生的适配器明显优于原始上下文的下一个词预测。这些结果将文档LoRA定位为一个互补的内存通道,其价值恰恰在上下文侧证据稀缺时显现。
## 1 引言

**图1:** 流程概览(顶部)。我们使用QA式监督训练一个文档特定的LoRA适配器(步骤1),以ρ因子压缩文档KV缓存(步骤2),并使用压缩后的缓存与适配器一起生成答案(步骤3)。主要发现(底部)。改变ρ会揭示三个区域:低压缩时KV缓存占主导,LoRA贡献很小(上下文主导);激进压缩下LoRA的边际收益(高于基线的ΔROUGE-L)开始显现(过渡);极端压缩下,适配器成为主导的文档内存通道并产生最大增益(LoRA显现)。
检索增强生成通常通过将检索到的文档附加到输入上下文中来提供外部知识(Lewis等人,2020)。这虽然让模型直接以词元级别访问证据,但每个检索到的词元都需要预填充计算,并贡献在解码过程中必须存储的键值状态,这使得较长或反复查询的文档代价高昂。这催生了两条减少完整文档在KV缓存中依赖的研究方向。其一是KV缓存压缩,尤其是KV缓存驱逐方法,该方法丢弃较不重要的词元,同时将潜在更有用的词元保留在KV缓存中,以节省内存并保持大部分性能(Zhang等人,2023;Liu等人,2023;Li等人,2024;Chari和Van Durme,2025)。另一研究方向则探索参数化检索增强:将文档信息编码为轻量级文档特定参数模块,通常实例化为LoRA适配器,在推理时加载和使用(Hu等人,2022;Su等人,2025;Caccia等人,2025;Back等人,2026)。这一方向将外部知识重新定义为由模型参数承载的内存。这些研究方向是互补的,但通常被孤立研究,因此它们的相互作用尚未得到充分探索。
在本工作中,我们在文档级问答中研究这种相互作用。对于每个文档,我们使用源自该文档的监督训练一个文档特定的LoRA适配器,并在逐步压缩KV缓存中文档部分的情况下评估它。这个流程如图1所示,让我们可以比较两种文档信息来源:保留在KV缓存中的显式证据,以及适配器承载的内存。我们进一步将LoRA在推理期间应用的阶段分离为预填充、压缩评分和解码,并比较将文档转换为适配器监督的不同方式。我们的实验得出三个主要发现:
- •**文档LoRA在高压缩区域最为有用。** 当KV缓存保留足够证据时,其益处有限,但随着压缩移除这些证据,其益处增加。
- •**文档LoRA作为解码时的内存比作为文档预填充模块更有用。** 基础模型更适合构建压缩后的文档KV缓存,而文档LoRA在答案生成期间更有用。
- •**QA式监督为QA任务产生最强的文档LoRA。** 在我们当前的训练格式比较中,它优于其他源自文档的训练目标。
## 2 相关工作
### 2.1 KV缓存压缩
KV缓存随序列长度和批量大小线性增长,通常超过模型参数的内存占用,成为长上下文服务中的主要成本(Liu等人,2024a)。KV缓存压缩方法包括:*驱逐*,仅保留由注意力分数选择的KV条目(Zhang等人,2023;Liu等人,2023;Li等人,2024)、位置启发式(Xiao等人,2024)或学习预算(Yang等人,2024a;Feng等人,2025);*合并*,整合较不重要的条目以减轻驱逐损失(Zhang等人,2024;Wang等人,2024;Wan等人,2025);以及*量化*,减少存储状态的位宽(Liu等人,2024c;Hooper等人,2024;Yang等人,2024b)。这些类别并非互斥:驱逐和合并改变哪些状态保留或如何组合,而量化则改变保留状态的精度。在本工作中,我们将KV缓存压缩作为一种可控手段,以改变上下文中可用的文档证据量。
### 2.2 参数侧文档内存
另一研究方向通过将文档信息移入可训练的参数模块(通常实现为LoRA适配器)来减少对长检索上下文的依赖。这些方法将检索到的知识注入为低秩权重更新,而非提示词元,以避免上下文膨胀(Liu等人,2024a)和知识冲突(Xu等人,2024)。每个文档的适配器可以通过离线QA对微调(Su等人,2025)或上下文蒸馏(Caccia等人,2025)获得,也可以通过超网络将文档嵌入映射到LoRA权重来即时生成(Tan等人,2025)。当适配器库已存在时,LAG(Fleshman和Van Durme,2025)在逐词元逐层级别进行路由,无需额外训练。更接近我们的设置,实证分析(Back等人,2026;Zhao等人,2025)将LoRA的能力特征化为参数化内存,并表明参数化注入和上下文注入很大程度上是互补的,而最近的适配器服务工作研究延迟或选择性LoRA激活以复用基础模型KV缓存(Greenewald等人,2025;Li等人,2025)。然而,这些研究要么在全上下文或无上下文设置下研究LoRA,要么将阶段式LoRA激活视为效率机制。我们则使用KV缓存压缩作为一个可控轴,变化保留多少上下文侧文档内存,并使用推理阶段控制作为诊断工具,询问文档LoRA在此轴的何处贡献,以及应在哪些阶段应用它。
## 3 方法论
我们将文档专用LoRA作为一种参数侧文档内存形式,在不同KV缓存压缩设置下进行研究。对于每个文档,我们使用源自该文档的监督训练一个单独的LoRA,然后在保留不同量文档KV缓存的情况下针对同一文档的问题进行评估。本节描述训练过程(第3.1节)、KV缓存压缩协议(第3.2节)、评估协议(第3.3节),以及用于分离LoRA在各阶段角色的推理变体(第3.4节)和监督格式(第3.5节)。
### 3.1 文档专用LoRA训练
为了将文档内化为参数化内存,我们遵循先前工作的类似流程(Su等人,2025;Caccia等人,2025;Back等人,2026)。对于每个文档d,我们将文本分割为块Cd={ci}_{i=1}^{nd},并从这些块中推导有监督的训练示例。监督格式f将块映射到训练集Dd^{(f)}。每个示例(x,m)∈Dd^{(f)}包含一个词元序列xx和一个与xx长度相同的损失掩码序列m∈{0,1}^{|x|},用于指示哪些词元计算损失。设θ0为冻结的基础模型。我们通过以下方式训练文档LoRA参数Δθd^{(f)}:
argminΔθ ∑_{(x,m)∈Dd^{(f)}} ∑_{t=1}^{|x|-1} -m_t log p_{θ0+Δθ}(x_t | x_{<t})
#### 标准格式(默认):
**问题:** {问题}
通过将答案放在“\boxed{}”符号的括号内来回答问题。
: 答案是\boxed{{答案}}。
训练时,问题和提示前缀被掩码,损失仅应用于方框答案内的答案延续部分:
```
>>>loss_mask_start
问题:{question}
通过将答案放在“\boxed{}”符号的括号内来回答问题。
答案是\boxed{
>>>loss_mask_end
{answer}}}
```
#### 评估。
评估使用相同的问题-答案模板和方框答案约定,但包括问题之前的文档上下文。完整评估提示形式如下:
: 这是上下文:{文档上下文}
问题:{question}
通过将答案放在“\boxed{}”符号的括号内来回答问题。
: 答案是\boxed{
模型在固定答案前缀“答案是\boxed”之后开始生成,因此生成的延续应完成方框答案:
对于上下文预填充评估,同一提示被分割为文档前缀和问题后缀。文档前缀包含聊天用户前缀和文档上下文,问题后缀包含问题、答案指令、助手前缀和固定方框答案前缀。
在无上下文设置中,文档上下文被省略,模型仅接收问题和固定答案前缀。
#### 原始上下文监督。
原始上下文训练将文档块本身作为训练序列,不使用模板:
{原始文档块文本}
### A.2 训练监督构建
合成QA数据在适配器训练前从文档块生成。在主要的QA设置中,每个文档被分割为目标块,默认目标长度为64个词,无重叠。对于每个目标块,我们使用固定分派并请求四个简短答案的QA对(pairs_per_call=4),每个块任务请求一个生成调用。合成模型与训练适配器的模型相同:Qwen3-4B为Qwen适配器生成合成QA数据,Llama-3.1-8B-Instruct为Llama适配器生成合成QA数据。在合成过程中,相邻块可作为背景上下文提供,但提示指示生成器仅从目标段落中提取问题和答案。生成输出被解析为具有`question`和`answer`字段的JSON数组;输出超过请求数量的项被截断到请求数量,失败的块任务请求会重试。
以下是目标段落,前面有周围上下文仅用于背景理解。
[背景上下文] {surrounding_context}
[目标段落] {chunk_text}
生成{pairs_per_call}个项目,其问题和答案仅从上述[目标段落]中陈述的事实提取。每个答案必须是一个简短的事实性短语(一个单词到几个单词),例如:人名、数字、日期、地点或其他具体事实。尽可能使用段落中的确切措辞。返回一个JSON数组,其中每个元素是一个包含键"question"和"answer"的对象。不要在JSON数组之外包含任何解释或文本。
当不使用周围上下文时,生成器仅收到段落和相同的JSON格式指令。背景上下文仅用于辅助生成;在默认的合成QA训练格式中,原始文档块不包括在训练输入中。
表1:格式消融实验中使用的训练监督格式。
#### 合成–评估QA重叠
我们还描述了同一文档或患者记录内合成训练问题与评估问题之间的重叠。我们在三个日益宽松的标准下比较问题:原始精确匹配、近似重复匹配和更广泛的词汇相似度匹配。精确匹配极为罕见,在四个来源/模型设置中范围从0到6个问题。近似重复匹配也很罕见,最多匹配16个合成问题。即使在更广泛的词汇相似度标准下,也只有13–88个合成问题被匹配,对应生成合成问题的0.18%–0.59%。我们在主要实验中不筛选这些对,因为合成QA数据是从文档块而非评估标注生成的;报告此统计量是为了使重叠程度透明。
## 附录B 数据集统计
表2总结了我们在主要NarrativeQA和LongHealth实验中使用的文档长度。我们使用Llama-3.1-8B-Instruct分词器计数词元,不添加特殊词元,在按文档标识符去重重复的QA行之后。对于NarrativeQA,我们从官方NarrativeQA文档和问答标注中构建了一个20文档子集。我们使用完整故事文本而非摘要或重述。相似文章
KV Packet: 免重计算的上下文无关KV缓存用于大语言模型
KV Packet 提出了一种免重计算的缓存复用框架,用于大语言模型。该框架使用可训练的软标记适配器来弥合上下文不连续性,消除了开销,同时在 Llama-3.1 和 Qwen2.5 上的性能与完全重计算基线相当。
针对长上下文大模型推理重新定义 KV 缓存淘汰问题
本文介绍了 LaProx,这是一种用于长上下文大模型推理的新型 KV 缓存淘汰策略。它将问题重构为输出感知的矩阵乘法近似问题,仅使用 5% 的缓存用量即可实现高性能。
KV缓存正成为推理的内存层级结构
文章讨论了KV缓存如何演变为LLM推理的内存层级结构,优化解码过程中的内存管理。
内存
解释了为什么由于KV缓存随上下文长度和并发用户数扩展,LLM推理越来越受内存带宽限制,以及像vLLM和PagedAttention这样的系统如何提高内存利用率。
OjaKV: 上下文感知的在线低秩KV缓存压缩
OjaKV 引入了一种上下文感知的在线低秩KV缓存压缩框架,该框架利用混合存储策略和Oja算法进行增量子空间自适应,以减少长上下文大语言模型推理中的GPU内存瓶颈,且无需模型微调。