Back to News

ByteDance Seed: DeepSeek-V4 accuracy varies every 4 tokens due to chunked KV cache compression

#deepseek#kv-cache#llm#bytecode

ByteDance Seed researchers found that DeepSeek-V4's retrieval accuracy fluctuates periodically every 4 tokens, with up to 40.2 percentage points difference in 128K long-context tests. They traced the issue to DeepSeek-V4's chunked KV cache compression, a long-context optimization technique. In a code completion experiment, padding length modulo 4 determined whether the model output the correct answer.

Coverage timeline

  1. 量子位量子位

    字节找到了DeepSeek时强时弱的原因 闻乐 2026-10-09 15:11:55 来源: 量子位 答不答得对,得看Token站位 闻乐 发自 凹非寺 量子位 | 公众号 QbitAI DeepSeek的神鬼二象性被字节Seed团队逮到了。 同一道题,什么都没改,只在前面多塞几个无关紧要的字符,模型突然就不会了??? 而且还不是偶尔抽风。 Seed研究人员发现,DeepSeek-V4的表现竟然会随着信息的输入位置, 每隔4个Token周期性变化 。 啥意思?模型记不记得住一件事,居然还要看这件事在输入里站哪儿?? 前面多两个Token,答案可能从错变对,再多两个,又给你改回去。 好好好,模型答题也开始讲究站位了。 在128K长上下文检索测试中,研究人员发现,同一条信息只是换了个位置,DeepSeek-V4系列模型的检索准确率 最高就能拉开40.2个百分点 。 团队进一步发现,这个问题与DeepSeek-V4采用的一项长上下文优化技术有关—— 分块KV Cache压缩 。 这项技术本来是为了让模型处理长文本更省内存、更高效。 结果压缩之后,倒让模型时神时鬼了(doge)。 多两个Token,DeepSeek突然就答对了 字节Seed研究人员最开始是拿DeepSeek自己的代码做了个实验。 测试对象是 DeepSeek-V4-Flash-Base 。 他们从DeepSeek-V4的官方推理代码中截取了一段FP8量化函数,让模型补全最后一个Token。 任务的正确答案应该是8,因为这段代码需要完成FP8相关的类型转换。 但模型有时偏偏觉得应该补成32。 为了搞清到底咋回事,研究人员在代码前面加了一段纯装饰性的文档字符串,里面放着一些重复的等号。 然后,他们开始调整等号的数量。 代码本身没改、要补全的位置没改、正确答案当然也没改……唯一的变化,就是前面多了这几个没什么实际意义的Token。 结果,DeepSeek的答案开始反复横跳。 当填充长度落在某些位置时,模型更倾向于回答错误的32。 往前挪一两个Token,又开始倾向于正确的8。 再继续挪,错误答案又回来了—— 整个过程以4个Token为周期重复 。 更具体地说,在论文测试的16种填充长度中,当长度模4的余数为0或1时,模型倾向于错误答案32;余数为2或3时,则倾向于正确答案8。 研究人员还统计了模型给两个候选答案