Periodic Weak Spots 完全拆解:分块 KV Cache 压缩为何产生周期性检索盲点

8696 字
43 分钟
Periodic Weak Spots 完全拆解:分块 KV Cache 压缩为何产生周期性检索盲点

一个被平均分掩盖的周期性故障#

把 128K 上下文中的同一条事实向前或向后平移几个 token,语义没有变化、查询位置没有变化、事实距离查询的平均深度也没有变化,模型的检索准确率却可能相差 40 个百分点。更反常的是,这种波动并不随机:它每隔 2 个或 4 个 token 重复一次,周期恰好等于 KV Cache 压缩器的步长。

Xingyu Zhu 等人于 2026 年 9 月发布预印本 Periodic Weak Spots: Phase Sensitivity from Chunked KV-Cache Compression,把这种现象命名为 phase sensitivity,本文译作“相位敏感性”。论文研究的不是常见的“信息位于上下文开头、中间还是结尾”,而是一个更细、更隐蔽的坐标:信息落在压缩窗口边界内的哪个偏移。

这个问题直接触及分块 KV Cache 压缩的可靠性。压缩把连续多个 token 的 K、V 表示合并成少数摘要,显著降低长上下文推理的显存和注意力计算;代价是写入摘要发生在未来查询出现之前。压缩器不知道将来要找什么,只能提前决定每个位置保留多少信息。一旦不同窗口内偏移被不均匀地保留,固定步长便会把这种不均匀复制到整段上下文,形成周期性弱点。

论文给出的第一个例子不是合成检索题,而是一段真实代码补全。提示词来自 DeepSeek-V4 的推理代码,正确的下一个 token 是 8。研究者只改变前置装饰性 docstring 中等号的数量,不改动目标代码;DeepSeek-V4-Flash-Base 却在 8 与错误的 32 之间周期性翻转。当填充长度模 4 为 0 或 1 时,错误项占优;模 4 为 2 或 3 时,正确项占优。

DeepSeek-V4 代码补全概率随四 token 周期翻转
DeepSeek-V4 代码补全概率随四 token 周期翻转

图源:论文 Figure 1。左图标出被移动的装饰性前缀和真正决定答案的代码;中图按填充长度模 4 分组;右图展示 16 个连续长度上的概率曲线。绿色与红色曲线不是缓慢漂移,而是几乎按两高两低的节拍交替。概率差 P(8)−P(32)P(8)-P(32) 从 −0.79-0.79 到 0.950.95,说明这不是 top-1 边缘上的微小抖动。

需要先划清结论边界:论文证明了被测分块压缩模型存在稳定的相位相关性,并用受控模型和因果干预支持“压缩导致相位专门化”的解释;它没有证明所有 KV Cache 压缩方案都会出现同样强的弱点,也没有把大型异构模型中的全部现象归因于单一门控机制。

从分块压缩到“相位”坐标#

普通 KV Cache 为什么随上下文线性增长#

自回归解码时,第 ll 层需要保留历史 token 的 key 与 value。若序列长度为 TT,KV 头数为 HkvH_{kv},单头维度为 dhd_h,每个元素占 bb 字节,忽略对齐和分页元数据后,单请求缓存量近似为

MKV=2LTHkvdhb.M_{KV}=2LTH_{kv}d_hb.

LL 是层数,系数 2 分别对应 K 与 V。即使使用 GQA 或 MQA 减少 HkvH_{kv},MKVM_{KV} 仍与 TT 成正比;每个新查询读取历史缓存的注意力代价也随可见历史长度增长。分页管理能减少外部碎片,却不改变必须存储多少逻辑 KV 的数量。关于分页缓存和物理块管理,可参考 vLLM 源码完全拆解(四):KVCacheManager 如何分配、复用与回收物理 Block。

分块压缩走的是另一条路线。设窗口宽度为 WW,相邻窗口起点间隔为步长 SS。压缩器把窗口 jj 中的 WW 个隐状态

hj,0,hj,1,…,hj,W−1h_{j,0},h_{j,1},\ldots,h_{j,W-1}

映射为一个或少数几个压缩 KV 条目。当 S=WS=W 时窗口不重叠,旧缓存条目数大致降为原来的 1/S1/S;当 S<WS<W 时窗口重叠,一个 token 会参与多个摘要,压缩率稍低,但边界附近的信息拥有多次写入机会。

论文用一个统一公式描述不同压缩核。对分支 B∈{K,V}B\in\{K,V\},窗口内偏移 ii 的门控 logit 为

sj,iB=ZiBhj,i+biB.s_{j,i}^{B}=Z_i^{B}h_{j,i}+b_i^{B}.

沿窗口偏移做 softmax 得到权重

αj,iB=exp⁡(sj,iB)∑u=0W−1exp⁡(sj,uB),\alpha_{j,i}^{B} =\frac{\exp(s_{j,i}^{B})} {\sum_{u=0}^{W-1}\exp(s_{j,u}^{B})},

再对 payload 加权求和:

B^j=∑i=0W−1αj,iB⊙(CiBhj,i).\widehat B_j =\sum_{i=0}^{W-1}\alpha_{j,i}^{B}\odot(C_i^{B}h_{j,i}).

这里,CiBC_i^B 决定位置 ii 写入摘要的内容,ZiBZ_i^B 与偏置 biBb_i^B 决定写入强度,⊙\odot 表示逐元素乘法或标量广播。若门控维度 dg=1d_g=1,一个标量统一缩放整个 head;若 dg=dhd_g=d_h,不同通道可选择不同偏移。把所有 α\alpha 固定为 1/W1/W,就退化为均匀平均。

压缩的关键矛盾也在这个公式里:B^j\widehat B_j 在窗口经过时就被写好,而未来查询尚未出现。多个 token 被叠进有限维向量后,压缩器不可能对所有潜在查询都无损;门控必须在“平均保留每个位置”和“锐利保留少数位置”之间取舍。

相位不是绝对位置,也不是上下文深度#

对零起始 token 位置 tt 和压缩步长 SS,论文定义相位

ϕ(t)=t mod S.\phi(t)=t\bmod S.

ϕ(t)\phi(t) 只回答“这个 token 相对周期性窗口边界处在哪一格”。例如 S=4S=4 时,位置 100、104、108 的绝对位置不同,但相位都为 0。若在整段有效内容之前插入一个不改变语义的 token,所有后续位置的相位都会加 1;插入 4 个 token 后又回到原相位。

这与 Lost in the Middle 有本质区别。后者关心相关信息在长上下文中的归一化深度,常见横轴是从开头到结尾的粗粒度位置;相位敏感性关心 t mod St\bmod S,周期可能只有 2、4、8 个 token。一个 128K 提示词中的两条事实可以处于几乎相同的深度,却因为相位不同而经历完全不同的压缩路径。

窗口宽度 WW 与步长 SS 也不能混为一谈。WW 决定一次摘要混合多少 token,SS 决定多久产生一个新摘要,因此决定周期格点。论文的受控实验正是通过分别改变二者,发现观测周期跟随 SS 而不是 WW。

真实大模型中的周期性弱点#

128K 检索实验怎样只移动相位#

代码补全只能证明“输出会周期性翻转”,还不能区分原因。研究者于是构造单 token key-value 的 Needle-in-a-Haystack(NIAH)任务:每个 128,000-token 提示词包含 16,000 个 key:value 记录,目标记录大约位于第 64,000 token,末尾查询某个 key 对应的 value。

实验没有简单地把目标记录挪到不同绝对位置。对 DeepSeek-V4,研究者按目标 key 的位置 tK mod 8t_K\bmod 8 分成 8 组;V4 的 CSA 使用 W=8,S=4W=8,S=4,所以 8 组覆盖两个完整压缩周期。每组保持以下条件一致或统计匹配:

  • 总提示长度都是 128,000 token;
  • 末尾 query 的位置固定;
  • key-value 绑定和记录顺序成对复用;
  • 目标位置的均值为 64,000,方差也相同;
  • 差异由精确 token 计数的前后填充制造,而不是靠字符数猜测。

回答去除首尾空白后,只要以前缀形式命中 gold value 就记为正确。四个 DeepSeek-V4 版本每个 residue 有 256 个样本,共 2,048 个提示;DeepSeek-V4.1-Flash 每个 residue 有 2,560 个样本,共 20,480 个提示。图中的阴影是 95% Wilson 区间。

DeepSeek-V4 系列在不同源位置余数上的检索准确率
DeepSeek-V4 系列在不同源位置余数上的检索准确率

图源:论文 Figure 2。灰色竖带标出压缩步长边界,横轴虽然画的是模 8 residue,但 V4 的真实周期为 4,V4.1 的真实周期为 2。曲线在相隔一个步长的位置复现,而不是随绝对位置单调升降。

结果可以压缩成一张表:

模型8 个 residue 平均准确率最好与最差 residue 差值观测周期
DeepSeek-V4-Flash-Base52.6%40.23 个百分点4
DeepSeek-V4-Flash-073191.4%19.14 个百分点4
DeepSeek-V4-Pro-Base72.1%34.77 个百分点4
DeepSeek-V4-Pro-081384.4%14.84 个百分点4
DeepSeek-V4.1-Flash92.38%6.09 个百分点2

最醒目的不是某个模型平均分高低,而是平均分会隐藏怎样的尾部风险。V4-Flash-0731 平均准确率已经达到 91.4%,但最强与最弱 residue 仍差 19.14 个百分点。V4.1-Flash 把差距缩到 6.09 个百分点,却仍表现出整齐的奇偶分层:四个偶数 residue 全部高于四个奇数 residue。

V4 的 residue rr 与 r+4r+4 属于同一相位。四个模型中,这两组准确率的平均绝对差只有 1.07 至 1.95 个百分点,远小于同一周期内部的峰谷差。这一对照说明曲线确实锁定在压缩步长,而不是八组数据偶然形成锯齿。

实验同时暴露了一个证据边界#

大型模型实验通过外部 filler 整体平移 16,000 条记录,因此目标和 distractor 的相位一起变化。它严谨控制了总长度、query 位置与目标绝对深度,却不能单独断言波动完全来自目标 key 的相位;distractor 集体换相位也可能贡献一部分变化。

论文没有掩盖这个限制,而是在受控模型中增加 In-sequence Padding:不整体平移记录,而是在记录之间插入不同长度的 spacer,让目标相位变化、distractor 不再同步移动。两种协议都出现与步长一致的周期性,才把“目标与所有干扰项共同移动”的替代解释压下去。对于生产模型,40.23 个百分点应理解为严格条件下测得的 residue 差距,而不是已经完全分离出的单 token 因果效应。

为什么不是普通的位置偏差#

DeepSeek-V4 同时包含稀疏选择、压缩、局部精确窗口、层间混合等多种机制。只在一个大模型上看到周期,无法证明压缩本身是充分原因。论文因此采用 Qwen3-0.6B 的 28 层、1024 隐藏维、16 个 query head 骨架,构造一组除注意力记忆形式外尽量匹配的模型:三组 full-attention 基线和 23 组分块压缩变体。

这部分工作涉及从头得到受控模型,但它在文章中的角色只是因果对照:通过只替换 KV 记忆结构,观察周期是否随压缩几何变化,而不是提出新的训练流程。

受控 NIAH 使用 64 个随机 animal-name 单 token 对,目标是完整词表上的 next-token accuracy。为了在 S∈{4,6,8,12}S\in\{4,6,8,12\} 的不同模型之间比较,源 key 位置统一按最小公倍数 24 分组。每个逻辑样本生成 24 个相位副本,目标位置分布的一阶、二阶矩以及 query 位置在组间匹配。

全注意力与多种分块压缩核的相位准确率对比
全注意力与多种分块压缩核的相位准确率对比

图源:论文 Figure 3。面板 a 的三条 full-attention 基线整体较平;面板 b 至 j 的压缩模型出现重复峰谷。横轴统一为位置模 24,所以 S=4S=4 的形状重复 6 次,S=6S=6 重复 4 次,S=8S=8 重复 3 次,S=12S=12 重复 2 次。

受控实验排除了四个看似自然、实际不充分的解释。

解释一:只是窗口边界把 key 和 value 拆开#

在 W8/S8 的相邻 key-value 任务中,只有 key 位于相位 7 时,紧随其后的 value 才落入下一个窗口。若边界切分是唯一原因,相位 0 至 6 都在同一窗口内,准确率应大致一致。

实际并非如此:相位 0 至 6 之间仍相差超过 50 个百分点。边界确实可能让最后一个相位更难,但无法解释窗口内部的巨大差异。论文因此把总现象拆成两部分:

  • boundary asymmetry:信息单元跨越窗口边界时,K 与 V 被写进不同摘要;
  • within-window asymmetry:即使信息单元完整落在一个窗口内,不同偏移仍被不等质量地保存和读取。

解释二:周期来自 RoPE#

RoPE 本身带有旋转相位,容易让人怀疑周期波动是位置编码混叠。去掉 RoPE 的压缩模型仍然出现与步长一致的弱点,因此 RoPE 既非必要条件,也不能独立解释观测周期。它可能改变具体曲线,却不是周期结构的来源。

解释三:学习出来的门控偏置是唯一原因#

把门控固定为均匀平均后,相位差从参考模型的 75.3 个百分点缩到 19.2 个百分点,但没有消失。也就是说,门控的静态偏好能够放大窗口内不均匀,却不是相位敏感性的必要条件。均匀平均仍会让多个 token 在同一有限维摘要中相互干扰;后续网络如何读出混合信息,也可能形成偏移相关差异。

解释四:周期由窗口宽度决定#

固定 W=8W=8,把步长设为 4、6、8,观测周期相应约为 4、6、8;W4/S4 与 W8/S4 都呈现四 token 周期,W12/S12 则约为十二 token 周期。重叠窗口 S<WS<W 也没有消除现象。实验因此支持

Pweak spot≈S,P_{\text{weak spot}}\approx S,

其中 Pweak spotP_{\text{weak spot}} 是准确率曲线的主周期。这里的“约等于”不是说每个周期的波形完全相同,而是峰谷结构以步长重复。

最有工程警示意义的一组结果来自 8 KV heads:W8/S8 压缩模型在平均准确率和验证损失上几乎追平 full-attention 基线,但最差 residue 只有 9.9%,而基线最差 residue 为 58.4%。平均质量相近不等于可靠性相近;压缩模型可能把错误集中到少数固定相位。

因果干预揭示的相位专门化#

准确率曲线只能说明输入相位与输出相关。要追问模型内部“谁负责哪个相位”,论文对 KV head 做 mean-replacement knockout,也就是把某个 head 在被干预位置的输出替换成它在独立校准集上的平均输出。

为什么不直接置零?某一 head 的正常激活可能具有非零均值,粗暴置零会把网络推离常见激活分布,测到的既有信息删除效应,也有异常输入效应。均值替换保留典型基线,只清除当前提示词特有的信息,例如“被查询 key 对应哪个 value”。如果替换后某相位准确率下降,可以把下降更可信地解释为该 head 的提示词特异输出对该相位检索有因果贡献。

设未干预时相位 rr 的准确率为 A0(r)A^0(r),敲除组件 cc 后为 Ac(r)A^c(r)。图中使用相对准确率变化

Δc(r)=100⋅Ac(r)−A0(r)A0(r).\Delta_c(r)=100\cdot\frac{A^c(r)-A^0(r)}{A^0(r)}.

归一化是必要的:若某个弱相位的原始准确率已经很低,绝对值能继续下降的空间较小;直接比较百分点会低估该相位对某组件的依赖。Δc(r)<0\Delta_c(r)<0 表示干预损害检索,越负说明依赖越强。

全注意力与压缩模型中的 KV 头相位专门化
全注意力与压缩模型中的 KV 头相位专门化

图源:论文 Figure 4。每行对应一个层或 KV head 的干预,每列对应源 key 的位置余数;红色表示准确率下降。full-attention 基线主要呈横向条纹,即关键层对各相位影响相似。W8/S8 压缩模型与 DeepSeek-V4-Flash-Base 则出现明显的列间差异:某些 head 只对少数相位重要,且图案随压缩步长重复。

论文把这种现象称为 phase specialization,即不同注意力组件不对所有窗口偏移一视同仁,而是分担不同相位的信息检索。这个定义只描述因果贡献的相位依赖,不预设原因一定是窗口边界、门控、RoPE 或某种特定 kernel。

在受控模型中,干预发生在最后的 scoring position:与某 KV head 对应的一组 query-head 输出被替换为校准均值,其他 token 位置不变。以 16 个 query head、4 个 KV head、每头 value 维度 128 为例,一次替换涉及共享同一 KV head 的 4 个 query-head 向量,共 512 维。DeepSeek-V4 无法使用完全相同的内部接口,因此论文在 query 后缀的一段位置替换整层注意力输出;这意味着两类热图的干预粒度并不相同,适合比较模式,不宜把色值逐格当成同一量纲。

门控偏好怎样对齐因果作用#

W8/S8 参考模型的 K、V 分支具有分开的标量门控,并且每个窗口偏移拥有独立参数。由于 W=SW=S,偏移 ii 就对应相位 ii。如果某个 head 的 key 门控总偏爱偏移 2,value 门控总偏爱偏移 3,那么它正好擅长保存“位于相位 2 的 key 及其后继 value”。

“门控尖锐”还需要区分两种情况:

  • 静态集中:不论输入内容是什么,门控总偏爱固定偏移;
  • 输入依赖集中:每个窗口都只挑少数位置,但挑中的位置随内容变化。

只有前者会把 head 固定绑定到压缩相位。论文用熵的指数,即 effective number of offsets,量化门控到底覆盖多少个偏移。对窗口门控概率向量 α∈RW\alpha\in\mathbb{R}^W,Shannon 熵为

H(α)=−∑i=0W−1αilog⁡αi,H(\alpha)=-\sum_{i=0}^{W-1}\alpha_i\log\alpha_i,

有效偏移数为

Neff(α)=exp⁡(H(α)).N_{\mathrm{eff}}(\alpha)=\exp(H(\alpha)).

若 α\alpha 是 one-hot,熵为 0,Neff=1N_{\mathrm{eff}}=1;若完全均匀,αi=1/W\alpha_i=1/W,则 H=log⁡WH=\log W,Neff=WN_{\mathrm{eff}}=W。它比“最大权重”更全面,因为会把剩余概率如何分散也计入。

静态集中度看平均门控再算熵:

Nstatic=exp⁡(H(E[α])).N_{\mathrm{static}}=\exp\left(H\left(\mathbb{E}[\alpha]\right)\right).

每窗口集中度则先逐窗口算有效偏移数再平均:

Nwindow=E[exp⁡(H(α))].N_{\mathrm{window}}=\mathbb{E}\left[\exp(H(\alpha))\right].

一个 head 若每次都 one-hot,但在不同输入上均匀轮换所有偏移,就会有 Nwindow≈1N_{\mathrm{window}}\approx1、Nstatic≈WN_{\mathrm{static}}\approx W。因此“每次选得很尖”不能推出“固定偏爱某个相位”。只有两个量都向 1 靠近,才是跨输入保持的静态专门化。

门控从近似均匀分布演化为静态偏移偏好
门控从近似均匀分布演化为静态偏移偏好

图源:论文 Figure 5。左图把每个 key gate 放在两种有效偏移数构成的平面中;右上角接近 (8,8)(8,8) 代表近似均匀,沿对角线向左下移动代表静态集中。中图显示第 14、10、9 层分别偏爱窗口早、中、晚位置;右图表明相应 head 被敲除时,损失也集中在它偏爱的相位。

三个细节使这条证据链比简单相关更强。

第一,key gate 的峰值与 value gate 的峰值相差一个位置,正好对应实验中相邻的 key 和 answer,而不是两条任意曲线事后凑巧对齐。

第二,把位置相关的 gate 参数循环平移 kk 个 offset,窗口内准确率曲线也大致平移 kk 个相位。参数干预推动行为模式移动,方向与机制预测一致。

第三,四个随机种子都形成 4 至 6 个明显集中的 head,但具体层号和偏好相位随初始化变化;它们的 key gate 峰值达到均匀门控的 2 至 4 倍,敲除损害集中在对应相位。这符合“对称槽位在不同运行中自发分工”,而不是某个固定层被架构硬编码为相位 3 专家。

不过,门控并不是统一解释。均匀平均模型仍有相位差;重叠窗口与 DeepSeek-style vector gate 在折叠到相位后,门控曲线往往接近均匀;循环 gate 也无法修复跨窗口的边界相位。最稳妥的机制表述是:边界不对称与窗口内不对称共同产生现象,静态门控偏好是后者在部分模型中的一个可验证放大器。

理想化模型:相位专门化为何容易形成#

压缩器面对一个根本的信息论矛盾:一个摘要必须容纳 SS 个位置,而未来 query 未知。均匀混合看起来公平,却会稀释每个 token 与查询的匹配分数;集中保存一个位置牺牲覆盖面,却让命中该位置时的 key 匹配和 value 读出都更强。

论文用理想化的相邻 token 检索模型刻画这一张力。上下文由 LL 个不重叠块组成,每块 SS 个互异 token。query 从每块除最后位置外均匀抽取一个 token,目标是预测它的直接后继。第 hh 个 head 把块 ℓ\ell 压成

kh,ℓ=∑r=1Sph,ℓK(r)xℓ,r,vh,ℓ=∑r=1Sph,ℓV(r)xℓ,r.k_{h,\ell}=\sum_{r=1}^{S}p_{h,\ell}^{K}(r)x_{\ell,r}, \qquad v_{h,\ell}=\sum_{r=1}^{S}p_{h,\ell}^{V}(r)x_{\ell,r}.

pKp^K、pVp^V 都是 SS 维概率向量,并且必须在 query 揭示之前确定。若 head 选择位置 rr,就令 pK=erp^K=e_r、pV=er+1p^V=e_{r+1},完整保留一个相邻对。query 与压缩 key 的点积决定读取哪个块,压缩 value 再决定输出哪个后继。

在论文假设的近似正交、带公共分量的嵌入几何下,全局最优压缩会走向最大集中:每个 head 在每个块中选择一个位置,而不是均匀摊薄权重。直觉可以从信号幅度看出。若均匀平均 SS 个 key,目标 token 对摘要的独特贡献只有约 1/S1/S;value 端目标后继的贡献也约为 1/S1/S,两端共同作用时有效信号可能遭遇乘法式削弱。one-hot 选择对命中位置保留完整信号,但其他位置失去直接通道。

理论进一步说明,在只优化共享位置门控、从小随机扰动开始的简化条件下,每个 head 的 key gate 会固定选择某个 rhr_h,value gate 固定选择 rh+1r_h+1。这为静态相位专门化提供了一种形成路径:完全对称的偏移先被微小随机差异打破,胜出偏移得到更强梯度信号,随后优势被继续放大。

但这不是大型模型的完整解释。定理依赖固定嵌入、恒等 Q/K/V 映射、理想化几何、相邻二元检索与只优化门控等假设;它甚至不保证多个 head 会选择互补相位,不同 head 可以挤在同一个 rhr_h。因此,理论证明的是“静态集中在这些条件下可以成为优化吸引子”,而不是“任何真实压缩模型都必然按同一路径形成周期弱点”。

如何正确评测分块 KV Cache 压缩#

传统长上下文 benchmark 往往随机采样信息位置,再报告一个平均准确率。如果相位近似均匀,平均值会把强相位和弱相位抵消;若测试模板的 token 长度恰好总是步长的整数倍,数据甚至可能长期只覆盖少数相位。相位敏感性需要像测尾延迟一样单独报告最坏组,而不能只看均值。

一套最小可复现协议#

对压缩步长为 SS 的模型,一个最低限度的评测应包含以下步骤。

  1. 使用模型自身 tokenizer 做 token 级定位,记录目标信息起始 token 的位置 tt,不能用字符长度代替。
  2. 对每个逻辑样本构造至少 SS 个等价副本,使目标覆盖 ϕ=0,1,…,S−1\phi=0,1,\ldots,S-1。
  3. 固定总长度与 query 位置,并让各相位组的目标绝对位置、目标到 query 距离至少匹配均值和方差。
  4. 同时使用 outer padding 与 in-sequence padding。前者容易实现,后者用于打散 distractor 的同步相移。
  5. 除准确率外保留 gold-token probability 或 NLL。top-1 未翻转时,概率曲线可能已经暴露相位退化。
  6. 对同一个逻辑样本的相位副本做成组统计,置信区间按逻辑样本聚类,避免把高度相关的副本误当成独立样本。

设每个相位准确率为 ArA_r,建议至少报告四个量:

Aˉ=1S∑r=0S−1Ar,\bar A=\frac{1}{S}\sum_{r=0}^{S-1}A_r,Amin⁡=min⁡rAr,A_{\min}=\min_r A_r,Δphase=max⁡rAr−min⁡rAr,\Delta_{\mathrm{phase}}=\max_r A_r-\min_r A_r,σphase=1S∑r=0S−1(Ar−Aˉ)2.\sigma_{\mathrm{phase}} =\sqrt{\frac{1}{S}\sum_{r=0}^{S-1}(A_r-\bar A)^2}.

Aˉ\bar A 衡量平均可用性,Amin⁡A_{\min} 衡量最差相位,Δphase\Delta_{\mathrm{phase}} 给出最直观的峰谷差,σphase\sigma_{\mathrm{phase}} 则反映整条曲线的离散程度。若比较不同平均准确率的模型,可以再报告归一化差距 Δphase/Aˉ\Delta_{\mathrm{phase}}/\bar A,但不应舍弃原始百分点差,因为平均分很低时比值会被夸大。

若架构同时存在多个步长,例如不同层使用 S=4S=4 与 S=8S=8,测试周期至少取它们的最小公倍数;若不知道步长,可对逐 token 平移得到的准确率或 gold probability 序列做自相关或离散傅里叶分析,观察是否在短周期上存在显著峰值。频谱只能发现候选周期,最终仍需与真实压缩几何和对照模型核对。

不能只随机抖动一次#

随机加入 0 至 S−1S-1 个无意义 token 确实能打散固定相位,但单次随机抖动只把系统性故障变成随机故障。对单个请求,它仍可能落入弱相位;对安全评测,它还可能让同一提示词在不同运行中得到不可重复结果。

更可靠的做法是 phase sweep:同一语义输入覆盖全部相位,报告分布与最差值。若线上成本不允许全扫,可以在离线评测全扫,线上只对高风险或低置信请求做两个互补相位的冗余推理。后者增加计算量,并且两个相位的错误并不保证独立,因此只能作为待验证的系统策略。

模板本身也可能锁相#

许多推理服务在用户内容之前拼接固定 system prompt、角色标记、工具 schema 和 few-shot 示例。这些模板的 token 数决定用户内容从哪个相位开始。模板版本只改一个标点,后续所有事实的相位都会整体平移;反过来,模板长度若总是 SS 的整数倍,不同测试集可能看似多样,实际仍锁在同一组相位。

因此,模型升级或 tokenizer 变更时,应重新计算模板的 token 级相位;prefix cache 命中与否不会改变逻辑 token 位置,不应被误当成相位随机化。分块 prefill 的调度 chunk 也不等于模型压缩窗口:前者是服务系统如何分批执行,后者是模型怎样把 token 写成记忆。只有两者恰好共用边界时,才可能产生额外交互。分块预填充的调度含义可参考 Sarathi-Serve 完全拆解:分块 Prefill 与无停顿批处理如何兼顾吞吐和尾延迟。

对推理系统与模型设计的启示#

论文的核心贡献是诊断而非给出已经验证的通用修复。下面应区分“实验直接支持的结论”和“由结论推导出的设计方向”。

1. 把压缩可靠性纳入服务 SLO#

推理系统通常监控 TTFT、TPOT、吞吐、显存占用与平均任务质量。对分块压缩模型,还需要把 Amin⁡A_{\min} 或高分位损失纳入发布门槛。一个平均分略高但存在固定 40 个百分点盲点的模型,可能不如平均分稍低但各相位平坦的模型可预测。

这与延迟 SLO 的思想相同:平均延迟不能代替 P99,平均准确率也不能代替最差相位。模型卡应公开压缩步长、评测覆盖的相位数、每相位样本量与置信区间,避免只给一条聚合分数。

2. 压缩率之外还要看摘要覆盖是否均匀#

增加 KV head 数量不自动解决问题。论文中 8 KV heads 的压缩模型平均准确率接近基线,最差 residue 却大幅落后;多 head 还可能形成更尖锐的单相位专门化。真正需要约束的是不同 head 是否覆盖互补位置,以及联合读出能否让每个相位获得足够路径。

可研究的方向包括:对跨 head 的平均门控加入覆盖正则、限制静态偏移偏好、显式鼓励相位互补、为边界位置保留少量精确 KV、或者让窗口起点随层错开。这些方向尚未由论文证明能在同等压缩率下消除弱点。尤其是强制每个 head 都均匀可能损伤检索信号,因为理论和实验都提示锐利选择本身有功能价值;更合理的目标可能是“单 head 可专门化,但 head 集合覆盖均衡”。

3. 重叠窗口只能增加路径,不能保证消除周期#

S<WS<W 时,一个 token 出现在多个相邻窗口的不同 offset,直觉上能缓和单一边界的损失。受控结果显示,重叠窗口仍有以 SS 为周期的准确率变化,DeepSeek-style W8/S4 压缩核也未例外。因此,设计评审不能把“有重叠”直接等价为“无边界问题”。

重叠的代价也很明确:产生摘要的频率由 SS 决定,SS 越小,缓存条目与注意力读取越多。修复方案需要在最差相位准确率、平均准确率、KV 字节数和每 token 带宽之间画 Pareto 曲线,而不是只比较一个质量均值。

4. 保留精确旁路可能遮蔽,也可能修复弱点#

一些混合注意力会在压缩分支之外保留局部精确窗口,或对少量远端 token 提供精确稀疏通道。只要目标仍在局部窗口内,精确分支就可能掩盖压缩缺陷;一旦目标滑出局部区,周期弱点才突然显现。评测应覆盖从未压缩区过渡到已压缩区的边界,并分层观察 query 对各记忆分支的依赖。

反过来,少量精确旁路也可能是修复手段:对窗口边界 token、门控低覆盖 token 或高重要度 token 保留原始 KV。问题在于“重要度”是在未来 query 出现前估计的,错误选择会重演压缩器的盲点。H2O、SnapKV 一类淘汰方案与本文的固定分块压缩并不相同,不能因为都叫 KV Cache 压缩就推断它们拥有相同周期;每种结构都应按自己的离散边界重新测量。

5. 应用层可以利用相位等价变换做鲁棒性测试#

空白、注释、JSON 字段顺序或不影响语义的模板片段,都可能构成相位等价变换。测试平台可以自动生成 token 精确的平移副本,检查代码补全、RAG 引用、工具参数提取与安全策略是否随相位翻转。

但生产请求中不能随意插入看似无害的文本:额外 token 可能改变自然语言含义、代码行号、哈希、签名或结构化语法。最安全的测试对象是服务端明确忽略的 padding token 或经任务验证的等价模板,并且要确认 tokenizer 后确实只改变预期长度。

局限与开放问题#

第一,大模型证据集中在 DeepSeek-V4 与 V4.1 系列,受控证据来自 Qwen3-0.6B 骨架。论文足以证明现象真实存在,却不足以估计它在所有压缩模型、语言、任务与上下文长度上的普遍程度。

第二,真实模型的 128K NIAH 使用整体前缀平移,目标和 distractor 同时变相位;独立相移证据来自受控小模型。若要把“大模型 40.23 个百分点”完全归因于目标 source phase,还需要能独立操纵目标、保持其余记录相位不变的大规模实验。

第三,head knockout 证明组件贡献随相位变化,但干预本身有范围差异。受控模型替换 scoring position 的共享 KV-head 读出,DeepSeek-V4 替换一段 query suffix 上的层注意力输出。两者共同支持相位专门化模式,不能据此声称某个具体 DeepSeek head 的门控就是唯一根因。

第四,门控循环能移动窗口内弱点,却不能恢复跨窗口的边界相位;均匀平均也仍存在 19.2 个百分点差距。这说明“边界”和“窗口内读写不均匀”尚缺一个统一的定量模型。

第五,论文主要测精确单 token 检索与少量代码补全。摘要生成、长链推理、多轮工具调用、拒答一致性是否也有同周期风险仍待验证。生成任务的错误还会自回归传播:早期一个相位相关 token 翻转,后续轨迹可能完全分叉,不能只靠最终 exact match 还原起点。

第六,相位弱点与硬件 kernel 的关系尚未展开。现象来自模型定义中的压缩几何,不等同于 CUDA tile、warp 或内存对齐问题;但服务实现若通过 padding、分块预填充或批处理重排改变逻辑 token 序列,就可能间接改变相位。验证实现正确性时,应先区分数值 kernel 偏差与架构本身的相位偏差。

小结#

分块 KV Cache 压缩不只减少缓存条目,还悄悄给每个 token 增加了一个坐标:它相对压缩步长的相位 t mod St\bmod S。同一信息落在不同相位时,可能被写入不同窗口偏移、与不同邻居混合,并由不同 head 负责读回。

论文的证据链由四层组成:真实 DeepSeek-V4 系列出现与步长一致的周期翻转;只改变压缩结构的受控模型复现现象,full attention 基线保持平坦;mean-replacement knockout 揭示不同组件对不同相位的因果贡献;部分模型的静态门控偏好与其负责的检索相位对齐,门控循环还能推动准确率曲线同步平移。

最重要的工程结论不是“分块压缩不可用”,而是平均分不再足够。只要 KV 记忆按固定步长压缩,评测就应覆盖完整相位、报告最差组与峰谷差,并用独立相移协议排除 distractor 同步变化。压缩率、吞吐与平均质量之外,位置公平性本身也应成为长上下文推理系统的一项设计指标。

参考资料#

  1. Periodic Weak Spots: Phase Sensitivity from Chunked KV-Cache Compression
  2. DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence
  3. DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression
  4. Qwen3 Technical Report
  5. LoMA: Lossless Compressed Memory Attention
  6. Compressive Transformers for Long-Range Sequence Modelling
  7. Lost in the Middle: How Language Models Use Long Contexts
  8. RULER: What’s the Real Context Size of Your Long-Context Language Models?
  9. The Pitfalls of KV Cache Compression
  10. 作者博客:Periodic Weak Spots

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Periodic Weak Spots 完全拆解:分块 KV Cache 压缩为何产生周期性检索盲点
https://pinghaoyang.com.cn/aigc/posts/kv-cache-phase-sensitivity/
作者
平昊阳
发布于
2026-10-14
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
平昊阳
乘长风,破巨浪, 展鸿图于未央!
--
总访问量
--
访客数
公告
欢迎来到我的个人博客!欢迎关注交流吖!
更多相关公告,见
「社交-留言」。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
站点统计
文章
218
分类
26
标签
300
总字数
2,496,186
运行时长
0 天
最后活动
0 天前

文章目录

你打开了观测窗口。
这里有代码、风和一点萤火;请温柔调试,别惊动生产环境。