导读:分块KV Cache压缩让长上下文更省显存,却可能让信息因所处“相位”不同而被区别对待;最高40.2个百分点的差距,藏在平均分看不见的位置。这不是“DeepSeek随机失灵”的简单故事,而是长上下文效率与信息保真之间一次很具体的工程取舍。
同一道代码补全题,代码逻辑、问题和正确答案都没变,只在最前面增减几个没有实际含义的字符,模型给出的答案概率却会明显翻转。字节Seed团队把这种与压缩窗口相对位置有关的现象命名为Phase Sensitivity,相位敏感性。

01 / 先看结论:弱点不是随机的,而是按压缩步长周期出现
论文研究的是采用分块KV Cache压缩的长上下文模型。模型把连续Token按窗口压成更少的缓存条目,以降低显存和注意力计算成本。问题在于,同一条信息落在压缩窗口里的不同位置时,后续被检索出来的难度可能不同。
研究团队把Token相对压缩窗口边界的位置称为“相位”。如果压缩步长是4,那么信息会处在4种相位之一;实验发现,性能波动的周期也会接近4个Token。换成步长6或8,波动周期也跟着变化。

| 观察对象 | 最大位置差异 | 说明 |
|---|---|---|
| DeepSeek-V4-Flash-Base | 40.2个百分点 | 128K键值检索,不同相位准确率差异 |
| DeepSeek-V4-Pro-Base | 34.8个百分点 | 基础模型仍有明显周期波动 |
| V4 Flash / Pro后训练版本 | 19.1 / 14.8个百分点 | 后训练显著缓解,但没有完全消失 |
| DeepSeek-V4.1-Flash-0910 | 6.1个百分点 | 新版差异继续缩小,周期约2个Token |
不要误读:40.2个百分点是特定128K检索实验中不同信息位置之间的最大差异,不是DeepSeek V4所有任务的整体准确率下降40.2%。
02 / 多两个Token,代码补全概率为什么会反过来?
团队从DeepSeek-V4-Flash-Base的代码补全行为入手。测试片段与FP8类型转换有关,最后一个Token的正确答案应为“8”,错误候选是“32”。研究人员只在代码前加入由等号组成的装饰性文档字符串,然后逐步改变前缀长度。

在论文展示的一组位置中,错误答案“32”的平均概率达到71.3%,正确答案“8”只有26.4%;换到另一组位置后,正确答案“8”的平均概率升至91.5%,错误答案降到7.2%。
变化以4个Token为周期重复:填充长度模4余0或1时更偏向错误答案,余2或3时更偏向正确答案。内容没有变,改变的是关键信息相对压缩窗口的位置。
03 / 128K“大海捞针”:同一条信息换位置,最多差40.2个百分点
单个代码案例可能只是偶然,因此团队又构造了约128K Token、包含约1.6万个键值对的检索任务。键值关系、提问和总长度保持不变,只调整目标信息相对压缩窗口边界的位置。

DeepSeek-V4-Flash-Base与Pro-Base都出现明显的周期曲线。后训练版本的波动减小,新版V4.1-Flash进一步缩小差异,说明训练与架构迭代可以缓解相位敏感性,但平均分依旧可能遮住某些位置的薄弱点。
更关键的是,这并不只是“键和值刚好被窗口切开”的边界问题。即使关键信息完整落在同一个压缩窗口里,不同相位之间仍可能出现明显差异,说明问题发生在信息如何写入压缩缓存、以及之后如何被读出的整个过程中。
04 / KV Cache为什么要压缩?因为长上下文实在太贵
大模型生成每个新Token时,需要读取历史Token对应的Key和Value。上下文越长,KV Cache占用的显存越大,注意力计算也越重。代码仓库、长文档和持续数小时的Agent轨迹,很容易把缓存推到部署瓶颈。
分块压缩会把连续Token聚合成更少的缓存条目。例如步长为4时,大致每4个位置产生一个压缩条目。这样可以显著减少长程缓存和检索候选数量,让超长上下文更接近可部署状态。
| 方案 | 优势 | 代价 |
|---|---|---|
| 全注意力 / 不分块压缩 | 保留更细粒度的位置与内容信息 | 长上下文显存和计算成本更高 |
| 分块KV Cache压缩 | 缓存更小,长程注意力更高效 | 可能引入周期性相位弱点 |
| 后训练与新版架构 | 可以显著缩小相位差异 | 仍需逐相位评测,不能只看均分 |
05 / 从头训练对照模型:周期跟着步长走
为了排除某个DeepSeek模块或位置编码单独造成问题的可能,团队基于Qwen3-0.6B架构从头训练多组模型,只改变KV Cache压缩方式,并设置全注意力模型作为对照。

结果显示,接受测试的分块压缩模型都会出现与压缩步长对应的周期变化;全注意力基线没有同等程度的周期波动。调整窗口大小时,主周期主要跟随压缩步长,而不是简单跟随窗口宽度。
即使移除RoPE位置编码,或把可学习压缩权重替换为简单平均,现象依旧存在。这说明相位敏感性不是某个单一组件的偶发故障,而可能是分块压缩设计普遍需要面对的副作用。
06 / 模型内部出现了“相位专门化”
研究人员进一步对注意力组件做因果干预,观察移除不同层和注意力头后,各相位的检索能力怎样变化。结果发现,不同组件对不同相位的贡献并不对称:有些头更擅长处理窗口中的某几个位置,另一些头则负责其他位置。


论文把这种现象称为Phase Specialization,相位专门化。简化理论模型还显示,训练中的梯度流可能推动压缩模块形成稳定的位置偏好。换句话说,周期弱点并非纯随机噪声,而可能是模型学习“怎样把多个Token压进少量缓存”时自然形成的结构。
07 / 普通用户怎么减少踩坑?不要迷信“前面加两个字符”
既然位置会影响结果,最直觉的做法是给提示词增加随机填充。但这不是可靠修复:你通常不知道模型采用什么压缩配置,也不知道关键内容会落到哪个相位;输入经过模板、系统提示词和分词后,位置还会再次变化。
更实用的做法是:
- 把关键约束靠近任务末尾再总结一次:不要只在几十万Token之前出现一次。
- 结构化重复关键信息:对代码接口、数字、格式要求和禁用项,使用短清单再次确认。
- 长文档先检索再回答:让RAG或工具把相关片段重新放进近期上下文,减少完全依赖远距离记忆。
- 高风险任务做多位置复测:同一内容使用略有不同的前缀或模板重复测试,结果不一致时不要直接采信。
- 不要把一次答对当成稳定能力:尤其是超长代码库、合同数字、科研数据和Agent日志。
08 / 开发者和评测者应该改什么?
- 按相位分组报告:同一条“针”放到所有压缩相位,分别报告最好、最差与均值。
- 随机化信息偏移:训练和评测时改变前缀长度,避免数据总落在少数有利位置。
- 检查后训练是否真正改善最差相位:平均分上升,不代表周期弱点已经消失。
- 为关键事实保留近期副本:推理系统可以把检索到的重要片段重新注入滑动窗口。
- 把稳定性纳入SLA:超长上下文产品不仅要测能装多少Token,还要测位置变化后的输出一致性。
09 / 做视频网观点:1M上下文是容量指标,不是可靠性承诺
上下文窗口能容纳100万Token,只能说明模型和推理系统允许输入这么多内容,不代表每个位置的信息都能被同等稳定地取回。分块KV Cache压缩让长上下文更便宜、更快,这是明确的工程价值;相位敏感性则提醒我们,压缩不是没有信息代价。
这项研究最重要的意义不是告诉用户“DeepSeek不可靠”,而是提出一种更公平的评测方式:不要只把针放一次,也不要只看平均分,要让同一信息跨越所有压缩相位。V4.1与后训练版本已经显示差异可以明显缩小,说明问题可优化,但必须先把它测出来。
一句话总结:分块KV Cache压缩换来了长上下文效率,却可能让模型对不同位置的信息“厚此薄彼”;真正可靠的长上下文,需要同时报告容量、成本和最差位置表现。
相关站内内容
DeepSeek V4.1 Flash更新解析:https://www.zuoshipin.com/article/34481
DeepSeek V4 Flash本地部署与显存分析:https://www.zuoshipin.com/article/23627
DeepSeek V4 Flash Vision架构拆解:https://www.zuoshipin.com/article/30734
FreeToken站内导航:https://www.zuoshipin.com/link/23626.html
论文入口
Periodic Weak Spots:Phase Sensitivity from Chunked KV-Cache Compression






