预算收紧时全文排练迅速失效
这里的场景是:缓存在任何人知道会被问什么之前就被压缩一次——为检索而缓存的文档、跨请求共享的提示前缀、为尚未发生的对话轮次保留的长对话记忆。由于内存随缓存数量增长,只有压缩足够极端才有收益:5% 的保留率能在同样内存里放下 20 倍的缓存,30% 的保留率只能放下约 3 倍。论文瞄准的是 3%–5% 这一区间。
主流做法是 KVzip 提出的排练打分:模型一边关注缓存一边重读上下文,然后保留获得最多注意力的条目。后续方法改进了打分器,或改进了保留子集能表达的内容,但它们排练的目标都一样:整段上下文。论文的核心主张是,这个共同默认恰恰在压缩最要紧的地方失效。在 RULER-4K 上用 Qwen3-8B,不压缩时得分为 96.5;保留率 3% 的全文排练只保住 31.5。在 LongBench 的自然文本任务上它得 28.6,低于完全不做排练的方法,后者最高可达 36.5。
这不是容量问题。用排练答案的方式给 5% 的缓存打分,几乎不损失性能——93.5 对不压缩的 94.7。预算被花在了错误的位置上,而不是花得太少。
缓存保留的是排练真正读到的内容
为了定位损失,论文测量了每个问题的答案有多少在压缩后存活。保留率 5% 时,全文排练在八个 needle 任务中的七个上只保住答案 KV 条目的 5.7%–7.1%——并不比它保住其他任何 token 的比例更高。答案自身的条目存活率大致相当于随机。
论文提出的机制是:缓存会保留它排练过的内容。被排练的位置只覆盖约 5% 的上下文,却拿走了保留预算的五分之一到三分之一。当模型只排练一份事实清单时,它在每个任务上的得分就跟随排练覆盖了清单的多大比例。排练一页中的 5%,大约会占去缓存的 30%,而缓存能回答的就是排练覆盖到的内容。
附录给出了这一发现的更精确版本:缓存保留的是排练真正读到的内容。当排练是连贯文本时,模型会依据自身的局部上下文续写,只在遇到猜不出的 token 时才回看文档——needle 的取值、实体、数字。这些正是问题所问的内容,因此被保留下来。而像顺序编号的段落标签这类可预测的结构不会把注意力引回文档,于是丢失。
排练问题不等于排练答案
两个对照实验区分了排练必须包含什么。只排练 needle 句子——即每一个可能被问及的事实——在与 KVzip+ 相同的预算下,在 5% 和 3.125% 两种保留率下,都在每个事实稀疏的 RULER-4K 任务上得 98.5–100 分;它对 KVzip+ 的领先从 24–58 分扩大到 74–83 分,其中 multi-key-1 上 KVzip+ 从 44.4 跌到 18.5。
第二个对照说明起作用的是答案,而不只是问题。只排练问题、不带答案,在同一打分器下得 47.0 分,而带答案得 93.5 分。读问题时,注意力落在问题点名的 key 上;只有在生成答案时,注意力才落在 value 上。因此排练必须复现读出过程,而不只是复现请求。
可部署的排练看不到问题,但模型可以预判问题。让模型写出读者可能提出的问题,并逐条引用文档作答,它就会产出自己预期会被问到的那些片段的读出。在 LongBench 上,答案感知的排练保留 5% 的子集,性能与不压缩模型相当,44.9 对 44.4。
Attic 让模型自测并自适应排练量
Attic-KV 得名于福尔摩斯的“大脑阁楼”,它的排练由三部分组成。自生成问答排练让模型写出它预期的问题,并引用上下文作答。锚点决定还要排练什么:在一个 4K token 的块内,选取那些因远离平均 key 而显得突出的 key。包含这些锚点的句子有多长,则决定排练多少。
第三部分实现了论文的第二条原则:有多少可排练的就排练多少。不同文档可被问及的内容比例不同:一段叙事可能把一条事实藏在一页文字里,而一张表格从头到尾都是事实。在 RULER-4K 开发集上用 Qwen3-8B、在相同平均排练量下比较,固定 35% 的 KV2 对每篇文档都排练 35%,得 74.6 分;Attic 的内容自适应排练量对每篇文档排练 11%–100%,平均 34%,得 78.0 分。增益出现在内容密集的地方。
Attic 无需训练,只改变排练,因此可以插入任何排练打分宿主而不改动其打分方式,也能直接接受 RestoreKV 已发布的 restore token 而无需重新训练。在这些原则下,先前方法成了特例:KVzip 把排练量固定为整段上下文,KV2 固定为一个比例,而内容自适应的排练在预算放宽时会趋近 KVzip。
同一套排练提升三种不同打分器
由于 Attic 只改变排练,论文可以在三种不同打分方式的宿主中测试它:按注意力打分、按梯度归因打分,以及使用训练好的 restore token。单独使用时,Attic 在 RULER 和 LongBench 自然文本任务的全部八个设置中都是最好的免训练方法。在 RULER-4K 保留率 3% 时它得 73.4 分,比 KV2 高 6.4 分,比 KVzip+ 高 41.9 分。
插入基于梯度的 KVgrad 后,它把宿主最多提升 17.1 分,KVgrad 加 Attic 在全部八个设置中胜过所有现有免训练方法。插入训练过的 RestoreKV+ 后,它把宿主最多提升 28.1 分,并在存在 restore token 的全部六个设置中胜过所有现有方法。
预算越紧,领先幅度越大,而这正是论文认为要紧的区间。在 LooGLE 上,每篇文档只压缩一次、随后回答它的全部问题,带 restore token 的 Attic 在短依赖和长依赖问题上都领先。
部分排练在长文档上压缩更快
由于只排练每段上下文的一部分,Attic 的压缩时间随长度增长得比全文排练更慢:在 32K token 的上下文上与 KVzip+ 持平,在 64K token 的上下文上少用 27%。这对“一次压缩、多次查询”的场景很重要,因为压缩成本按每篇缓存文档只付一次。
连贯性也带来代价,论文如实记录而非回避。在 LongBench 的段落检索任务上,答案是一个“Paragraph N”标签,由于每句话都是可被问及的事实,内容自适应排练量会排练约一半的上下文。当排练从孤立锚点扩展为连贯文本时,标签 token 的保留比例从约为 5% 基准率的五倍降到基准率本身,得分也随之下降:Qwen3-8B 从 77 降到 40,Llama-3.1-8B 从 100 降到 30。
在保持被排练位置不变的前提下打断文本流,会反转这一取舍。标签回来了——Qwen3-8B 的段落检索从 59 升到 78.7,与同一划分上 KV2 默认比例的水平相当——但 needle 走了,RULER 从 81.8 降到 69.8,multi-key-2 从 57 降到 5,multi-value 从 98 降到 59。在紧张预算下,这两类 token 争夺同一批位置。
优势取决于问题要问什么
论文自己的框架明确了边界:连贯排练把预算花在模型猜不出的内容上,而稀疏排练把预算摊到所有被排练的内容上,从而把 needle 挤出去。因此 Attic 的最大增益出现在问题指向具体取值、实体和数字的事实稀疏任务上,而它的弱点出现在答案是模型能从文本流本身生成的、可预测的标签时。
证据覆盖四个 LLM 上的 RULER、两个模型上的 LongBench 自然文本任务,以及用于“一次压缩、回答多问”场景的 LooGLE,全部处于论文瞄准的 3%–5% 保留率区间。报告的比较对象是免训练方法,以及与 Attic 训练量相当的宿主;摘要中“Attic 单独使用在全部八个设置中最好”是免训练范围内的比较,并不是对一切训练过的系统的断言。
由此得出的实际优先级是选择排练什么,而不是如何打分。如果缓存上下文之后会被查询具体事实,那么问答排练加内容自适应排练量就是论文数据支持的配置,而且预算越收紧到 3%,它的领先越大。如果查询针对的是可预测的结构标签,那么保住 needle 的同一份连贯性会丢掉这些标签,论文自己的稀疏排练对照展示了相反的取舍。
本文引用的文献
Rehearse Everything, Remember Nothing: Attic-KV Rehearses What Will Be Read
保留率 3% 时,全文排练只保住 RULER 96.5 分中的 31.5 分,并在 LongBench 自然文本任务上低于不做排练的方法;Attic-KV 用自生成问答排练配合锚点和内容自适应排练量,在全部八个测试设置中都是最好的免训练方法,并把 KVgrad 和 RestoreKV+ 分别最多提升 17.1 分和 28.1 分。
