你让 AI 解一道很难的数学题。它写了几万字草稿,终于接近答案;但这些草稿不仅耗时间,还会一直占着显存。模型每生成一个词,都要保存此前词语的中间计算结果,免得下一步从头计算。这份越写越厚的“速记本”叫 KV 缓存。推理越长,缓存通常也越大,最后限制同时能处理多少道题。
AbridgeKV 想换一种办法:不直接撕掉旧草稿,而是在每写完一段后,把它压进少量特殊 Token 的 KV 缓存,再释放原文的缓存。这里的 pause tokens(暂停 Token)是只有训练所得嵌入、不对应普通文字、也不会生成输出的特殊 Token。它们像夹在草稿中的几张索引卡:原文仍然写过,也仍可供人阅读;只是模型继续思考时,主要从索引卡里取回旧信息。
这项工作的目标,是让测试时计算——模型训练完成后,为一道题多想几步、多尝试一些路线所投入的计算——不再与显存占用等比例增长。以下结果均来自 Jack Cai 等人的论文及其自建实验,尚无独立复现。
不是删除,而是学会收纳
常见的 KV 驱逐方法会按新旧顺序或历史注意力分数,挑出一部分缓存直接删除。问题在于,思维链(Chain-of-Thought,也就是模型写出的分步解题过程)可能在很久以后重新用到某个中间结果。过去很少被关注的信息,不等于以后没用。一旦删错,模型可能重新推导,输出反而变长。
论文的实验确实观察到了这种反效果:几种简单驱逐策略只保留四分之一缓存时,有 38%—58% 的样本一路写到 32K 长度上限。作者评测的长推理驱逐方法 R-KV,也比不压缩的模型多生成 40%—69% 的 Token。每个 Token 虽然省了缓存,额外生成的 Token 却把一部分收益吃了回去。
AbridgeKV 因此把“该留什么”交给训练。模型每生成完一个固定的 512 Token 文本块,就让暂停 Token 阅读整块内容,并把摘要编码进自己的 KV 条目。随后,原文本块的 KV 缓存被释放;后续文字只能读取这些压缩表示。训练仍使用普通的下一词预测损失,不另设摘要答案:如果后面的推理需要前文信息,误差就会反向教会暂停 Token 应该保存什么。
这与把旧推理改写成几句文字摘要也不同。暂停 Token 不输出可读文字,它们保存的是模型内部表示。好处是不用另建一套由更强模型挑分段、写摘要、再评分修改的数据流程。代价则是,人无法直接打开这些“索引卡”检查里面写了什么。
三个细节决定它能不能记住
作者认为,单有暂停 Token 还不够。此前最接近的训练式压缩方法 LightThinker,在相同数据和服务环境中重新训练后,竞赛题综合准确率比完整 KV 模型低 10.5 个 avg@8 点。AbridgeKV依靠三个设计缩小了差距。
第一,压缩后的 KV 条目沿用被替换文本块内部的位置,而不是排到文本块末尾。这样,后续 Token 看见压缩表示时,它与原内容的相对距离仍大致相近。只把这些条目改为追加位置,其余设置不变,综合 avg@8 从均匀分配版本的 41.5 降至 35.3。作者还检查了未超出基础模型训练位置范围的题目,差距仍然存在,说明问题不只是位置变长。
第二,不把缓存预算平均发给每一层。研究者先把某一层的压缩条目减半,观察验证集交叉熵上升多少,以此衡量该层的“记忆价值”。在 36 层中,少数层对删减很敏感,多数层影响很小。最终,最重要的 6 层每块保留 256 行,最不敏感的 12 层保留 64 行,其余 18 层保留 128 行,平均预算仍是 128 行。相同平均预算下,按层分配的综合 avg@8 为 43.0,均匀分配为 41.5。
第三,以较大的文本块压缩。块太小,就要反复把已经压过的信息再次压缩,也更频繁地执行压缩步骤。论文在固定 4:1 比例下发现,块越大,准确率越高;最终采用每 512 Token 压缩一次。这个选择会让当前尚未完成的块继续保留原始缓存,因此块越大,也会多占一些即时显存。
四分之一缓存,成绩接近完整版本
作者以 Qwen3-4B-Base 为起点,用相同的 20 亿个数学监督微调响应 Token 训练各个方案,并在来自 AIME、HMMT、AMC、BRUMO、CMIMC 和 SMT 的 446 道竞赛题上测试。每题采样 8 次,生成上限约为 32K Token。
完整 KV 模型的综合 avg@8 为 43.8;AbridgeKV 在每 512 个生成 Token 只持久保留平均 128 行 KV,也就是四分之一预算时,得到 43.0。两者的配对差为 -0.8 点,95% 区间为 -2.3 到 +0.8,包含零。它的输出长度分布也与完整 KV 接近,没有靠写得更长来补偿压缩。
显存节省随后变成了服务吞吐。在论文修改过的 vLLM 中,一条运行中的 AbridgeKV 序列平均占用 369 MiB KV,完整 KV 为 1,277 MiB,约缩小 3.5 倍。一个 8 GiB 缓存可容纳的序列数从 6 条增至 22 条。在单张 H100、请求饱和,并按各方案最合适的并发上限运行时,AbridgeKV 完成一道题所需时间约为完整 KV 的 0.31 倍,也就是约 3.2 倍的完成速度。
这组结果最值得看的地方,不只是“压缩了多少”,而是它改变了长推理的成本关系。过去,多想一倍通常意味着生成历史的 KV 缓存也近似增长一倍。AbridgeKV让已完成部分按约四分之一速度继续增长,同时保留正在生成的文本和完整可读的思维链。论文还用植入四位数的实验检查信息流:隔开最多八次压缩后,模型仍会直接关注存有该数字的那一块代码行;移除对应代码行,回忆率降为零。这说明暂停 Token 至少确实承担了跨块传递信息的作用,而不只是一个形式上的占位符。
局限与未知
- 证据目前只来自作者实验。模型仅为经过其数学 SFT 流程训练的 Qwen3-4B-Base;直接用于已经完成强化学习调优的模型,能否保留原有收益,论文没有验证。
- 实验集中在竞赛数学。作者只做了小规模代码领域原型;多模态、电脑操作代理以及递归压缩旧代码行,都仍是未来设想。
- 压缩比例对每个文本块固定,信息稀疏和信息密集的块拿到相同预算。标题所说的“少量”暂停 Token 也不是一个统一数字:实际保留量随层而变,不能理解成已经证明只需某个确定的“几个 Token”。