跳到主要內容
Kimi K3 技術報告:三個架構改動一次看懂
/閱讀約 12 分鐘/

Kimi K3 技術報告:三個架構改動一次看懂

Kimi K3 技術報告把模型擴展拆成長度、深度與寬度三個問題。本文用白話解釋 KDA、Attention Residuals、Stable LatentMoE 的作用,也釐清官方 2.5 倍 scaling efficiency 不等於推論快 2.5 倍。

目錄+

Kimi K3 最醒目的數字是 2.8T,但技術報告沒有把答案寫成「多塞參數」。它把擴展模型時會撞到的問題分成三條軸線:序列太長、網路太深、experts 太多。

KDA 處理序列長度,Attention Residuals 處理層與層之間的資訊流,Stable LatentMoE 則負責把模型容量拉大,同時控制每個 token 的計算量。

K3 的架構重點不是大,而是避免規模先把效率吃光。

MoonshotAI/Kimi-K3 on GitHub

如果你還沒看過完整發布清單,可以先讀 Kimi K3 開放權重與技術棧整理。這篇只處理技術報告裡的模型架構。

Kimi K3 沿序列長度、網路深度與模型寬度三條軸線擴展的架構圖
K3 沿三條軸線改造資訊流:KDA 與 Gated MLA 處理長序列,Block AttnRes 處理跨層表示,Stable LatentMoE 擴大 expert 容量。

Kimi K3 技術報告先記住這組規格

項目Kimi K3
總參數2.8T
每個 token 啟用參數104B
Decoder 層數93
Attention 組成69 KDA + 24 Gated MLA
Routed experts896,每次選 16 個
Shared experts2
Hidden / Latent MoE 維度7168 / 3584
Context window1,048,576 tokens
權重 / activationMXFP4 / MXFP8
Vision encoderMoonViT-V2,401M 參數

這張表有兩個容易讀錯的地方。104B 是 active parameters,不是模型檔案只需要 104B 的空間。沒有被選到的 experts 當下不計算,但完整 expert 權重仍要分布在叢集記憶體裡。

另一個是 100 萬 token。context window 代表模型和系統允許的上限,不代表每一層都用完整 attention 保存一百萬個 token 的 KV cache。KDA 就是為了處理這個問題。

長度:KDA 為什麼還要搭配 Gated MLA?

標準 full attention 會保留每個 token 的 key 與 value。序列越長,KV cache 跟著長。Kimi Delta Attention 改用固定大小的 recurrent state,把過去資訊逐步寫進狀態,不需要每一層都保存完整歷史。

KDA 延伸自 Gated DeltaNet。Gated DeltaNet 通常讓一個 attention head 共用遺忘率,KDA 改成 channel-wise gating。不同 feature channel 可以用不同速度忘記舊資訊,模型不必把整個 state 一起清掉或一起保留。

但固定大小的 state 也會壓縮歷史。資訊一旦被覆寫,就不像 full attention 那樣能直接回頭查指定 token。因此 K3 沒有把全部 93 層都換成 KDA,而是採用三層 KDA 接一層 Gated MLA 的節奏,最後再補一層 MLA。總數是 69 層 KDA 與 24 層 Gated MLA。

你可以把兩者的分工理解成:

  • KDA 負責大部分長序列混合,控制快取與計算成本。
  • Gated MLA 定期提供全域 token 互動,補回固定 state 不擅長的直接檢索。

Kimi Linear 論文曾在較小模型上報告最多減少 75% KV cache、decoding throughput 最高提高 6.3 倍。這些是 Kimi Linear 的實驗,不是 K3 在所有環境下的速度保證。K3 對應的 kernel 與部署細節,可以接著看 FlashKDA 技術拆解

深度:Attention Residuals 不再把前層輸出全部等量相加

PreNorm Transformer 的 residual path 會不斷累加前面各層的輸出。模型變深後,hidden state 的幅度持續增加,單一早期層的貢獻會被後面大量輸出沖淡。更麻煩的是,後層只收到一個混合後的狀態,無法重新取回某一層已經丟失的表示。

Attention Residuals 把 residual path 改成一次小型 attention。每一層有自己的 learned pseudo-query,依目前輸入計算權重,再選擇要取用哪些較早的表示。

Full AttnRes 若保留每一層輸出,記憶體和 pipeline communication 會隨層數增加。K3 採用 Block AttnRes,把多層壓成 block summary,跨 block 做選擇,同一個 block 內仍保留逐層累積。額外狀態從跟全部層數相關的 O(Ld),降到跟 block 數相關的 O(Nd)

獨立的 Attention Residuals 論文在 Kimi Linear 48B 總參數、3B active 的模型上做過對照。Block AttnRes 達到相同 validation loss 時,baseline 需要約 1.25 倍 compute;GPQA-Diamond 從 36.9 提高到 44.4,HumanEval 從 59.1 提高到 62.2。

這組結果支持 AttnRes 的方向,但不能直接當成 K3 的單項消融。K3 的 2.5 倍整體 scaling efficiency 還混合了資料、MoE、optimizer 與其他訓練配方。

寬度:Stable LatentMoE 怎麼撐住 896 個 experts?

K3 的 hidden dimension 是 7168。進入 routed experts 前,LatentMoE 先把 token representation 壓到 3584 維,expert 完成計算後再投影回原寬度。較窄的 latent representation 能降低 expert weight bandwidth 與 all-to-all 通訊量。

每個 token 會選 896 個 routed experts 中的 16 個,另外還有 2 個 shared experts。這種稀疏度讓總容量可以很大,但 router 只要稍微偏向少數 experts,就會出現熱門卡塞車、其他卡等待的問題。

K3 用 Quantile Balancing 依 router score 的分位數決定 expert allocation,不再依賴反覆調整的 heuristic bias 與敏感超參數。SiTU-GLU 則用 tanh saturation 限制 activation 的極端值,避免 SwiGLU 在大正值區間持續放大。Per-Head Muon 再把 attention heads 分開最佳化。

這些設計解決的是訓練穩定性。實際跑到大量 GPU 上,還需要 MoonEP 用 redundant experts 平衡每個 rank 收到的 token。模型架構和通訊系統是一起設計的,缺一邊都很難把 16-of-896 做到可用。

MoonViT-V2 與低位元訓練也不能省略

K3 的原生多模態來自 401M 參數的 MoonViT-V2。它不是先拿對比學習完成的 vision encoder 再接上語言模型,而是從零開始用 next-token prediction 目標訓練。技術報告表示,這條路達到接近 SigLIP 初始化基線的效果,訓練過程也更穩定。

模型從 supervised fine-tuning 階段開始做 quantization-aware training,使用 MXFP4 權重與 MXFP8 activations。這跟訓練完成後才做壓縮不同,模型會在訓練期間適應量化誤差。

低位元權重讓部署容量下降,但不會讓 2.8T 模型變成桌面級。最新公開配置最低可用 8 張 GB300 或 MI350X/MI355X 這類高容量資料中心 GPU;H100 的 SGLang 配置則需要 32 張。若你只是想練習本地推論流程,麗臺 RTX PRO 4000 Blackwell 24GB適合較小的量化模型,不是 K3 單機方案。完整差異可以接著看 Kimi K3 本地部署門檻

2.5 倍 scaling efficiency 應該怎麼讀?

Moonshot 的說法是,架構更新加上資料與訓練配方,讓 K3 相較 K2 有約 2.5 倍 overall scaling efficiency。它描述的是模型把訓練 compute 轉成 validation loss 與能力的效率。

這不代表:

  • API 回應一定快 2.5 倍。
  • 同一張 GPU 的 tokens per second 一定提高 2.5 倍。
  • KDA、AttnRes 或 LatentMoE 其中任何一項單獨貢獻 2.5 倍。

要判斷單一元件的效果,應該看對照實驗。AttnRes 有獨立小模型 scaling curves,KDA 有 Kimi Linear 實驗,K3 的 2.5 倍則是整套系統的綜合結果。三種數字不能混用。

架構進步沒有消除 Agent 的產品限制

K3 的官方限制說明特別提到 thinking history。模型在 preserved thinking history 模式下做 post-training,Agent harness 必須把先前完整 assistant message 與 reasoning history 正確傳回。只保留可見文字,或在同一段 session 中途從其他模型切換到 K3,輸出可能變得不穩定。

官方也提醒 K3 對模糊任務可能過度主動。這代表權限、批准節點與停止條件仍要寫進 system prompt 或 AGENTS.md。模型能跑更長,不等於應該拿到更大的操作範圍。

常見問題

Kimi K3 的 KDA 是什麼?

KDA 是 Kimi Delta Attention。它用固定大小的 recurrent state 處理序列,並讓不同 channel 用不同速度遺忘舊資訊,降低長上下文的快取壓力。

Attention Residuals 和一般 residual connection 差在哪?

一般 residual connection 會持續相加前層輸出。Attention Residuals 讓每層依輸入選擇較有用的早期表示,K3 再用 block 版本控制記憶體與通訊成本。

Kimi K3 為什麼有 2.8T 參數卻只啟用 104B?

因為 K3 採用 Mixture-of-Experts。每個 token 只選 896 個 routed experts 中的 16 個,再加上 2 個 shared experts,因此不用讓全部參數同時參與計算。

Kimi K3 的 2.5 倍 scaling efficiency 代表速度快 2.5 倍嗎?

不代表。這是 Moonshot 對架構、資料與訓練配方綜合 scaling curve 的說法,不是所有硬體與任務都能得到的推論加速倍數。

我的判斷

如果只追一個後續,我會選 Attention Residuals。KDA 與 Stable LatentMoE 都高度依賴專用 kernel、跨卡通訊與大規模訓練,AttnRes 比較有機會被較小模型獨立採用,也已經有清楚的對照實驗。

K3 技術報告把長度、深度與寬度分開處理,每個改動也都配上對應系統。接下來要看的不是又一張總分排行榜,而是社群能否在較小模型上重現這三種設計的收益。


利益揭露:本文部分連結為聯盟連結,點擊購買我會獲得回饋,不影響你的價格。

資料來源Kimi K3 技術報告Kimi K3 GitHubKimi K3 技術文章Kimi Linear 論文Attention Residuals 論文vLLM K3 技術文章AMD Kimi K3 架構與部署說明