大學理工程度|工程數學・線性代數・矩陣計算

從長上下文瓶頸,走到 Kimi Delta Attention

這不是把 softmax 換成 ReLU 的故事,而是一條從「可定址全局檢索」走向「固定大小壓縮記憶」,再透過 KDA 與 global MLA 混合取得效率與能力平衡的設計路線。

O(T²)Full attention 核心成本
O(T)KDA attention-core 對序列長度近似線性
3 : 1KDA : global MLA 的 token-mixing layer 比例
一條主線:從現象到架構
問題場景長上下文的算量與記憶體壓力
Full Attention可定址的全局檢索
線性記憶固定大小 state
KDADecay → Predict → Error → Update
Kimi Linear3 × KDA + 1 × global MLA
01 · Motivation

現象與場景:長上下文為什麼昂貴?

當序列長度 T 擴大,full attention 的核心運算要處理 T × T 的關聯矩陣;自回歸推論時,歷史 key/value 也要隨上下文保留。這是 KDA 類機制要解決的主要場景。

QKT ∈ ℝT×T

運算瓶頸

每個 query 都要與大量歷史 key 比較,核心 attention 成本隨 T 呈二次成長。

KV cache ≈ O(T(dk+dv))

記憶體瓶頸

Full attention 需要保留可直接查詢的歷史表示,cache 隨 token 數增加。

固定 state:St ∈ ℝdk×dv

替代方向

把歷史壓縮進固定大小 state,降低長序列推論成本;但精確 retrieval 會更困難。

02 · Standard Attention

Full Attention:每次直接查看全部歷史

對目前 query 而言,Full Attention 會計算它與所有可見歷史 key 的相似度,經縮放、causal mask 與 softmax 正規化後,再對 value 做加權求和。

動畫:qₜ 逐一掃描歷史 key
Query qₜ
目前 token
T × T 權重可逐 token 定址
Attention matrix
softmax 權重
oₜ
加權 value 輸出
自動播放
投影Q = XWQ,  K = XWK,  V = XWV
矩陣式O = softmax((QKT/√dk) + M)V
單一 tokenot = Σi≤t ativi
  • X ∈ ℝT×dmodel,Q、K ∈ ℝT×dk,V ∈ ℝT×dv
  • QKT 的維度是 T × T;causal mask M 將未來位置設為不可見。
  • 除以 √dk 是為了控制內積尺度,避免 softmax 過早飽和。
  • 強項是保留可直接定址的歷史,適合精確 retrieval、copying 與細粒度全局關聯。
展開 softmax 權重與複雜度
ati = exp(qtTki/√dk) / Σj≤t exp(qtTkj/√dk)
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 的簡化表示)。

Full attention 的核心優勢,不只是「看得遠」,而是能重新對所有歷史 token 計算權重。
O(T²(dk+dv))attention-core
逐 token歷史可定址
隨 T 成長KV cache
03 · Recurrent Linear Memory

線性記憶:token 持續增加,但 state 尺寸固定

歷史不是逐 token 保留,而是被壓縮到固定大小矩陣 state。這是速度與記憶體優勢的來源,也是精確 retrieval 能力受限的來源。

動畫:token → K/V outer product → 固定 state → query 讀取
Token stream
x₁
已處理 token:0
K / V
outer product
State Sₜ
state 尺寸固定:dk × dv
qₜ
從 state 讀取
oₜ = Sₜᵀqₜ
不回頭掃描所有 token
自動播放
寫入St = St−1 + ktvtT
讀取ot = StTqt
展開ot = Σi≤t vi(kiTqt)

矩陣觀點與維度

qt, kt ∈ ℝdk,vt ∈ ℝdv,St ∈ ℝdk×dv。StT 可視為從 key-space 到 value-space 的線性記憶映射。

由 recurrence 展開成歷史加權和
St = Σi≤tkiviT
⇒ StTqt = Σi≤tvi(kiTqt)

這說明 state 讀取仍是對歷史 value 的加權組合,只是歷史已先被聚合進固定大小矩陣;此簡化式沒有 softmax 正規化。

若只是不斷相加,舊關聯不會被有選擇地覆寫,相似 key 也可能互相干擾。Delta rule 正是為了解決這個問題。
固定state 大小
O(Tdkdv)固定維度時對 T 線性
壓縮式歷史保存
04 · Kimi Delta Attention

KDA 單步更新:Decay → Predict → Error → Update

KDA 先對舊 state 做 channel-wise decay,再以目前 key 讀出預測值,計算 prediction error,最後只把尚未記好的部分寫回 state。比較的不是上一個 value 與現在 value,而是「舊記憶對目前 key 的預測」與真正 value。

互動動畫:點下方步驟,或讓它自動播放
Sₜ₋₁
舊記憶
α
Channel-wise decayDiag(αₜ)Sₜ₋₁
k
Predictv̂ₜ = Ṡₜ₋₁ᵀkₜ
e
Erroreₜ = vₜ − v̂ₜ
Sₜ
更新後記憶
自動播放

完整更新St = (I − βtktktT)Diag(αt)St−1 + βtktvtT
讀取輸出ot = StTqt
  • 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:真正的修正訊號。
從四步更新推導合併公式
t−1 = Diag(αt)St−1
t = Ṡt−1Tkt
et = vt − v̂t
St = Ṡt−1 + βtktetT

將 et 與 v̂t 代回:

St = Ṡt−1 + βtkt(vt − Ṡt−1Tkt)T
= (I − βtktktT)Ṡt−1 + βtktvtT
Delta rule 從哪裡來?
Lt(S) = ½‖STkt − vt‖²
SLt = kt(STkt − vt)T

對這個 associative-memory loss 做一步梯度下降,就得到沿 kt 方向修正 prediction error 的 delta update。KDA 再把 channel-wise decay 加在更新之前。

一句話:先分 channel 遺忘,再查看目前 key 已經記得多少,只把預測錯誤的部分寫回去。
05 · Retrieval Difference

不是「局部 vs 全局」,而是「可定址歷史 vs 壓縮歷史」

兩邊都能受久遠 token 影響;真正差別在於,full attention 仍保留 token-level 地址,而 KDA 將歷史合併到固定容量 state。

動畫比較:找出很久以前的唯一代碼 A7F2
Full / Global MLA
直接掃描 token-level 歷史
精確找到:A7F2
KDA compressed state
所有歷史影響被壓縮到同一 state
能保留整體訊息,但不保證逐 token 精確定位
自動播放

Full attention / MLA

保存可直接查詢的歷史表示,所以更適合精確 retrieval、copying、對某個舊 token 的重新定位。

KDA

有全歷史 receptive field,但過去資訊被多次 decay、projection 與 correction 後壓縮進固定 state。

因此 KDA 不是 sliding-window local attention。比較準確的名稱是 compressed global memory
06 · Kimi Linear Hybrid

3 × KDA + 1 × Global MLA:把效率與精確檢索放在同一條路徑

大量 KDA 層負責低成本壓縮記憶,週期性的 global MLA 層提供全局細粒度檢索。這是 Kimi Linear 最重要的架構直覺。

動畫:token 通過三個 KDA,再進入 global MLA
KDA 1固定 state
KDA 2固定 state
KDA 3固定 state
Global MLA全局 token-level retrieval
xₜ
Context:32K
MLA cache 隨 context 增長
KDA state 則保持固定尺寸
自動播放
KDA → KDA → KDA → Global MLA

75% / 25% 的正確含義

指 token-mixing layers 的配比,不等於參數量降低 75%,也不等於端到端算量與速度嚴格按 75/25 分配。

理論 FLOPs 與實際速度

在超長上下文下,KDA attention-core 的理論差距可以非常大;但整體模型還包含 projection、MoE/FFN、normalization、記憶體存取與 global MLA 層,因此端到端通常是數倍改善。

最精準的描述:很多便宜的壓縮記憶層處理一般資訊流,少量昂貴的 global 層負責精確全局查詢。
07 · Corrections

常見誤解與修正

以下整理最常見的概念混淆,並以較精確的說法逐一修正。

「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;完整模型仍有大量其他成本。