← 返回 2026-10-15

基于测试时训练的潜空间压缩 Latent Compaction with Test-Time Training

Yingfa Chen, Xingyu Shen, Chaojun Xiao, Xu Han 📅 2026-10-14 👍 6 2026-10-15 18:00
KV缓存压缩 测试时训练 知识蒸馏 长上下文 高效推理

冻结模型权重,测试时训练文档专属KV缓存,32×压缩下RULER达96.7%

前置知识

KV 缓存(KV Cache)

Transformer 自回归解码时,为避免每步重算注意力,会把每个 token 在每层的 key 和 value 缓存下来。一个 $N$ token 的文档在 $L$ 层、$H$ 个 KV 头上需存储 $2LHNd$ 个标量($d$ 为头维度),长上下文下成为显存与带宽瓶颈。所谓上下文压缩,本质就是把这份"文档记忆状态"变小。

本文的全部目标就是把这份缓存压到 1/32 而不丢信息,不理解缓存结构就看不懂方法设计。

测试时训练(Test-Time Training, TTT)

在推理阶段对模型(或其一部分参数)做自监督梯度更新,使其适应当前输入。经典做法(Sun et al., 2020)在测试样本上微调权重;TTT 层则把"在线学习的模型"当作循环隐状态。本文用法是:模型权重完全冻结,只对文档专属的 KV 槽位做梯度下降。

标题即方法:理解 TTT 才能明白为什么可以在不改动模型的前提下"训练"一个缓存。

注意力汇聚(Attention Sink)

LLM 倾向于在序列开头少数 token 上分配异常高的注意力质量,这些位置被称为 attention sink(Xiao et al., 2024)。丢弃它们会导致注意力分布崩溃、输出退化,因此流式推理方法都强制保留开头 token。

解释了初始化时为何把文档第一个位置强制纳入 anchor,以及注意力质量校准为何关键。

KVZip+ 重构评分

KVZip 用"遮住部分上下文再让模型重构"过程中每个 KV 对获得的最大注意力权重给条目打分;KVZip+(Jégou & Jeblick, 2026)进一步将该权重乘以投影值范数除以输入隐状态范数,衡量条目对残差流的实际贡献,得分高者优先保留。本文用它做基线和初始化信号。

preserver 全部由 KVZip+ 全局排名产生,且它是 32× 压缩下的主要对比基线。

分组查询注意力(GQA)

让多个查询头共享同一组 KV 头的架构,如 Qwen3-1.7B 用 16 个查询头共享 8 个 KV 头,可把 KV 缓存缩小数倍。本文以"层 × KV 头"为单位分配预算与训练槽位,同一 KV 头下的多个查询头共用一组条目。

预算分配、anchor 评分和 Stage 1 逐层拟合都以 KV 头为单位,不了解 GQA 会误解槽位数量。

研究动机

长上下文让 KV 缓存成为推理瓶颈:一个 $N$ token 的文档要在 $L$ 层、$H$ 个 KV 头上存储 $2LHNd$ 个标量,像 Qwen3-1.7B(28 层、8 个 KV 头、头维 128)处理 16K 上下文时,缓存会挤占显存、限制批大小并增加每步解码的带宽开销。现有方案各有硬伤:H2O、SnapKV、PyramidKV、Ada-KV 等驱逐方法只能从原始条目中挑选,被丢弃 token 的信息无法恢复;Claude 与 OpenAI 平台 2026 年采用的文本摘要式压缩(compaction)会漏掉"当下看不出重要、之后才被问到"的细节。关键约束是压缩发生在下游问题之前——缓存必须对任何未见问题保持信息完整。这一 query-agnostic 设定非常苛刻:32× 压缩下,最强的重构评分基线 KVZip+ 在 RULER 上只剩 40.0% 准确率。

本文的目标是本文要为每篇文档训练一个紧凑且可复用的 KV 缓存:在模型权重全部冻结、且完全看不到任何下游问题与答案的前提下,把缓存压缩到指定预算(每层每 KV 头平均 $B$ 个槽位,如 16K 文档压 32× 即 $B=128$),训练结束后固定缓存,供任意多个问题复用,使准备成本可摊销。量化目标是在 RULER、LongBench、Phonebook Lookup 三个基准上,与预算完全对齐的 KVZip+、Attention Matching、SnapKV、PyramidKV 及文本摘要基线对比,在 4×–32× 压缩区间大幅提高检索与理解准确率,并验证方法在 Qwen3-0.6B/4B/8B 和 MiniCPM5-1B/2B 上的可迁移性。

与已有工作不同的是,本文的切入角度是把 KV 缓存本身当成一个小型神经网络来训练,而不是一个待挑选的集合。已有三条线索各自停在半路:驱逐方法(KVZip 等)把条目当作不可变的原子,只做离散选择;Cartridges 用 self-study 优化语料缓存,但没有两阶段课程;Attention Matching 只拟合注意力输出与注意力质量,止步于此。本文抓住三个被忽视的缺口:(1) 初始化应组合互补规则——全局重构评分、教师注意力锚点、键空间覆盖性采样各管一件事;(2) 注意力拟合必须同时监督对数归一化因子 $\log Z$,否则文档注意力相对后续 token 的总质量无法校准;(3) 拟合之后还需端到端蒸馏做全局精炼。消融证明这三点各自贡献了决定性的性能差距。

核心方法

直觉上,一篇文档的完整 KV 缓存高度冗余,像一张可被有损压缩的图片:可以用每层每 KV 头平均 $B$ 个"可学习槽位"的潜表示去逼近它,并通过梯度下降不断提升逼近质量。技术路线分四步。(1) 采集教师信号:把文档预填进冻结模型得到完整缓存,用 480 条与任务无关的通用提示(24 种文档请求 × 20 种回答指令,各贪心生成至多 24 token)得到教师 rollout,全程不接触任何评测问题。(2) 初始化紧凑缓存:按全局 KVZip+ 评分选 preserver,按教师注意力峰值选 anchor(含文档首 token 作为 attention sink),用最远点采样选 diversifier,每个槽位额外带一个可学习的标量注意力偏置。(3) Stage 1 逐层做注意力拟合,用 MSE 对齐完整缓存的注意力输出与 $\log Z$。(4) Stage 2 联合优化全部槽位,用 top-20 分组 KL 蒸馏加 LM 损失做端到端精炼。推理时问题与生成 token 作为普通 KV 对追加,文档与新增两路注意力按归一化因子加权合并。

核心创新是把"压缩 KV 缓存"从一次性离散选择问题改写为对文档专属潜变量的连续优化问题,并用两阶段课程保证可训练性。每个槽位除 key/value 外还有标量偏置 $b_j$,进入打分 $\ell(q)=sK_{cmp}q+b_{cmp}$,既能改写条目相对权重、也能校准文档总注意力质量;压缩分支与后续 token 分支各自产出注意力输出和归一化因子,再按 $A_t=\frac{Z_{cmp}(q_t)A_{cmp}(q_t)+Z_{new,t}A_{new,t}}{Z_{cmp}(q_t)+Z_{new,t}}$ 合并,等价于对两路做统一 softmax。两个最反直觉的发现:其一,Stage 1 必须同时拟合注意力输出与 $\log Z$——去掉该项后 Phonebook 平均分从 80.67% 跌至 36.50%;其二,preserver 在 Stage 1 必须冻结——允许其训练反而掉到 33.42%,可见"先保住骨架、再全局放开"的课程顺序至关重要;若推理时把归一化加权换成简单平均,准确率直接崩到 0.17%。

方法步骤详情

Step 1(预填与采集):输入原始文档文本,预填进冻结教师得到完整缓存;对 480 条通用提示(24 种文档请求 × 20 种回答指令)各贪心生成至多 24 token,收集每层每头的查询与教师 top-20 logits。Step 2(初始化):从预算 $B$ 取 $M=B/4$ 给 anchor+diversifier——anchor 占 $M$ 的 1/4,按文档首位置与教师注意力峰值 $a_i=\max_{q\in Q}[\mathrm{softmax}(sKq)]_i$ 选出;diversifier 用最远点采样保证键空间覆盖;其余 $LH(B-M)$ 槽位由全局 KVZip+ 排名选为 preserver。Step 3(Stage 1):每层独立训练 1000 步 AdamW(lr $3\times10^{-3}$,每步至多 128 个查询位置),以 $\mathcal{L}_{attn}=\mathrm{MSE}(\hat A_{cmp},\hat A_{full})+\mathrm{MSE}(\log Z_{cmp},\log Z_{full})$ 拟合教师,preserver 冻结。Step 4(Stage 2):全体槽位联合训练 1000 步(lr $10^{-4}$,每步累积 4 条 rollout 梯度),$\mathcal{L}_{stage2}=\mathcal{L}_{KL}+\mathcal{L}_{LM}$:分组 KL 对齐教师 top-20 与尾部质量,LM 项抬高教师贪心 token 概率。Step 5(复用):缓存固定,问题与生成 token 追加为普通 KV 对,按归一化加权合并两路注意力。

技术新颖性

与既有工作的区别有三层。对驱逐方法(H2O/SnapKV/KVZip+):它们输出原始条目的子集,本文的条目是"潜变量"——初始化之后 K/V 与偏置继续被梯度改写,全局评分只决定初始位置而非最终形态。对学习式表示(Cartridges/Attention Matching):Cartridges 只做 self-study 蒸馏;Attention Matching 止步于注意力拟合,本文证明那只是"半成品"——补上 Stage 2 后 Phonebook 4K/8K/16K 分别再涨 6.75/15.50/7.75 个百分点。对 TTT 文献:TTT-E2E 更新模型权重且需元学习初始化,本文更新冻结 Transformer 内的文档槽位,无需改动架构。此外,分组 top-20 加尾部质量的蒸馏目标在几乎不损失精度的情况下(全词表蒸馏平均分同为 80.67%,无一致增益)大幅降低了教师目标的存储与计算成本,是工程上很实用的一笔。

Latent Compaction training pipeline. Preservers, anchors, and diversifiers are initialized from the original cache. Stage 1 freezes preservers and fits anchors and diversifiers to full-cache attention outputs. Stage 2 refines all entries through end-to-end distillation.
Figure 2: Latent Compaction training pipeline. Preservers, anchors, and diversifiers are initialized from the original cache. Stage 1 freezes preservers and fits anchors and diversifiers to full-cache attention outputs. Stage 2 refines all entries through end-to-end distillation.
Qwen3-1.7B training losses on 16K Phonebook Lookup at 16× compression. Stage 1 shows the normalized attention-fitting objective (Equation 8); stage 2 shows grouped KL and next-token cross-entropy (Equation 10).
Figure 7: Qwen3-1.7B training losses on 16K Phonebook Lookup at 16× compression. Stage 1 shows the normalized attention-fitting objective (Equation 8); stage 2 shows grouped KL and next-token cross-entropy (Equation 10).
Phonebook Lookup prompt template. Angle-bracketed fields are placeholders, and the ellipsis denotes additional entries.
Figure 8: Phonebook Lookup prompt template. Angle-bracketed fields are placeholders, and the ellipsis denotes additional entries.

实验结果

主实验覆盖三个基准与六个模型。RULER(Qwen3-1.7B,16K):32× 压缩下本文达 96.7%,KVZip+ 仅 40.0%,提升 56.7 个百分点;4K–32K 上下文、16×/32× 压缩下普遍领先,但 64× 以上所有方法趋近于零,最激进比率下文本摘要反超。Phonebook Lookup(16×):平均 80.67%,4K/8K/16K 分别为 87.75%/83.75%/70.50%,大幅领先预算匹配基线。LongBench(图 3):在 Qwen3-0.6B/1.7B/4B 上全程优于文本摘要、16×/32× 优于 KVZip+,压缩越强优势越大,但与未压缩仍有差距。迁移实验(图 4):增益在 Qwen3-0.6B/4B/8B 与 MiniCPM5-1B/2B 上全部成立。消融(16× Phonebook 平均 80.67% 为基准):diversifier 换成随机 KV、高斯向量、首部 KV 后跌至 20.50/19.75/43.50,anchor 换成 KVZip+ 跌至 57.17(表 1),preserver 占比影响最大、25% anchor 最优(图 5);去掉 Stage 1 掉到 13.92%、preserver 解冻 33.42%、去 $\log Z$ 项 36.50%(表 2);去掉 Stage 2 为 70.67%、全词表蒸馏无一致增益(表 3);1000+1000 步最优,Stage 1 翻倍仅 61.00%→61.25%、Stage 2 过长过拟合(图 6);去偏置仅微跌至 32.08%、等权平均替换归一化加权则崩到 0.17%(表 4)。

Initialization ablations on Phonebook Lookup with Qwen3-1.7B at 16× compression.
Table 1: Initialization ablations on Phonebook Lookup with Qwen3-1.7B at 16× compression.
Stage-1 ablation results on Phonebook Lookup with Qwen3-1.7B at 16× compression.
Table 2: Stage-1 ablation results on Phonebook Lookup with Qwen3-1.7B at 16× compression.
Architectural ablations on Phonebook Lookup at 16× compression.
Table 4: Architectural ablations on Phonebook Lookup at 16× compression.
Hugging Face checkpoints used in the experiments. Each model uses its corresponding tokenizer.
Table 5: Hugging Face checkpoints used in the experiments. Each model uses its corresponding tokenizer.
Document-specific optimization settings. A stage-2 batch consists of four independently processed rollouts whose gradients are accumulated before one update.
Table 6: Document-specific optimization settings. A stage-2 batch consists of four independently processed rollouts whose gradients are accumulated before one update.
Latent Compaction and baselines across compression ratios and context lengths on RULER and Phonebook Lookup with Qwen3-1.7B.
Figure 1: Latent Compaction and baselines across compression ratios and context lengths on RULER and Phonebook Lookup with Qwen3-1.7B.
Comparison of compression methods on LongBench.
Figure 3: Comparison of compression methods on LongBench.
Phonebook Lookup results for additional Qwen3 model sizes and MiniCPM5 models. Each model uses its own document-specific cache optimization.
Figure 4: Phonebook Lookup results for additional Qwen3 model sizes and MiniCPM5 models. Each model uses its own document-specific cache optimization.
Phonebook Lookup (4K, 8K, and 16K context lengths) accuracy of Latent Compaction at 16× compression ratio with different fractions of slots allocated to preservers, and different anchor fractions within the combined anchor and diversifier budget.
Figure 5: Phonebook Lookup (4K, 8K, and 16K context lengths) accuracy of Latent Compaction at 16× compression ratio with different fractions of slots allocated to preservers, and different anchor fractions within the combined anchor and diversifier budget.
Phonebook Lookup accuracy of Latent Compaction of varying training durations. For clarity, dotted lines only show the accuracy at step 0 and step 1,000 of stage 2.
Figure 6: Phonebook Lookup accuracy of Latent Compaction of varying training durations. For clarity, dotted lines only show the accuracy at step 0 and step 1,000 of stage 2.
RULER subtask results: accuracy versus compression ratio at 16K context, and versus context length at 16× and 32× compression (NIAH-Single/Multi-Key/Multi-Query/Multi-Value, VT, CWE, FWE, QA-1, QA-2).
Figures 9–21: RULER subtask results: accuracy versus compression ratio at 16K context, and versus context length at 16× and 32× compression (NIAH-Single/Multi-Key/Multi-Query/Multi-Value, VT, CWE, FWE, QA-1, QA-2).
查看结构化数据
任务指标本文基线提升
RULER(Qwen3-1.7B,16K 上下文,32× 压缩) 13 个合成任务聚合准确率 96.7% KVZip+ 40.0% +56.7 个百分点
Phonebook Lookup(Qwen3-1.7B,16× 压缩) 查找准确率(4K/8K/16K 平均) 80.67%(87.75/83.75/70.50) KVZip+、Attention Matching、SnapKV、PyramidKV、文本摘要(均远低于本文,精确值见图 1d) 大幅领先全部预算匹配基线
LongBench(Qwen3-0.6B/1.7B/4B,4×–32× 压缩) LongBench 综合分数 全程优于文本摘要;16×/32× 优于 KVZip+;4× 与 KVZip+ 接近 KVZip+、文本摘要、未压缩参考 压缩越强优势越大(见图 3)

局限与改进

作者承认的局限:每篇文档的训练成本高昂(480 条教师 rollout 生成、每层 1000 步拟合、再 1000 步联合精炼);64× 以上极端压缩全部失效;且论文反复强调所有结论只针对"逻辑 KV 对预算",并未测量真实显存节省与推理加速。我的补充观察:槽位以 FP32 存储并携带偏置与掩码,实际内存收益可能低于压缩比的直觉预期;评测集中于不超过 8B 参数的模型,且合成检索类任务(RULER 13 个子任务、Phonebook)占比过重,自然文档上 LongBench 的增益随压缩增大而收窄、与未压缩差距明显;Stage 1 需逐层训练且压缩注意力路径不能用 FlashAttention(要额外输出 $\log Z$ 与偏置),工程效率存疑;基线列表中没有最相近的 Cartridges;全部实验用贪心解码,未覆盖采样式生成与真实多轮对话场景。

独立分析的弱点

弱点一:成本-收益账没算清。480 次教师生成加约 29000 步优化(28 层×1000 步 Stage 1 加 1000 步 Stage 2)只对会被反复查询的文档划算,论文未给出墙钟时间或摊销盈亏点,改进方向是报告成本-复用次数曲线,并做免训练的摊销式初始化。弱点二:物理收益未验证。FP32 槽位、每槽一个标量偏置、ragged 掩码都会吃掉压缩红利,建议把槽位量化到 BF16/INT8 并实测显存与吞吐。弱点三:归一化校准脆弱——表 4 显示推理时把加权合并换成等权平均后准确率从 33.42% 崩到 0.17%,说明方法对 softmax 实现细节极其敏感,需要更鲁棒的合并机制或在训练中加入数值扰动正则。弱点四:固定 480 条通用提示偏向"摘要式"探测,对代码库、表格等结构化文档可能失配,可按文档类型自适应生成提示或引入基于困惑度的采样。弱点五:各层各头等预算,未探索 Ada-KV 式的头间/层间自适应分配,某些头或许值得更多槽位。

未来方向

作者提出的方向是降低准备成本并扩展到更广任务。基于成果可延伸的路线:一是元学习跨文档共享的初始化(借鉴 TTT-E2E 的 meta-learned init),把每文档约 2000 步的训练压缩到几十步甚至零步;二是从单文档扩展到 Cartridges 式的语料级多文档记忆,研究多文档间的干扰与槽位共享;三是与 KVzap 结合,训练轻量评分器加速 KVZip+ 全局排名;四是给 FlashAttention 类内核暴露 $\log Z$ 与逐条偏置接口,把"逻辑压缩"变成真实加速(论文已论证数学上可行);五是在线增量压缩——对话推进时滚动更新紧凑缓存,替代 Claude/OpenAI 的文本摘要式 compaction,这正好补上摘要会丢失细节的短板;六是从理论上解释 64× 处的断崖式失效,刻画预算 $B$、文档长度 $N$ 与可保留信息量之间的标度关系。

复现评估

复现条件较好:代码已在 GitHub 开源(THUNLP/latent-compaction),附录 A 提供了近乎完整的配方——六个公开 HF checkpoint(Qwen3-0.6B/1.7B/4B/8B、MiniCPM5-1B/2B,哈希校验一致)、三个公开基准(RULER/LongBench/Phonebook Lookup)、全部超参数(AdamW,Stage 1 lr $3\times10^{-3}$、Stage 2 lr $10^{-4}$,各 1000 步,每步 4 条 rollout 梯度累积,梯度裁剪 1,槽位 FP32、模型 BF16),还附注意力合并的 Python 伪代码、Phonebook 提示模板和 480 条通用提示的构造规则(24 请求 × 20 指令),并声明同一文档种子跨条件配对、无基于评测题的选点。门槛主要在算力与时间:需单卡运行 Qwen3-1.7B 教师生成,Stage 1 逐层 1000 步且不走融合注意力,单文档训练可能耗时数小时。总体属于中低难度、高确定性的复现。

相似论文推荐