![]()
機器之心編輯部
過去一段時間,很多人對大模型都有一個明顯感受:token 總是不夠用
畢竟用戶想大模型更「聰明」更連貫,上下文窗口只會越來越大。
而在模型背后,長上下文是相當「奢侈」的。用戶 token 消耗翻倍,其實是模型更大的 KV cache 和更高的 attention 計算成本。
尤其是在推理模型和 Agent 逐漸成為主流后,長上下文已經從一個「宣傳亮點」,逐漸轉變?yōu)榇竽P图軜嬙O計需要正面解決的問題。
Sebastian 精準地捕捉到,最近幾個月發(fā)布的一批 LLM,正好體現了這個趨勢。
從 Google 的 Gemma 4,到 Poolside 的 Laguna XS.2、Zyphra 的 ZAYA1-8B,再到 DeepSeek V4,這些模型在 Transformer 內部做了各種「省錢設計」,試圖圍繞長上下文推理降低計算和存儲成本
Sebastian 為此發(fā)布了技術博客,以下為博客鏈接與全文翻譯。
![]()
近期 LLM 一覽。
- 博客標題:LLM 架構的最新發(fā)展:KV 共享、mHC 與壓縮注意力
- 博客鏈接:https://magazine.sebastianraschka.com/p/recent-developments-in-llm-architectures
Gemma 4:
通過跨層復用 KV Tensor 縮小 KV Cache
時間回到四月初,Google 發(fā)布了全新的開源權重模型系列 Gemma 4。整個系列大致可以分為三類:
- 面向移動端與小型本地(嵌入式)設備(即 IoT)的 Gemma 4 E2B 與 E4B;
- 面向高效本地推理、采用混合專家架構(MoE)的 Gemma 4 26B;
- 以及采用 Dense 架構、追求更高模型質量與更便捷后訓練流程的 Gemma 4 31B(因為 MoE 模型通常更難進行后訓練和調優(yōu))。
![]()
Gemma 4 架構示意圖
Gemma 4 E2B 與 E4B 的第一個小型架構改動,是采用了「共享 KV Cache」機制:后續(xù)層會復用前面層已經計算出的 Key-Value 狀態(tài),從而降低長上下文場景下的顯存占用與計算成本。
這種方法并不是 Gemma 4 首創(chuàng)。例如 NeurIPS 2024 的論文《Reducing Transformer Key-Value Cache Size with Cross-Layer Attention》已經提出類似思路。但 Gemma 4 是第一次將其大規(guī)模應用于主流開源架構中。
為什么 KV Cache 如此重要?
正如我最近幾個月不斷提到的,當前 LLM 架構設計中的一個核心主題,就是「縮小 KV Cache」。而縮小 KV Cache 的根本目的,是降低模型運行所需的顯存占用,從而支持更長的上下文窗口。這一點在推理模型和 Agent 時代尤其重要。
舉一個經典的例子(Gemma 4 目前依然在使用):Grouped Query Attention(GQA)本身就已經通過讓多個 Query Head 共享同一組 Key-Value(KV)Head,來減少 KV Cache 的大小,如下圖所示。
![]()
Gemma 4 的跨層 KV 共享機制
如前所述,Gemma 4 使用了 GQA。不過,除了 GQA 中不同 Query Head 之間的 KV 共享之外,Gemma 4 還進一步在不同 Transformer Layer 之間共享 KV Projection,而不是像傳統(tǒng)做法那樣,在每一層 Attention 模塊中分別計算自己的 KV
這種 KV 共享機制也被稱為 Cross-Layer Attention,其結構如下圖所示。
![]()
正如架構示意圖中所提到的,Gemma 4 E2B 采用了普通 GQA 與 Sliding Window Attention 按照 4:1 的方式組合使用。(更準確地說,Gemma 4 E2B 實際使用的是 MQA,也就是 GQA 中只有一個 KV Head 的特殊情況。)
在 GQA(或 MQA)機制下,KV 共享的方式如下:后續(xù)層不再單獨計算自己的 Key 和 Value Projection,而是直接復用最近一個、同類型且未共享層所生成的 KV Tensor。
換句話說:Sliding Window Attention 層會復用前面某個 Sliding Window 層的 KV, Full Attention 層則會復用前面某個 Full Attention 層的 KV。
當然,每一層仍然會計算自己的 Query Projection,因此不同層依然可以形成各自不同的 Attention Pattern;但代價最高、最占顯存的 KV Cache,則會被多個層共同復用。例如:
- Gemma 4 E2B 一共有 35 層 Transformer Layer,但只有前 15 層會真正計算自己的 KV Projection;后面的 20 層則直接復用之前同類型層的 KV Tensor。
- 類似地,Gemma 4 E4B 共 42 層,其中 24 層負責計算 KV,最后 18 層采用共享機制。
這種設計到底能節(jié)省多少資源?
由于大約有一半的 KV 在不同層之間被共享,因此 KV Cache 的整體大小也大致減少了一半。對于最小的 E2B 模型來說,在 128K 長上下文、bfloat16 精度下,可以節(jié)省約2.7GB顯存;而 E4B 在同樣條件下,則大約能夠節(jié)省6GB
![]()
Gemma 4 E2B 類似配置中,GQA 與跨層 KV 共享帶來的 KV Cache 顯存節(jié)省效果
當然,KV Sharing 的缺點在于,它本質上是一種對完整 Attention 計算的「近似」。更準確地說,它會削弱模型容量。
不過,根據 Cross-Layer Attention 論文中的實驗結果,在被測試的小規(guī)模模型上,這種影響可以非常有限。
Gemma 4 E2B / E4B:
Per-Layer Embeddings(PLE)與「有效參數量」
Gemma 4 的 E2B 與 E4B 版本還引入了第二種以效率為導向的設計:Per-Layer Embeddings(PLE,逐層嵌入)。這一機制與前面提到的 KV Sharing 是相互獨立的。
KV Sharing 的目標是縮小 KV Cache,而 PLE 關注的則是參數效率(parameter efficiency):它讓小尺寸的 Gemma 4 模型能夠攜帶更多 token-specific information(與 token 相關的特征信息),但又不會讓整個 Transformer 主干像同參數量 Dense 模型那樣昂貴。
例如,Gemma 4 E2B 與 E4B 中的「E」,代表的就是「effective」(有效參數量) 。具體來說:
- Gemma 4 E2B 標注為 2.3B effective parameters,但如果把 embedding 參數也算進去,總參數量實際上達到 5.1B;
- Gemma 4 E4B 的 effective parameters 為 4.5B,而包含 embedding 后則約為 8B。
換句話說,在這些 「E」系列模型中,真正負責主要計算的 Transformer Stack,其計算規(guī)模更接近前面的較小數字;而后面的總參數量,則包含了額外的 embedding table。
從概念上來看,PLE 的結構大致如下:
![]()
帶有 PLE residual path 的簡化版 Gemma 4 Block。普通 Transformer Block 會先完成 Attention 與 Feed-Forward 的 residual update;隨后,生成的 hidden state 會作為 gating 信號,控制 layer-specific 的 PLE vector,并在 Block 末尾額外加入一次 projected PLE residual update。
PLE Vector 本身是在 Transformer Block 外部提前構建的。簡單來說,它有兩個輸入來源:token ID 經過 per-layer embedding lookup; 普通 token embedding 再通過一個 linear projection,映射到同一個 PLE 空間。
隨后,這兩部分結果會被相加、縮放,并 reshape 成一個 tensor,其中每一層都對應一個獨立 slice,而每個 Transformer Block 只會接收屬于自己的那一份。
![]()
簡化版 PLE(Per-Layer Embeddings)構建流程
這里有一個很重要的細節(jié):PLE 并不是給每個 Transformer Block 單獨復制一整套 embedding layer。相反,per-layer embedding lookup 只會計算一次,然后再給每一層分發(fā)一個較小的 token-specific embedding slice。
因此,對于每個輸入 token,Gemma 4 會提前準備一個 packed PLE tensor,其中包含每一層 decoder 對應的一小段 embedding vector。
真正進入 Transformer Block 后,Attention 與 Feed-Forward 分支仍然按正常方式運行。在完成 Feed-Forward residual update 后,當前 hidden state(圖中記作 z)會用于 gate layer-specific PLE vector。被 gate 后的 PLE vector 會重新投影回 model hidden size、做 normalization,并作為額外 residual update 加回模型中。
一個比較直觀的理解方式是 Transformer Block 的主體結構并沒有改變,Gemma 4 只是額外在 Feed-Forward 分支后面,插入了一小段「層特定 token 向量」。這樣做能夠通過 embedding 參數與小規(guī)模 projection,提升模型的表達能力,同時避免把整個 Transformer Stack 都擴展到更大的參數規(guī)模。
為什么要用 PLE?
一種更直接的方法,其實是簡單縮小 Dense 模型,比如減少層數、縮小 hidden state 或縮小 Feed-Forward Network。
這樣當然能降低顯存與延遲,但也會直接削弱模型真正負責計算的核心部分。
而 PLE 的思路則是:讓昂貴的 Transformer Block 保持在較小的 「effective size」,同時把額外容量存儲在 per-layer embedding table 中。由于 embedding 本質上主要是 lookup-style parameter,它們遠比增加 Attention 或 FFN 權重更便宜,也更容易緩存。
當然,目前我們還只能相信 Google 的實驗結果,認為這確實是一個有效的設計。作者也提到,未來如果能看到更多對比實驗,例如:PLE 版 Gemma 4 E2B vs 普通 2.3B Dense 模型 vs 普通 5.1B Dense 模型 。
這樣的對比會非常有意思。
此外,從理論上講,PLE 并不只適用于小模型。更大的模型同樣可以加入 per-layer embedding slice。但由于大模型本身已經具有足夠容量,因此這些額外 embedding 的收益可能不再明顯。而且在大模型中,我們通常已經通過 MoE 等結構,在不顯著增加計算量的前提下提升模型容量。
Laguna XS.2:
Layer-wise Attention Budgeting
Laguna 是歐洲公司 Poolside 推出的首個 open-weight 模型,Poolside 主要專注于面向代碼場景的 LLM 訓練。
不同 Layer 使用不同 Attention Budget。
下圖中的 Laguna XS.2 架構乍一看其實相當標準。不過,有一個我沒有畫進去(或者說沒法硬塞進圖里)的細節(jié),是一個可以稱為 「Layer-wise attention budgeting」 的概念。
![]()
Poolside 的 Laguna XS.2 架構示意圖。
這里所謂 attention budgeting 的核心思路之一,是不再讓每個 Transformer Layer 都擁有完全相同的 Attention 預算,而是根據層的不同,動態(tài)分配不同的 Attention 成本
Laguna XS.2 總共有 40 層,其中 30 層使用 Sliding-Window Attention,10 層使用 Global / Full Attention。
和常見做法一樣,Sliding-Window Layer 只會關注局部窗口(這里是 512 個 token),因此 KV Cache 與 Attention 計算成本都更低;而 Global Layer 雖然更昂貴,但能夠保留對整個上下文窗口中所有信息的訪問能力。
這種 Sliding-Window Attention 與 Global / Full Attention 混合使用的結構,并不是 Laguna XS.2 獨有的,很多其他模型(包括 Gemma 4)也采用了類似設計。
但真正新的地方在于:Laguna XS.2 引入了「逐層不同 Query Head 數量」的設計。
例如,在 Hugging Face 的 config.json 中,可以看到一個名為 num_attention_heads_per_layer 的配置項,這意味著不同 Layer 可以擁有不同數量的 Query Head,同時仍然保持 KV Cache 結構兼容。
![]()
Laguna 中的逐層 Query-Head Budgeting。其中 Full Attention Layer 每個 KV Head 對應 6 個 Query Head; Sliding Window Attention Layer 每個 KV Head 對應 8 個 Query Head。
因此,Laguna XS.2 的實際做法是:給 Sliding-Window Layer 分配更多 Query Head,給 Global Layer 分配更少 Query Head,同時將 KV Head 數固定為 8
這才是真正意義上的 「Layer-wise Head Budgeting」。
Laguna XS.2 是近期 open model 中最具代表性的逐層 Query-Head Budgeting 實踐之一。不過,更廣義上的「按層動態(tài)分配模型容量」這一思路,其實至少可以追溯到 Apple 在 2024 年提出的 OpenELM。
為什么這樣設計?
和 KV Sharing 類似,它的核心目標依然是:把 Attention Capacity 花在最值得的地方,而不是讓所有 Layer 平均分配相同預算
具體來說,Full Attention Layer 因為需要訪問整個上下文窗口,本身計算代價就更高,因此 Laguna 會相對減少它們的 Query Head 數量;而計算成本更低的 Sliding-Window Layer,則可以擁有更多 Query Head。
(此外,還有一個較小的實現細節(jié):Laguna 還采用了 per-head attention-output gating,這一點與 Qwen3-Next 等模型有些類似。不過由于我之前已經討論過類似機制,因此這里不再展開。)
ZAYA1-8B:壓縮卷積注意力(CCA)
和 Laguna 類似,ZAYA1-8B 也是一位新玩家。它由 Zyphra 開發(fā),而這次發(fā)布中一個很有意思的細節(jié)是:該模型并不是基于更常見的 NVIDIA GPU(或 Google TPU)訓練,而是使用 AMD GPU 完成訓練的。
不過,真正關鍵的架構設計,是一種名為Compressed Convolutional Attention(CCA,壓縮卷積注意力)的機制,并且它與 Grouped-Query Attention(GQA)共同使用。
與 MLA(Multi-head Latent Attention)這類主要把 latent representation 當作緊湊 KV Cache 格式的設計不同,CCA 會直接在壓縮后的 latent space 中完成 Attention 計算。不過這一點我們后面再詳細展開。
(順帶一提:ZAYA1-8B 的 config.json 中實際上列出了 80 個交替出現的 layer entry,而不是傳統(tǒng)意義上的 40 個 Transformer Block。這些 layer 在結構上會在 CCA/GQA Attention 與 MoE Feed-Forward Layer 之間交替出現。不過在架構圖里,把它們簡化理解成 40 個重復的 「Attention + MoE」 Pair 會更直觀,兩種表示在概念上是等價的。)
![]()
采用 Compressed Convolutional Attention 的 ZAYA1(8B)Transformer Block。
正如上圖所示,ZAYA1-8B 采用了 CCA,并結合了 4:1 的 GQA 結構。這里最關鍵的一點在于:它的 Attention Block 是圍繞 CCA 構建的,而不是傳統(tǒng)的 Sliding-Window Attention。
什么是 Compressed Convolutional Attention(CCA)?
我認為,從整體思路上來看,CCA 與 DeepSeek 模型中的 MLA(Multi-head Latent Attention)是相近的,因為它們都在 Attention Block 中引入了壓縮后的 latent representation。不過,兩者使用 latent space 的方式并不相同。
MLA 的核心目標,主要是通過 latent representation 來壓縮 KV Cache。在 MLA 中,KV Tensor 會以壓縮形式存儲,隨后再被投影回 Attention Head 空間,用于真正的 Attention 計算。
![]()
普通 Multi-head Attention(MHA)與 Multi-head Latent Attention(MLA)對比。
而 CCA 則更進一步,它不僅壓縮 K、V,還同時壓縮 Q,并且直接在壓縮后的 latent space 中完成 Attention 運算。也正因為如此,CCA 不僅能夠減少 KV Cache 的大小,還能夠降低 Prefill 階段與訓練階段的 Attention FLOPs。
![]()
MLA 與 CCA 的結構對比。
正如上圖所示的,在 CCA 中,壓縮后的 latent representation 會直接進入 Attention 機制,而生成出的 compressed attention vector 隨后再被 up-project 回原始空間。
為什么叫「卷積注意力」?
這里需要特別注意:它被稱為 「Compressed Convolutional Attention」,而不僅僅是「Compressed Attention」,是因為在 latent K 與 latent Q 上,還額外加入了 convolutional mixing(卷積混合)
由于結構圖中空間有限,沒有把這一部分畫出來,但它本身其實并不復雜。正如 Figure 12 所暗示的,卷積混合是直接作用在壓縮后的 Q Tensor 與 K Tensor 上的。
原因在于壓縮會讓 Q、K、V 維度變窄,從而降低計算量與緩存開銷,但與此同時,也可能削弱 Attention 的表達能力。
而卷積則是一種相對廉價的方法,它能夠在 Q 與 K 被用于 Attention Score 計算之前,為這些壓縮后的表示補充更多局部上下文信息。
(這里的卷積只作用于 Q 與 K,而不作用于 V。因為 Q 與 K 決定的是 Attention Score,而 V 則代表最終被加權聚合的內容。)
![]()
Sequence-Mixing Convolution 的概念示意圖。
除了前文中展示的 Sequence Mixing 外,CCA 還包含一個 Channel Mixing Component。不過它們在原理上較為類似,因此這里不再單獨展開。
CCA 看起來是 Zyphra 在 ZAYA1-8B Technical Report 發(fā)布之前就已經提出的一種 Attention 機制。獨立論文《Compressed Convolutional Attention: Efficient Attention in a Compressed Latent Space》最早發(fā)表于 2025 年 10 月,并正式提出了 CCA;而 ZAYA1-8B 則將這一機制作為核心架構組件之一實際投入使用。
CCA 是否真的比 MLA 更好?
根據 CCA 論文中的實驗結果,在相同壓縮設置下,CCA 的表現確實優(yōu)于 MLA。
![]()
CCA 論文中的實驗結果標注圖。
總體來說,這部分真正有意思的地方,其實是新的 Attention 機制本身。
當然,ZAYA1-8B 同時也采用了相當激進(也就是非常稀疏)的 MoE 結構:每個 token 只激活一個 routed expert。不過這一點相對已經比較常見。
真正更特殊的是 CCA,它直接在壓縮 latent space 中執(zhí)行 Attention 計算,并通過對壓縮后的 Q/K 做卷積混合,來緩解壓縮 Attention 本身表達能力受限的問題。
簡而言之,ZAYA1-8B 不只是想在 Feed-Forward Layer 上節(jié)省計算量,它甚至試圖從 Attention Mechanism 本身開始降低計算成本。
DeepSeek V4:mHC 與壓縮注意力
DeepSeek V4 是今年最受關注的大模型之一。有意思的是,如果按照 active-parameter share(活躍參數占比)來衡量,DeepSeek V4-Pro 同時也是參數最稀疏的 MoE 模型。
關于 DeepSeek V4,其實有很多可以討論的內容。不過由于它已經在新聞與社區(qū)中被廣泛討論,同時為了繼續(xù)聚焦「架構層面的改動」,這里我主要關注兩個相較以往架構真正新的部分:
- 用于擴展 Residual Path 的 mHC;
- 用于長上下文 Attention 壓縮與稀疏化的 CSA/HCA。
從下圖中的 DeepSeek V4 架構圖來看,整個結構似乎非常復雜。不過,一個比較有效的閱讀方式是將 Residual Path 上的改動(mHC),與 Attention Path 上的改動(CSA/HCA 與 Compressed Attention Cache)分開理解。
![]()
DeepSeek V4-Pro 架構概覽。
5.1 mHC:流形約束超連接
我們先從 DeepSeek V4 中的 mHC 組件開始。
這一設計最早來自 DeepSeek 團隊在去年(2025 年 12 月 31 日)發(fā)布的一篇研究論文《mHC: Manifold-Constrained Hyper-Connections》。不過,當時論文中的實驗只在一個 27B 規(guī)模的實驗模型上完成。而如今,我們已經在他們的旗艦模型中看到了這一機制,這也意味著,這一想法很可能已經在真實生產環(huán)境中被驗證有效。
mHC 的核心目標,是重新設計 Transformer Block 內部的 Residual Connection。這一點其實非常新鮮,因為近年來絕大多數架構改動,通常都集中在Attention Mechanism、Normalization Layer 的放置方式與MoE 結構本身。
mHC 本身建立在更早的 Hyper-Connections 工作之上(見 Zhu 等人 2024 年論文《Hyper-connections》),因此我們需要先簡單理解一下 Hyper-Connections。
傳統(tǒng) Transformer 中,只有一條單獨的 Residual Stream。而 Hyper-Connections 會把它替換成:多條并行 Residual Stream,并通過可學習映射(learned mappings)在它們之間交換信息。
Hyper-Connections 的核心思想,是「擴寬 Residual Stream」。
可以把它理解為模型同時維護多條并行 Residual Path,并額外加入一個 Res Mapping 線性變換,在不同 Residual Stream 之間進行信息混合
由于 Attention Layer 或 MoE Layer 本身仍然工作在普通 Hidden Size 上,因此 Hyper-Connections 還會增加:
- Pre Mapping:把多條 Residual Stream 合并成單一 Hidden Vector;
- Post Mapping:再把 Layer 輸出重新分發(fā)回多個 Residual Stream。
![]()
普通 Transformer Block(上)與帶 Hyper-Connections 的 Transformer Block(下)。
上圖主要展示了 Attention Branch 中的結構,但同樣的思想也適用于圍繞 MoE Layer 的第二條 Residual Branch。
Hyper-Connections 的目的,是在不真正擴大 Attention 或 MoE Layer 本身寬度的情況下,讓 Residual Path 擁有更強表達能力。
而它帶來的 FLOPs 增長其實很有限,因為這些額外映射只作用在較小的 residual-stream 維度上(例如 DeepSeek V4 中 n=4),而不是作用在巨大的 hidden dimension 上。
在最初的 Hyper-Connections 論文中,7B OLMo MoE 模型的 FLOPs per token 從 13.36G 增加到 13.38G,幾乎沒有變化;而性能指標則獲得了穩(wěn)定但溫和的提升。
當然,只看 FLOPs 其實有些過于簡單。因為擴寬后的 Residual State 依然需要存儲、在顯存中移動并參與混合計算。 因此,真正的額外開銷更多可能來自Memory Traffic 與 Implementation Complexity,而不僅僅是算術計算本身。
不過考慮到 DeepSeek V4 整體都在追求效率,這看起來依然是一個值得加入的設計。
![]()
Hyper-Connections 相較 Baseline 的性能表現。
傳統(tǒng) Transformer 只有單一 residual stream。而 Hyper-Connections 將其擴展成多個并行 residual stream。
此外,如圖所示:Hyper-Connections 在大約只使用一半訓練 token的情況下,就達到了 Baseline 的性能水平。
而從普通 Hyper-Connections(HC)到 Manifold-Constrained Hyper-Connections(mHC)最關鍵的變化,在于這些 Mapping 不再是「無約束」的。
在普通 HC 中,Res Mapping 是一個可學習矩陣,用于混合不同 Residual Stream。但當多個這樣的矩陣不斷堆疊時,信號可能會不可預測地被放大或縮小。
而在 mHC 中,這個 Residual Mapping 會被約束到「雙隨機矩陣(doubly stochastic matrix)」流形上。也就是說:所有元素非負; 每一行之和為 1; 每一列之和為 1。
這樣一來:Residual Mixing 會更像是一種穩(wěn)定的信息重新分配(stable redistribution),而不是不可控的信號放大或衰減。
與此同時 Pre Mapping 與 Post Mapping 也同樣會被約束為非負且有界,從而避免在讀取與寫回擴寬 Residual State 時出現信息抵消。
簡而言之,mHC 保留了 HC 更豐富的 Residual Mixing 能力,同時加入額外約束,使其在更大、更深的模型中能夠更穩(wěn)定地擴展。
除此之外,多 Residual Stream 的整體思路并沒有改變,如下圖所示。
![]()
采用 HC 與 mHC 的 Transformer Block。
在 mHC 論文中,DeepSeek 團隊基于 27B 模型實驗表明:在使用融合優(yōu)化(fusion)、重計算(recomputation)與 pipeline scheduling 后,即使在整個 Transformer 中使用 4 條 Residual Stream(n=4),訓練時間額外開銷也僅增加約 6.7%。
總結來說:HC/mHC 的本質,是通過把單一 Residual Stream 替換為多條相互交互的 Residual Stream,重新定義信息在 Transformer Layer 中的傳播方式。mHC 則進一步加入穩(wěn)定性約束,同時只帶來很小的計算額外開銷
此外,它也與后面將介紹的 CSA/HCA Attention 改動形成了很好的配合。
通過 CSA 與 HCA 實現壓縮 Attention
DeepSeek V4 的另一項核心架構升級,發(fā)生在 Attention 部分。其背后的動機依然非常明確:在超長上下文場景下,Attention 的成本不僅來自 Attention Score 本身的計算,還來自 KV Cache 會隨著 Sequence Length 持續(xù)增長。
DeepSeek V4 針對這一問題,引入了兩種壓縮 Attention 機制的混合設計:
- Compressed Sparse Attention(CSA)
- Heavily Compressed Attention(HCA)
首先需要注意的是:DeepSeek V4 中的 CSA/HCA,與 DeepSeek V2/V3 中 MLA 風格的壓縮并不是同一種思路。
MLA 的壓縮對象主要是「每個 token 對應的 KV 表示」,而 CSA/HCA 壓縮的則是「Sequence Dimension 本身」。
也就是說,它們不再為每個歷史 token 都保留一個完整(或壓縮)KV Entry,而是把一組 token 匯總成更少的壓縮 KV Entry,因此整個 Cache 本身也變短了。
![]()
MLA、CSA 與 HCA 的概念對比。
MLA 會壓縮每個 token 的 KV Representation,但依然保留「一 token 對應一個 latent KV」。而 CSA,尤其是 HCA,則進一步減少「Sequence Entry 的數量」
因此模型會犧牲部分 token-level 信息,以換取顯著更低的長上下文成本。
當然,這種壓縮也存在質量上的 Trade-off:如果壓縮過強,模型能力就可能下降。
也正因如此,DeepSeek V4 并沒有只依賴一種壓縮機制,而是:交替使用 CSA 與 HCA
- CSA 使用較輕的壓縮率,并結合類似 DSA(DeepSeek Sparse Attention)的 Sparse Selector;
- HCA 則采用更激進的壓縮,用于更便宜地覆蓋全局上下文;
- 兩者都保留了一個 Local Sliding-Window Branch,用于處理最近的未壓縮 token。
HCA 是其中更激進的版本:它會把每 128 個 token 壓縮成一個 KV Entry,然后在這些高度壓縮后的 KV 上執(zhí)行 Dense Attention。
換句話說,CSA 保留更多細節(jié),但采用 Sparse Selection; HCA 保留更少 Entry,但因此能夠負擔 Dense Attention
![]()
CSA 與 HCA 的對比。
CSA 與 HCA 在某種程度上是互補的,這也是為什么 DeepSeek V4 會交替使用它們,而不是只采用其中一種。
根據 DeepSeek V4 論文,在 1M Token Context 下,相比采用 MLA 與 DSA 的 DeepSeek V3.2:DeepSeek V4-Pro 的單 token 推理 FLOPs 僅為后者的 27%,KV Cache 大小僅為后者的 10%。
而 DeepSeek V4-Flash 更進一步:FLOPs 降至 10%,KV Cache 降至 7%。
![]()
DeepSeek V4 相較 DeepSeek V3.2 的 1M Context 效率數據。
不過,我并不會簡單地把 CSA/HCA 定義為「比 MLA 更好」。CSA/HCA 本質上是一種更激進、更偏向長上下文效率的設計,而且它本身也更加復雜。
遺憾的是,論文中并沒有提供完整的 Ablation Study。不過整體來看,論文確實展示了非常強的最終結果,例如:DeepSeek V4-Flash-Base 在多數 Base Benchmark 上超過 DeepSeek V3.2-Base; 同時擁有很強的 1M-token Retrieval 能力。
但需要注意的是,這些結果來自整個 DeepSeek V4 完整訓練體系,包括:更好的數據、基于 Muon 的優(yōu)化、mHC、精度與存儲優(yōu)化以及訓練推理系統(tǒng)優(yōu)化;
而不僅僅是 CSA/HCA 本身。就我個人而言,目前我更傾向于把 CSA/HCA 看作:
一種以效率為核心的長上下文設計。它似乎能夠在大型旗艦模型中很好地保留模型質量,但并不意味著它在所有場景下都絕對優(yōu)于 MLA。
總結
2026 年的新一代開源 LLM,一個非常明顯的趨勢是:大家都在嘗試降低長上下文成本,但并不是簡單地通過縮小模型總參數量來實現,而是通過大量結構級優(yōu)化。
- Gemma 4:跨層 KV 共享 + PLE
- Laguna:分層 Attention Budget
- ZAYA1:壓縮 latent attention
- DeepSeek V4:mHC + CSA/HCA
Transformer Block 仍然在持續(xù)演化,但這種變化已經變得越來越定向化。
相比 GPT-2 時代幾十行 PyTorch 就能實現,如今的 Attention Variant,代碼復雜度可能已經增長了 10 倍。
但這些復雜化的目的并不是增加成本,而是為了實現真正的超長上下文推理。
但另一方面,理解這些組件本身,以及它們之間如何相互作用,也正在變得越來越困難。
![]()
從 GPT-2(2019)到 DeepSeek V4-Pro(2026)的演化過程。
對此,你怎么看?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.