從長上下文瓶頸,走到 Kimi Delta Attention
這不是把 softmax 換成 ReLU 的故事,而是一條從「可定址全局檢索」走向「固定大小壓縮記憶」,再透過 KDA 與 global MLA 混合取得效率與能力平衡的設計路線。
現象與場景:長上下文為什麼昂貴?
當序列長度 T 擴大,full attention 的核心運算要處理 T × T 的關聯矩陣;自回歸推論時,歷史 key/value 也要隨上下文保留。這是 KDA 類機制要解決的主要場景。
運算瓶頸
每個 query 都要與大量歷史 key 比較,核心 attention 成本隨 T 呈二次成長。
記憶體瓶頸
Full attention 需要保留可直接查詢的歷史表示,cache 隨 token 數增加。
替代方向
把歷史壓縮進固定大小 state,降低長序列推論成本;但精確 retrieval 會更困難。
Full Attention:每次直接查看全部歷史
對目前 query 而言,Full Attention 會計算它與所有可見歷史 key 的相似度,經縮放、causal mask 與 softmax 正規化後,再對 value 做加權求和。
目前 token
加權 value 輸出
- X ∈ ℝT×dmodel,Q、K ∈ ℝT×dk,V ∈ ℝT×dv。
- QKT 的維度是 T × T;causal mask M 將未來位置設為不可見。
- 除以 √dk 是為了控制內積尺度,避免 softmax 過早飽和。
- 強項是保留可直接定址的歷史,適合精確 retrieval、copying 與細粒度全局關聯。
展開 softmax 權重與複雜度
Mti = 0(i ≤ t),Mti = −∞(i > t)
因此 ati ≥ 0 且 Σi≤tati = 1。對所有 T 個 query 計算所有 key 的內積,QKT 約需 O(T²dk),再乘 V 約需 O(T²dv),因此 attention-core 合計為 O(T²(dk+dv));KV cache 則約為 O(T(dk+dv))(每層、每個 head 的簡化表示)。
線性記憶:token 持續增加,但 state 尺寸固定
歷史不是逐 token 保留,而是被壓縮到固定大小矩陣 state。這是速度與記憶體優勢的來源,也是精確 retrieval 能力受限的來源。
outer product
從 state 讀取
不回頭掃描所有 token
矩陣觀點與維度
qt, kt ∈ ℝdk,vt ∈ ℝdv,St ∈ ℝdk×dv。StT 可視為從 key-space 到 value-space 的線性記憶映射。
由 recurrence 展開成歷史加權和
⇒ StTqt = Σi≤tvi(kiTqt)
這說明 state 讀取仍是對歷史 value 的加權組合,只是歷史已先被聚合進固定大小矩陣;此簡化式沒有 softmax 正規化。
KDA 單步更新:Decay → Predict → Error → Update
KDA 先對舊 state 做 channel-wise decay,再以目前 key 讀出預測值,計算 prediction error,最後只把尚未記好的部分寫回 state。比較的不是上一個 value 與現在 value,而是「舊記憶對目前 key 的預測」與真正 value。
- qt, kt ∈ ℝdk;vt, v̂t, et ∈ ℝdv;St ∈ ℝdk×dv。
- αt ∈ (0,1]dk:每個 key-feature channel 的衰減率。
- βt ∈ [0,1]:此簡化單 head 表達中的 delta correction 更新強度。
- et = vt − v̂t:真正的修正訊號。
從四步更新推導合併公式
v̂t = Ṡt−1Tkt
et = vt − v̂t
St = Ṡt−1 + βtktetT
將 et 與 v̂t 代回:
= (I − βtktktT)Ṡt−1 + βtktvtT
Delta rule 從哪裡來?
∇SLt = kt(STkt − vt)T
對這個 associative-memory loss 做一步梯度下降,就得到沿 kt 方向修正 prediction error 的 delta update。KDA 再把 channel-wise decay 加在更新之前。
不是「局部 vs 全局」,而是「可定址歷史 vs 壓縮歷史」
兩邊都能受久遠 token 影響;真正差別在於,full attention 仍保留 token-level 地址,而 KDA 將歷史合併到固定容量 state。
Full attention / MLA
保存可直接查詢的歷史表示,所以更適合精確 retrieval、copying、對某個舊 token 的重新定位。
KDA
有全歷史 receptive field,但過去資訊被多次 decay、projection 與 correction 後壓縮進固定 state。
3 × KDA + 1 × Global MLA:把效率與精確檢索放在同一條路徑
大量 KDA 層負責低成本壓縮記憶,週期性的 global MLA 層提供全局細粒度檢索。這是 Kimi Linear 最重要的架構直覺。
75% / 25% 的正確含義
指 token-mixing layers 的配比,不等於參數量降低 75%,也不等於端到端算量與速度嚴格按 75/25 分配。
理論 FLOPs 與實際速度
在超長上下文下,KDA attention-core 的理論差距可以非常大;但整體模型還包含 projection、MoE/FFN、normalization、記憶體存取與 global MLA 層,因此端到端通常是數倍改善。
常見誤解與修正
以下整理最常見的概念混淆,並以較精確的說法逐一修正。
「KDA 就是 softmax 換 ReLU」
錯。那是部分 kernelized linear attention 的路線;KDA 來自 DeltaNet / fast-weight associative memory 路線。
「KDA 只能看局部」
錯。KDA 具有全歷史 receptive field,但過去資訊以固定容量 state 壓縮保存。
「比較 vₜ₋₁ 與 vₜ」
錯。真正的 error 是 vₜ − v̂ₜ,其中 v̂ₜ 是舊 state 對目前 key 的預測。
「75% 表示整體壓縮 75%」
錯。75/25 主要指 KDA 與 global MLA 的 token-mixing layer 配比。
「所有 Kimi 模型都使用這個架構」
不應一概而論。這裡指 Kimi Linear,不應直接外推到所有 Kimi 系列模型。
「理論少千倍,整體就快千倍」
錯。理論比值通常只比較 attention-core;完整模型仍有大量其他成本。