Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.015 — 2026-07-19
PAPER H 6 约 6 分钟

KV缓存淘汰,别再偏爱“句法骨架”

KV 缓存按注意力删旧记忆,可能留下 JSON 骨架、删掉答案;这篇论文尝试按词元角色纠偏。

你让 AI 从一份很长的嵌套 JSON 里找某个字段的值。为了省显存,它一边读,一边删掉部分“工作记忆”。结果可能很反直觉:括号、逗号和字段名留了下来,真正装着答案的值却被删了。Soumil Mandal 的这篇论文指出,问题出在一种常见假设上:模型反复关注的词元,不一定最有用。论文进一步提出按词元角色分配缓存,希望在有限空间里少留“句法骨架”,多保住回答问题所需的信息。

本文数字和效果均来自这一篇 arXiv 论文,尚无外部复现。结论主要针对嵌套 JSON 等结构密集输入,不宜外推到所有长文本或所有缓存压缩方法。

模型的“草稿纸”为什么会装错东西?

KV Cache——键值缓存——可以理解为模型读长文时使用的草稿纸。模型会把已经读过的词元加工成中间结果存起来,生成后文时直接调用,不必每次从头计算。上下文越长,这张草稿纸越占显存,于是系统必须决定哪些内容留下,哪些删掉。

H2O 及其衍生方法采用一种直观规则:累计一个旧词元历次获得的注意力权重,把高分词元视为“重度使用者”,优先保留。这里的注意力,就是模型处理当前内容时给旧词元分配的参考权重。

问题在于,注意力高不等于答案价值高。某些符号会因为位置或结构作用不断吸引注意力,形成“注意力汇点”。论文在结构密集输入中观察到,分隔符或空白等不承载内容的汇点角色,其注意力能量比任何内容角色高一个数量级。按能量排名,系统便会把大量缓存花在这些结构成分上。

JSON 尤其容易暴露这个错位。KEY 是字段名,说明一项数据是什么;VALUE 是字段值,往往才装着问题的答案;括号、逗号等词元则负责维持结构。论文报告,H2O 对结构性 KEY 的保留率约为答案 VALUE 的 1.8 倍。换句话说,它更偏爱目录标签,而不是标签指向的内容。

5% 的缓存,准确率可以从 88% 掉到 0

作者用合成的嵌套 JSON、紧凑 JSON、XML 和 Markdown 表格测试这一现象,并在 Llama、Mistral、Phi-3、Qwen 四个模型家族上检查其共性。最尖锐的结果来自叶节点取值问答:完整缓存时,精确匹配准确率为 88%;缓存预算压到 5% 后,结构角色偏置可令准确率降至 0%。精确匹配指答案必须与标准答案完全一致,是相当严格的评分方式。

这不只是一种相关性。作者还做了反事实实验:每次禁止某一类词元进入候选缓存,再观察答案是否恢复。结果显示,禁止保留 KEY 是论文所测试策略中效果最好的可部署过滤办法;但把分隔符或 VALUE 全部删掉,低预算下又会崩溃。结构符号虽然不直接承载答案,模型仍需要它们辨认数据关系。

因此,合理的顺序不是“内容都留、符号都删”,而是更细的角色分工:VALUE 和必要的分隔结构要有保底空间,KEY 则应受到抑制。标题所说的“别再偏爱句法骨架”,准确含义正在这里:纠正特定结构化问答中的预算失衡,而不是宣布结构词元普遍无用。

不换评分器,改掉预算分法

论文的方法建立在 SnapKV 上。SnapKV 不累计所有历史查询的注意力,而是观察最近一个窗口,并沿缓存位置做最大池化——把邻近位置的高分信号聚合起来。作者认为,真正起作用的主要是最大池化:它会削弱孤立的高注意力汇点,同时抬高成片出现的内容信号,而不只是偏爱最近词元。

新方法保留这套窗口评分,再按 KEY、VALUE、分隔符、正文、空白等角色分别划分预算。可以把它想成给草稿纸分栏:不是让所有词元争同一张排行榜,而是先保证关键栏位有位置,再把没用完的空间重新分配。它不要求重新训练大模型,只调一个超参数;其余角色权重来自前面的反事实诊断。

在论文的 16k 上下文实验中,5% 缓存预算下,H2O 的精确匹配准确率为 2%,SnapKV 为 20%,组合方法达到 56%;预算为 10% 时,三者分别为 2%、34% 和 76%。到 20% 预算,组合方法达到 86%,高于 SnapKV 的 70%。论文据此称,在低于 20% 的预算下,它弥合了 H2O 与完整缓存之间 63%—98% 的准确率差距。这个相对差距指标说明恢复了多少损失,但不能代替各任务上的绝对准确率。

值得关注的不是又一个压缩分数

这项工作的价值,在于它改变了“重要性”的定义。累计注意力衡量的是模型看过某个词元多少次;实际任务需要的,却是这个词元对答案有多大用处。两者在普通文本中可能经常重合,在结构密集数据里却会分家。

它也提醒我们,长上下文压缩不能只问“还剩多少缓存”,还要问“剩下的是什么”。如果 5% 的空间大多装着括号和字段名,压缩率再漂亮,也没有真正保住语义。角色条件分配则提供了一个可组合的纠偏方向:现有评分方法仍可使用,但预算要考虑词元在任务中的功能。

论文还尝试用一个 15 MB 的线性角色探针自动标注词元。它通过词元附近的局部窗口判断 KEY、VALUE 等角色,单独分类表现接近完美,作者称推理成本可忽略。不过,换掉结构解析器后,下游准确率仍下降。探针会把问题文本里的路径写法误判成 KEY,随后将检索线索一起删掉。这说明“会给词元贴标签”与“可靠理解它处在哪个数据区块”仍是两回事。

局限与未知

  • 所有主要结果都来自同一篇论文及合成语料,尚未在真实 RAG 数据、API 日志或外部评测中独立复现。不同模型上的组合增益也不一致;表格中角色占比较低时,收益很小。
  • 论文用掩码模拟淘汰,没有真正压紧 KV 张量,因此没有测出峰值显存下降或解码加速。“推理成本可忽略”也缺少完整硬件、吞吐量和延迟对照。
  • 较高预算下,方法有时达到或略超完整缓存,但这个“去噪增益”依赖随机种子:50% 预算时仅属临界显著,30% 预算下四个种子的增益无法与零区分。稳妥的说法是它可能追平完整缓存,而非稳定超越。

供稿材料 SOURCES — 1

← 返回 2026-07-19 · 学术板块