同一句問題,什麼都不改,只喺前面多塞幾個冇意義嘅字符,DeepSeek 突然就答唔對了。仲唔係偶爾抽風,而係每隔幾個 Token 就重複一次。呢個嘅「神鬼二象性」,今趟俾字節 Seed 團隊揾到原因。

兩個等號,答案就橫跳

研究人員最初做嘅實驗,係拿 DeepSeek-V4-Flash-Base 補全一段代碼嘅最後一個 Token。正確答案係 8,但模型有時偏偏想補 32。佢哋只喺代碼前面加了一段純裝飾性嘅 docstring,入面放住幾個重複嘅等號,然後開始調整等號數量。

代碼本身冇改、要補全嘅位置冇改、正確答案冇改,唯一改變嘅就係前面呢幾個冇實際意義嘅 Token 數量。結果模型嘅答案以 4 個 Token 為週期反覆橫跳。

論文測試咗 16 種填充長度,當長度模 4 餘 0 或 1 時,模型傾向錯誤答案 32;餘 2 或 3 時,傾向正確答案 8。錯誤答案喺某組位置嘅平均機率達 71.3%,而正確答案喺另一組位置嘅平均機率升到 91.5%。前面幾個無關字符嘅長度變化,足以令模型對同一句問題產生截然不同嘅判斷。

長上下文測試:換個位置,準確率拉開 40 點

為驗證問題嘅普遍性,Seed 團隊喺 128K Token 長上下文、約 1.6 萬個鍵值對嘅「大海撈針」任務上,調整目標資料相對於壓縮窗口邊界嘅位置。

DeepSeek-V4 系列嘅準確率曲線呈現明顯週期性起伏,不同位置之間最大準確率差距達到:

  • DeepSeek-V4-Flash-Base:40.2 個百分點
  • DeepSeek-V4-Pro-Base:34.8 個百分點
  • 後訓練版本 V4-Flash-0731 縮小到 19.1 個百分點
  • V4-Pro-0813 縮小到 14.8 個百分點
  • V4.1-Flash-0910 降至 6.1 個百分點,但週期性差異依然存在

DeepSeek-V4 嘅波動週期係 4 個 Token,V4.1 則變成 2 個 Token,剛好對應兩代模型嘅 KV Cache 壓縮步長。

問題出喺分塊 KV Cache 壓縮

大模型處理長上下文時需要保留歷史 Token 嘅 Key、Value 資訊,上下文愈長,KV Cache 嘅記憶體開銷愈大。DeepSeek-V4 因此採用分塊 KV Cache 壓縮,將連續 Token 分成窗口後再壓縮成更少嘅緩存條目,以節省記憶體。

但 Seed 團隊發現問題就藏喺呢個分塊過程入面:同一條資訊落在窗口嘅第 1、2、3 或 4 個位置,壓縮時嘅條件就唔同。論文將呢種相對於壓縮窗口邊界嘅位置稱為 Phase(相位),呢種模型對唔同相位資訊存在系統性檢索差異嘅現象,命名為 Phase Sensitivity(相位敏感性)。

研究人員仲發現,即使 Key 同 Value 都落在同一個壓縮窗口入面,唔同位置嘅檢索準確率差距亦好大。呢問題唔單止係「資訊被切喺兩個窗口之間」,而係涉及模型點樣將資訊寫入壓縮緩存、之後又點樣讀取。

自己訓練模型驗證

為進一步確認,Seed 團隊以 Qwen3-0.6B 架構為基礎,由頭訓練咗一批模型,構造多種 KV Cache 壓縮方案,並設冇分塊壓縮嘅全注意力模型作對照,重點只改壓縮機制。

結果,所有接受測試嘅分塊壓縮模型,都出現與壓縮步長對應嘅週期性變化;全注意力基線模型則冇出現同等程度嘅週期性。即使調窗口大小、調壓縮步長(步長 4 就以約 4 個 Token 為週期)、甚至唔用 RoPE 位置編碼、將可學習壓縮權重換成簡單平均,呢種現象依然存在——分塊壓縮呢種設計本身,就可能引入週期性嘅檢索弱點。

Seed 團隊進一步對注意力頭進行干預,發現唔同注意力頭對唔同相位嘅貢獻並唔一樣,呢種內部分工稱為 Phase Specialization(相位專門化)。論文透過簡化理論模型分析,指出梯度流可能推動壓縮模組形成穩定嘅位置偏好,解釋咗呢種週期性並非隨機噪聲。

模姐驗嚇貨

呢件事最關鍵,係揭示咗一個普通 Benchmark 好難直接照出嘅問題:常規評測通常會將大量測試結果匯總成一個平均分,如果模型喺某些位置表現很好、另一些位置明顯掉隊,最後算出嚟嘅平均成績可能仲係唔錯。

模姐驗嚇貨:呢篇嘅研究價值,唔止係揭發咗 DeepSeek 嘅個例,而係指出咗採用分塊 KV Cache 壓縮嘅模型,評估時唔能只看整體檢索準確率,要將同一條資訊放到唔同壓縮相位上分別測。後訓練同架構迭代確實能縮小差距(由 40.2 降至 6.1 個百分點),但週期性差異依然存在,意味呢個係架構層面嘅系統性問題,唔係一個 bug 就可以修好。

論文:arXiv:2609.36322

模姐|深度調教