【2026 最新】Kimi K3 架構是什麼?從 GPT-2 到 KDA,零基礎看懂注意力、MoE 與 AttnRes

最後更新: ·
Kimi K3 架構教學首圖:從 GPT-2 到 KDA 的記憶革命

談 Kimi K3 架構之前,先算:2.8 兆「總參數」÷ GPT-2 小型版的 1.24 億,約是 22,580。這不是能力倍數,也不代表每個 token 會動用 22,580 個 GPT-2。真正的問題是:模型怎麼在參數暴增、上下文拉長後,仍然記得住、找得到,也算得動?

這篇專為零基礎讀者寫,從 GPT-2 的 KV cache 一路走到 KDA 與完整的 Kimi K3 架構。你不必先學矩陣;能分辨「翻原文、改白板、找專家、跨樓層取資料」,就已抓到核心。

先記住這個公式:Kimi K3 架構 = 可擦寫白板(KDA)+定期翻原文(Gated MLA)+專家分工(Stable LatentMoE)+跨樓層電梯(Block AttnRes)

先說結論:Kimi K3 架構不是把 Attention 刪掉

Kimi K3 官方技術報告描述的是混合系統:沿序列長度混用 KDA 與 Gated MLA;沿模型深度用 Block AttnRes 取回較早層表示;沿模型寬度用 Stable LatentMoE 分派專家。

  • KDA 把歷史壓進固定 state,並能修正、遺忘。
  • Gated MLA 定期做全域 token-to-token 查找。
  • Stable LatentMoE 從龐大專家池啟用少數路徑。
  • Block AttnRes 取回同一 token 較早深度的表示。

白話說,K3 的方法是把不同問題交給不同零件,而不是讓所有長上下文成本憑空消失。

Kimi K3 架構先校正:22,580 到底在比什麼?

OpenAI 的 GPT-2 官方 repo更正後,最小模型約 124M,最大版是 1.5B;K3 則是 2.78T total、每 token 約 104.2B active。「22,580」這個說法採用四捨五入的 2.8T,除以最小 GPT-2。

  • 2.8T ÷ 124M ≈ 22,581:總參數對 GPT-2 small 的吸睛比喻。
  • 2.8T ÷ 1.5B ≈ 1,867:改用 GPT-2 最大版,倍率立刻不同。
  • 104.2B ÷ 124M ≈ 840:改比 K3 每 token 啟用參數,數字又縮一大截。

這些數字都不是算力或能力倍率,因為 GPT-2 是 dense,K3 是 sparse MoE。總參數像整間圖書館的藏書;active parameters 像這次推上桌的書。硬體差異可接著看Kimi K3 本機、雲端與 API 完整教學

第一步:GPT-2 為什麼需要 KV cache?

softmax attention 讓新 token 對先前的 key 打分,再讀取 value。它像保留完整索引卡,能依問題回頭找原卡。想補 LLM 與 attention 的直覺,可讀大型語言模型如何運作

成本要分階段:訓練同時處理許多位置;prefill先讀 prompt 並建狀態;cached decode再逐 token 生成。full attention 的 prefill 配對量呈平方成長;decode 仍要讀取增長的 KV cache。

FlashAttention 用分塊與 online softmax 減少 HBM 搬運,不保存完整注意力矩陣;但 exact softmax 的 query–key 算術仍是平方級。它改善廚房動線;Linear Attention 才是換食譜。

第二步:Linear Attention 把索引卡壓成一塊白板

Linear Attention 先把歷史 key、value 累積進固定大小的 state,再用 query 讀取。對單一 recurrent layer 而言,state 不隨 token 數量成長,decode 也不必掃整列 KV cache;代價是只留下壓縮統計,而非原始索引卡。

加法式寫入的麻煩是:同一 key 從「草稿」改成「已核准」時,新 value 只會疊上去。Schlag、Irie 與 Schmidhuber 提出的 Fast Weight Programmers delta rule,改成先讀白板,再只寫「新答案減舊答案」的差額。

從 GPT-2 Softmax 注意力到 Kimi K3 KDA 混合架構的記憶演進圖
四次改造的核心不是把注意力全部刪掉,而是從逐 token 索引,走向可更新摘要,再用週期性全域注意力補回精確查找。

第三步:DeltaNet、Gated DeltaNet 到 KDA,白板開始會擦也會忘

Yang 等人的 Parallel DeltaNet延續 delta rule,再用 chunkwise 演算法把 recurrence 重組成 GPU 區塊運算。chunk 用來平行化,不是在區塊內換回 softmax attention。

Gated DeltaNet 再加入 scalar retention gate,決定整個舊 state 留多少。若把公式中的 α 取為 0(實作參數化只會逼近 0),被清掉的是舊 state 的貢獻;當前 token 的 β 寫入項仍保留。

KDA(Kimi Delta Attention)把單一 retention 改成每個 key channel 各有旋鈕;有些特徵慢慢淡去,有些快速換新。scalar β 控制針對特定 key 改寫多少。省略投影、正規化與 kernel 後,概念是:

old = channel_decay(state, α)
prediction = read(old, key)
state = old + β × outer(key, value - prediction)
output = read(state, query)

例如專案狀態從「草稿」改成「已核准」:普通加法可能疊起兩個標籤;delta rule 先讀舊值,再寫入移到新值所需的差額。β=1 可理解成完整採納,β=0.5 則移動一半。真實 key 會互相干擾,因此這是直覺,不是無損覆寫保證。

KDA delta rule 把專案狀態從草稿更新成已核准的白板例子
Delta rule 不是再寫一次完整答案,而是先讀舊值,再只寫差額;Gate 再決定不同記憶通道要保留多少。

Kimi K3 架構的四個核心零件

1. KDA:壓縮歷史,而且能更新舊關聯

K3 有 93 個 decoder layers,其中 69 層是 KDA。其 recurrent state 對「序列長度」固定,但仍隨 layer、head 與維度占用記憶體。固定不等於零成本或無限容量。

2. Gated MLA:每三個 KDA 層後,重新翻一次原文

前 92 層是 23 次 KDA → KDA → KDA → Gated MLA,第 93 層再做 Gated MLA。MLA 先壓縮每個 token 的 KV 表示,再保留隨 token 成長的 cache,仍能做全域互動。

因此,K3 並未完全移除 KV cache。24 層 Gated MLA 仍有成長的壓縮 cache,prefill 也保留平方級成分。混合設計降低係數、增加摘要路徑,並非讓全模型變成純線性。

KV cache 與 KDA 固定 recurrent state 的長期記憶差異
KDA 層的 recurrent state 大小不隨上下文長度增加;K3 的 Gated MLA 層仍保留隨 token 成長的壓縮 KV cache。

3. Stable LatentMoE:896 個 routed experts+2 個 shared experts

K3 的 MoE 層有 896 個 routed experts,每個 token 選 16 個;另外 2 個 full-width shared experts 也會參與。第一個 feed-forward layer 是 dense,其餘 92 層採 MoE;routed experts 在較窄 latent space 工作。這是 2.78T total 與 104.2B active 能並存的原因之一。

不同 token 可能被分到不同專家,所以部署仍要準備整個專家池。RMSNorm、SiTU-GLU 與 Quantile Balancing 則控制 activation 與負載。MoE 解的是每一步讓誰工作,不是長上下文記憶。

4. Block AttnRes:替同一個 token 裝一部跨樓層電梯

一般 residual 一路累加前面結果;Attention Residuals 讓後層選擇該取回哪個較早深度表示。它看的是同一 token 在不同深度的版本,不是前幾千個 token。

K3 採 Block AttnRes:以 12 個 decoder layers 為邊界,共 8 個區塊,最後一塊不足 12 層;連 embedding 可有 9 個來源表示。12 層是摘要邊界,不代表 AttnRes 每 12 層才執行一次,也不代表它比普通 residual 更快。

Kimi K3 架構在序列深度寬度三個方向的組成
K3 同時在序列、深度與模型寬度做選擇:KDA/MLA、Block AttnRes、Stable LatentMoE 各解不同問題。

新手看架構發表,先問這三題

1. 這個數字比的是 total、active,還是實際運算?

先找分子、分母。參數、FLOPs、VRAM、token/s、成功率是不同單位;沒說清楚的倍率只能當線索。

2. 它改的是 operator、kernel,還是整個 model?

FlashAttention 改 IO kernel,KDA 改序列 operator,K3 再組成整個模型。把局部成本套到全模型,會漏掉 MLA cache。

3. 報告說的是能力,還是特定硬體上的速度?

「最高快 X 倍」要連同 context、batch、硬體、kernel 與 baseline 一起讀,不能套成所有 API 的固定倍率。要上手 K3,請照K3 使用與部署決策教學驗收。

新手常問的八個問題

1. KDA 就是 Linear Attention 嗎?

是 linear-attention 家族的一員。它用固定 state,並加入 delta correction、channel-wise retention、short convolution 與 chunkwise 計算。

2. K3 已經不需要 KV cache 了嗎?

沒有完全消失。69 個 KDA layers 用固定 state;24 個 Gated MLA layers 仍保存隨 token 增長的壓縮 KV cache。

3. 22,580 代表 K3 比 GPT-2 聰明 22,580 倍嗎?

不是。它只用 K3 四捨五入總參數除以 GPT-2 最小版;能力、速度、能耗與每 token 計算都不是同一倍率。

4. KDA 一定比 full attention 快嗎?

不一定。長度、batch、硬體、kernel 與推理階段都會改變結果;理論優勢要靠成熟實作才會變成實際速度。

5. 最高 1,048,576 token 的 context,就能完整記住整個專案嗎?

不等於。官方 config把上限設為 1,048,576 tokens;這是容量上限,不是完整記憶保證。有效找回、跨檔推理與工具歷史仍要實測。重要規則應靠明確 context 與外部驗收。

6. Top-16 代表每次只運行 16 個 experts 嗎?

不能這樣簡化。Top-16 只指 routed experts;模型還有 shared path、attention 與投影。104.2B 才是官方整體 active 規模。

7. AttnRes 和 token attention 是同一件事嗎?

原理有類比,方向不同。token attention 沿序列選資料;AttnRes 沿深度選表示。前者翻前文,後者取回同一文件的早期草稿。

8. 我需要先學線性代數,才能理解 K3 嗎?

不用。先記:KDA 改白板、MLA 翻原文、MoE 找專家、AttnRes 跨樓層。要實作 kernel 時,再補矩陣外積與複雜度。

給新手的五個帶走重點

  1. 任何「幾倍」都先問單位;22,580 是總參數比喻,不是能力倍率。
  2. FlashAttention 解 IO 與工作記憶體,Linear Attention 才改 operator。
  3. KDA 的 state 對序列長度固定,但 K3 整體仍有 Gated MLA cache。
  4. MoE、KDA、AttnRes 分別處理寬度、序列與深度,不要把優點互相代換。
  5. 架構能提供合理預期,真正的品質、速度與成本仍要用你的任務驗收。

📚 延伸閱讀:把架構知識接回實際使用

結語:真正的突破,是知道什麼該保留、什麼該重找

回到開頭:Kimi K3 架構 = 可擦寫白板+定期翻原文+專家分工+跨樓層電梯。KDA 壓縮歷史,Gated MLA 保留全域查找,Stable LatentMoE 選專家,Block AttnRes 選深度來源。

下次看到「參數多幾萬倍」或「注意力被取代」,就用四個零件檢查它沿序列、深度與寬度改了什麼,再確認數字比的是 operator、kernel 還是整個模型。這套方法也能用來閱讀下一代 AI 架構。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週一封,第一時間收到新文章與投資觀察。

我們不會 spam,隨時可退訂。