LLM架构近期发展:KV共享、mHC和压缩注意力

TL;DR · AI 摘要
LLM架构近期发展聚焦于KV共享、mHC和压缩注意力,以提升长上下文效率。
核心要点
- Gemma 4引入KV共享和每层嵌入,优化内存使用。
- Laguna XS.2采用分层注意力预算管理,降低计算成本。
- DeepSeek V4结合mHC与压缩注意力,提升推理效率。
结构提纲
按章节快速跳转。
- §引言
文章介绍近期LLM架构的发展趋势,强调长上下文处理的效率优化。
讨论KV共享、分层注意力预算、压缩注意力等关键技术。
分析Gemma 4、Laguna XS.2和DeepSeek V4的架构创新。
- §未来方向
展望LLM架构的进一步优化和应用前景。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- LLM架构优化
- KV共享
- 减少内存占用
- 分层注意力预算
- 降低计算成本
- 压缩注意力
- 提升推理效率
金句 / Highlights
值得收藏与分享的关键句。
新架构更关注长上下文效率,KV缓存大小、内存流量和注意力成本成为主要限制因素。
Gemma 4引入KV共享和每层嵌入,以减少内存使用并提高效率。
DeepSeek V4结合mHC与压缩注意力,以增强推理性能。
标题:LLM 架构新进展:KV 共享、mHC 与压缩注意力
URL 来源:https://magazine.sebastianraschka.com/p/recent-developments-in-llm-architectures
发布时间:2026-05-16T11:33:51+00:00
Markdown 内容: 短暂的家庭休假后,我很高兴回归并梳理这几周密集发布的开源权重 LLM。最让我印象深刻的是,新兴架构如何聚焦于长上下文效率的提升。
随着推理模型和智能体工作流程处理更多 token(且持续时间更长),KV 缓存大小、内存流量和注意力成本迅速成为主要瓶颈。LLM 开发者们正通过日益增多的架构技巧来降低这些成本。
本文将重点探讨几个典型案例:Gemma 4 中的 KV 共享与分层嵌入、Laguna XS.2 的分层注意力预算分配、ZAYA1-8B 的压缩卷积注意力,以及 DeepSeek V4 的 mHC 与压缩注意力机制。
这些改动在我的架构图中看似微调,但其中一些精妙的设计变更值得深入探讨。

图 1. 近期主要开源权重模型的 LLM 架构图(4-5 月)。更多图片与细节请参阅我的 LLM 架构图库。未展示所有模型规模:Qwen3.6 包含 27B 与 35B-A3B 变体,ZAYA1 以 8B 模型为代表(省略了 ZAYA1-base 与 ZAYA1-reasoning-base)。虚线框内的架构将在本文详细讨论。
请注意本文专注于架构设计,因此将略过数据混合方案、训练计划、后训练细节、RL 配方、基准测试表与产品对比。即便缩小范围,仍有大量内容需要覆盖。和往常一样,文章篇幅超出了预期,因此将聚焦于 Transformer 模块内部、残差流、KV 缓存或注意力计算的变更。
另请注意,本文仅涉及那些具有趣味性(创新性)且我尚未在其他地方讨论的设计选择,包括:
- Gemma 4 的 KV 共享与分层嵌入
- ZAYA1 的压缩卷积注意力
- Laguna XS.2 的注意力预算分配
- DeepSeek V4 的 mHC 与压缩注意力
在进入新内容前,先回顾之前的两篇文章。第一篇提供了近期 MoE 模型、路由专家、活跃参数与模型规模对比的宏观架构背景;第二篇涵盖了后续反复提及的注意力机制背景,包括 MHA、MQA、GQA、MLA、滑动窗口注意力、稀疏注意力及混合注意力设计。
[现代 LLM 注意力变体可视化指南](https://magazine.sebastianraschka.com/p/visual-attention-variants)
· 3 月 22 日

我原本计划撰写关于 DeepSeek V4 的文章。由于该模型尚未发布,我利用这段时间完成了积压已久的计划:收集、整理并完善过去几年涉及的各类 LLM 架构。
我还将部分解析内容转化为独立的简明教程页,收录于 LLM 架构图库。例如,读者可通过相应模型卡片和概念标签,查看 GQA、MLA、滑动窗口注意力、DeepSeek 稀疏注意力、MoE 路由等概念的简明解析。
本次架构进展与调整的巡礼,将从四月初谷歌发布新一代开源权重 Gemma 4 模型系列开始。该系列包含三大类别:
- Gemma 4 E2B 与 E4B 模型:面向移动端及小型本地(嵌入式)设备(即物联网)
- Gemma 4 26B 专家混合模型:专为高效本地推理优化
- Gemma 4 31B 稠密模型:追求极致质量与更便捷的后训练(因 MoE 处理更复杂)

图 2:Gemma 4 架构图
E2B 和 E4B 变体的首个小型架构调整是采用了共享 KV 缓存方案:后续层可复用前面层的键值状态,以降低长上下文场景的内存与计算开销。
这种 KV 共享并非 Gemma 4 首创。例如,可参考 Brandon 等人发表的《通过跨层注意力减少 Transformer 键值缓存大小》(NeurIPS 2024)。但这是我所见首个应用此概念的流行架构。(需注意跨层注意力与交叉注意力不应混淆。)
在深入解释 KV 共享之前,我们先简要探讨其动机。正如我近几个月所讨论的,LLM 架构设计近期的主要趋势之一就是缩减 KV 缓存大小。其根本动机在于降低内存需求,从而支持处理更长上下文——这在推理模型和智能体时代尤为重要。关于 KV 缓存的更多背景知识,可参阅我的《从零理解与编码实现 LLM 中的 KV 缓存》一文:
实际上,我在先前《现代 LLM 中注意力变体的可视化指南》一文中介绍的所有流行注意力变体,都旨在缩减 KV 缓存大小:
以经典案例为例(Gemma 4 仍在使用的):分组查询注意力(GQA)通过在不同查询头之间共享键值(KV)头来减小 KV 缓存大小,如下图所示。

图 3:分组查询注意力(GQA)在多个查询(Q)头之间共享相同的键(K)和值(V)头。
如前所述,Gemma 4 采用了 GQA。但除了 GQA 中的查询间 KV 共享外,Gemma 4 还在不同层之间共享 KV 投影,而非在各层的注意力模块中分别计算。这种 KV 共享方案(也称为跨层注意力)如下图所示。

图 4:常规 Transformer 块在各注意力模块中分别计算 Q、K、V 投影(左图)。跨层注意力设计(右图)则在多个层之间共享相同的 K 和 V 投影。
如图 2 架构概述中简要提示,Gemma 4 E2B 以 4:1 模式使用常规 GQA 和滑动窗口注意力。(更准确地说,Gemma 4 E2B 使用的是 MQA,即 GQA 的单 KV 头特例)。
在 GQA(或 MQA)场景下,KV 共享的工作机制如下:后续层不再计算自身的键值投影,而是复用最近前一个非共享同类型注意力层的 KV 张量。换言之,滑动窗口层会与之前的滑动窗口层共享 KV,全注意力层则与之前的全注意力层共享 KV。各层仍会计算自身的查询投影,因此每层可形成独立的注意力模式,但计算昂贵且内存密集的 KV 缓存会在多个层间复用。
例如,Gemma 4 E2B 拥有 35 个 Transformer 层,但仅前 15 层计算自身的 KV 投影;最后 20 层则复用最近前一个非共享同类型注意力层的 KV 张量。类似地,Gemma 4 E4B 的 42 层中,前 24 层计算自有 KV,最后 18 层共享 KV。
这实际能节省多少?由于我们在各层间共享约一半的 KV,KV 缓存大小可减少约一半。对于最小的 E2B 模型,在长上下文 128K 场景下(采用 bfloat16 精度),可节省 2.7 GB,如下图所示。(E4B 变体在 128K 上下文下可节省约 6 GB。)

图 5:类 Gemma 4 E2B 配置中,GQA 与跨层 KV 共享带来的 KV 缓存内存节省。为简化图示,未展示滑动窗口注意力带来的额外节省。
当然,KV 共享的缺点在于它是对真实计算的“近似”。更准确地说,它降低了模型容量。但根据跨层注意力论文的结论,这种影响可能微乎其微(针对已测试的小型模型)。
Gemma 4 E2B 和 E4B 变体还包含第二项以效率为导向的设计选择:每层嵌入(PLE)。这与前述 KV 共享方案相互独立。
KV 共享旨在缩减 KV 缓存,而 PLE 则关乎参数效率——它让小型 Gemma 4 模型能使用更多词元特定信息,同时避免主 Transformer 堆栈变得与同等参数规模的稠密模型一样昂贵。
例如,Gemma 4 E2B 和 E4B 中的 "E" 代表"有效"。具体来说,Gemma 4 E2B 标注为 23 亿有效参数,若计入嵌入层参数则达 51 亿。(同理,Gemma 4 E4B 标注为 45 亿有效参数,计入嵌入层后为 80 亿)。
简而言之,在"E"系列模型中,主要 Transformer 堆栈的计算量更接近较小的参数值,而较大的参数值包含了额外的嵌入表层。(关于嵌入层工作原理的图示说明,请参阅我的代码笔记《理解嵌入层与线性层的区别》)。
从概念上讲,新的 PLE 路径如下图所示:

图 6:带有 PLE 残差路径的简化 Gemma 4 模块。常规模块首先计算注意力和前馈残差更新,得到的隐藏状态对层特定 PLE 向量进行门控,最终在模块末端将投影后的 PLE 更新作为额外残差更新加入。
PLE 向量本身在重复的 Transformer 模块之外制备。简化形式下,PLE 构造有两个输入:首先,令牌 ID 经过逐层嵌入查找;其次,常规令牌嵌入通过线性投影进入相同的打包 PLE 空间。这两部分相加、缩放并重塑为每个层包含一个切片张量。注意每个模块随后会接收各自的切片。

图 7:简化的 PLE 构造。令牌 ID 提供逐层嵌入查找,而常规令牌嵌入被投影到同一空间。两部分贡献结合并重塑后,每个 Transformer 模块都会接收到自己层特定的 PLE 切片。
重要细节在于:PLE 并未为每个 Transformer 模块提供完整独立的常规令牌嵌入层副本,而是一次性计算逐层嵌入查找。如前所述,它通过"重塑/选择第 l 层"为每个层提供小型令牌特定嵌入切片。
因此,对于每个输入令牌,Gemma 4 会准备一个包含每个解码器层对应小向量的打包 PLE 张量。在前向传播过程中,第 l 层仅接收自己的切片(即图 6 Gemma4WithPLEBlock 中的 ple_l)。
在 Transformer 模块内部,常规的注意力和前馈分支照常运行:首先计算注意力残差更新,接着计算前馈残差更新。在第二次残差相加后,得到的隐藏状态(我在图 6 伪代码中记为 _z_)被用于对层特定 PLE 向量进行门控。经门控的 PLE 向量被投影回模型隐藏维度,归一化后作为额外残差更新加入。
因此,有用的思维模型是:Transformer 模块仍保持相同的注意力和前馈主路径,但 Gemma 4 在前馈分支后添加了小型层特定令牌向量。这通过嵌入参数和小型投影增强了表征能力,虽然会增加计算开销,但避免了将整个 Transformer 堆栈扩展至更大参数规模的成本。
但为何选择 PLE?更简单的方案本是直接缩小稠密模型——减少层数、缩窄隐藏状态或缩小前馈网络。这虽能降低内存和延迟,但也会削弱模型主要计算组件的容量。
PLE 设计将昂贵的 Transformer 模块保持在接近较小"有效"规模的水平,同时将额外容量存储于逐层嵌入表中。这些参数主要属于可缓存的查找型参数,使用成本远低于添加更多注意力或 FFN 权重。
此外,我们只能相信谷歌的说法——这是有效且值得的设计选择。若能见到对比研究,观察这种 E2B 设计与常规 Gemma 4 23 亿模型及常规 Gemma 4 51 亿模型的差异,将会非常有趣。
原则上,PLE 并不天然局限于小模型。我们也可以将逐层嵌入切片附加到更大模型上。但大模型本身已具备足够容量,这些额外嵌入可能帮助有限。况且对于大模型,我们已采用 MoE 设计作为在保持计算足迹较小情况下增加容量的技巧。
顺便一提,如果您对相对简洁易读的代码实现感兴趣,我在此处从头实现了 Gemma 4 E2B 和 E4B 模型。
Laguna 是 Poolside 发布的首个开放权重模型,这家欧洲公司专注于训练用于编码应用的 LLM。我的几位前同事近年加入了 Poolside,他们拥有众多人才组成的优秀团队。看到更多公司也发布其模型的开放权重版本,着实令人欣喜。
话说回来,下图展示的Laguna XS.2架构初看非常标准。但有个我没展示(/试图塞进去)的细节,是我们可以称之为"分层注意力预算"的概念。

图9:Poolside的Laguna XS.2架构。
这里注意力预算的部分理念是,Laguna XS.2不再给每个Transformer层分配相同的完整注意力预算,而是按层调整注意力成本。该架构总共40层,包含30个滑动窗口注意力层和10个全局/完整注意力层。与常规做法一致,滑动窗口层仅关注局部窗口(此处为512个token),这使得KV缓存和注意力计算成本更低。全局层虽然计算成本更高,但保留了访问上下文窗口中全部信息的能力。
这种滑动窗口+全局/完整注意力混合的模式并非Laguna XS.2独有,许多其他架构(包括Gemma 4)也在使用。
但创新之处在于采用了分层查询头数量配置。例如,Hugging Face模型中心的config.json包含num_attention_heads_per_layer设置,使得各层可以拥有不同数量的查询头,同时保持KV缓存形状兼容。

图10:Laguna的分层查询头预算配置,其中全局注意力层每个KV头对应6个查询头,滑动窗口注意力层每个KV头对应8个查询头。
因此Laguna XS.2为滑动窗口层分配更多查询头,为全局层分配较少查询头,同时将KV头固定为8个。这就是配置文件中实际的分层头预算方案。
Laguna XS.2是近期生产级开源模型中实施分层查询头预算最突出的范例之一。但按层调整模型容量的更广泛理念至少可追溯至苹果公司2024年的OpenELM。
那么这种设计的目的是什么?与KV共享类似,其核心在于将注意力容量用在最需要的地方,而非均分给每个层。具体来说,全局注意力层由于需要扫描整个上下文而成本高昂,因此Laguna为其分配比滑动窗口注意力模块更少的查询头。
(此外,另一个较小的实现细节是Laguna还采用了逐头注意力输出门控;这与Qwen3-Next等模型的做法类似,由于我在前文中已涵盖相关内容,此处不再赘述。)
与Laguna类似,ZAYA1-8B是开源权重领域的另一位新晋选手。它由Zyphra开发,发布过程中有个有趣的细节是该模型是在AMD GPU而非更常见的NVIDIA GPU(或Google TPU)环境下训练的。
不过其核心架构细节在于压缩卷积注意力(CCA)与分组查询注意力的结合使用。与主要使用潜在表示作为紧凑KV缓存格式的MLA风格设计不同,CCA直接在压缩潜在空间执行注意力运算,关于这点我们稍后会详细说明。
(旁注:ZAYA1-8B的config.json列出了80个交替层条目,而非传统的40个Transformer模块。这些条目在CCA/GQA注意力层与MoE前馈层之间交替出现。但在架构图中,将其可视化为40个重复的注意力+MoE组合对更便于理解,这在概念上是等价的。)

图11:采用压缩卷积注意力的Zaya1(8B)Transformer模块。
如上图所示,ZAYA1-8B采用压缩卷积注意力(CCA)配合4:1的GQA布局。关键在于其注意力模块是围绕CCA构建的,而非标准的滑动窗口注意力模块。
什么是压缩卷积注意力?
我认为CCA在理念上与DeepSeek模型中的多头潜在注意力(MLA)相关,因为两者都在注意力模块中引入了压缩潜在表示。然而它们使用该潜在空间的方式有所不同。MLA主要利用潜在表示来减少KV缓存。在MLA中,KV张量以紧凑形式存储,然后被投影到注意力头空间进行实际的注意力计算。

图12:常规多头注意力(MHA)与多头潜在注意力(MLA)并列示意图。
CCA通过压缩Q、K和V,直接在压缩后的潜在空间中执行注意力运算。这就是为什么CCA不仅能减小KV缓存大小,还能降低预填充阶段和训练过程中的注意力计算量(FLOPs)。

图13:多头潜在注意力(MLA)与压缩卷积注意力(CCA)并列示意图。
如上图13所示,在CCA中,经过压缩的潜在表示直接输入注意力机制,生成的压缩注意力向量随后进行上投影操作。
需要注意的是,该机制之所以被称为压缩卷积注意力而非单纯压缩注意力,是因为在潜在K和Q表示上还进行了额外的卷积混合操作。图12中未展示卷积混合部分(因版面过于拥挤),但其原理相对简单直接。
如图12所示,卷积混合直接在压缩后的Q和K张量上进行。关键在于:压缩虽然使Q、K、V变得更窄,节省了计算量和缓存,但可能削弱注意力的表达能力。卷积操作能以较低成本为压缩后的Q和K向量提供更多局部上下文信息,然后再用于计算注意力分数(卷积混合仅应用于Q和K而非V,因为Q和K决定注意力分数,而V代表通过这些分数进行加权平均的内容)。

图14:序列混合卷积的概念示意图
除了图13展示的序列混合,还存在通道混合组件。其原理类似,故在此省略图示。
CCA似乎是Zyphra公司早于ZAYA1-8B技术报告提出的注意力机制。独立的CCA论文《压缩卷积注意力:压缩潜在空间中的高效注意力》首次于2025年10月发布,明确提出了CCA机制。ZAYA1-8B随后将该机制作为核心组件之一。
但关键问题是“它是否优于MLA”?根据CCA论文自身的实验数据,在相同压缩设置下,CCA确实表现优于MLA。
总体而言,最值得关注的是这种新型注意力机制。该模型还采用了相当极端(即高度稀疏)的MoE配置,每个token仅激活一个路由专家,但这部分较为常见。CCA的独特之处在于它直接在压缩潜在空间中执行注意力运算,并对压缩后的Q和K表示进行卷积混合,以缓解压缩对注意力表达能力的限制。简而言之,ZAYA1-8B不仅试图在前馈层节省计算量,还在注意力机制本身进行优化。
DeepSeek V4是今年迄今为止最具话题性和最大规模的模型发布。有趣的是,如下表所示,DeepSeek V4-Pro也是表中所有模型里参数稀疏度最高的MoE模型(以激活参数占比衡量)。
需要注意:激活参数占比仅是评估维度之一,它不包含KV缓存大小、注意力模式、上下文长度、路由开销、硬件效率或训练质量等因素。但在比较稀疏模型时,这仍是一个有效的快速参考指标。
关于DeepSeek V4有许多可讨论之处,但鉴于已有大量报道,且为聚焦架构调整主题,我将重点分析与先前架构相比最具创新性的两个部分:
- 采用mHC拓宽残差路径
- 通过CSA/HCA实现长上下文注意力的压缩与稀疏化
观察下方DeepSeek V4架构图,看似结构复杂。有效的解读方式是将残差路径变更(mHC)与注意力路径变更(CSA/HCA及压缩注意力缓存)分开理解。

图17:DeepSeek V4-Pro架构概览图。
让我们从 DeepSeek V4 的 mHC 组件开始讲起。这项技术可以追溯到 DeepSeek 团队去年分享的一篇研究论文(2025年12月31日,mHC:流形约束超连接)。不过在那篇论文中,该技术仅在实验性的270亿参数规模模型上进行了测试。如今我们看到它被应用于旗舰版本中,这很好地表明该想法在实际生产中表现优异。
mHC 的核心思想是对 Transformer 模块内部的残差连接设计进行现代化改造,这一点令人耳目一新,因为架构调整通常集中在注意力机制、归一化层布局和 MoE 部分。
mHC 基于先前关于超连接的研究(参见 Zhu 等人 2024 年的论文《超连接》),我们有必要先简要讨论一下。超连接通过用多个并行残差流及它们之间的学习映射来替代 Transformer 模块中的单一残差流,从而对其进行改造。
(对于不熟悉残差连接的读者,我多年前制作过一个关于残差神经网络的视频,其中解释了其基本机制。)
超连接的核心思想是拓宽残差流。我们可以将其理解为维护多个并行残差流,并通过额外的残差映射线性变换在层间混合这些流。由于注意力或 MoE 层本身仍在常规隐藏大小上运行,超连接还增加了预映射将并行残差流合并为层的常规隐藏向量,以及后映射将层输出重新分布到并行残差流中。下图直观地总结了这个结构。

图18:常规 Transformer 模块(上)与采用超连接的 Transformer 模块(下),使用 mHC 论文中的标注图例,https://arxiv.org/abs/2512.24880。
下图聚焦于 Transformer 模块的注意力层部分,但相同概念也适用于 MoE 层周围的第二个残差分支。
超连接的目的是在不实际拓宽注意力或 MoE 层的情况下,使残差路径更具表达能力。这在 FLOPs 上的代价仅轻微增加,因为额外的映射操作是在较小的残差流轴上进行的(例如 DeepSeek V4 中 n=4),而非巨大的隐藏维度。
在原始超连接论文中,70亿参数的 OLMo MoE 实验的每 token FLOPs 从 13.36G 增加到 13.38G,基本保持不变。在报告的性能提升方面,改进幅度适中但保持了一致性,如下图所示。
(不过仅关注 FLOPs 有些简单化。拓宽后的残差状态仍需存储、在内存中移动、混合等。因此实际开销可能更多来自内存流量和实现复杂度,而非算术运算,这些并未被明确测量。但考虑到 DeepSeek V4 全力追求效率,这似乎是个值得的补充。)
此外,如上图所示,使用约一半训练 token 数量即可达到基线性能。
从常规超连接(HC)到流形约束超连接(mHC)的主要变化是映射不再无约束。在常规 HC 中,残差映射是一个学习得到的混合并行残差流的矩阵,但堆叠多个此类矩阵可能会不可预测地放大或缩小信号。
在 mHC 中,该残差映射被投影到双随机矩阵的流形上,意味着所有元素非负且每行每列之和为1。这使得残差混合的行为更类似于跨流的信息稳定再分配。_预映射_和_后映射_也被约束为非负且有界,从而在从拓宽的残差状态读取和写回时避免抵消。简言之,mHC 保留了 HC 更丰富的残差混合特性,但增加了约束使其能更安全地扩展,这对更大(更深)的模型更为重要。
除此之外,使用并行残差流的核心思想得以保留,如下图所示。

图20:采用超连接(HC)和流形约束超连接(mHC)的 Transformer 模块,使用 mHC 论文中的标注图例,https://arxiv.org/abs/2512.24880。
在 mHC 论文中,使用270亿参数模型进行实验时,DeepSeek 团队的优化实现(包含融合、重计算和流水线调度)相比单流基线,在所有 Transformer 模块中使用4个残差流(n=4)仅增加了6.7%的训练时间开销。
总结本节内容,HC/mHC 通过将单一残差流替换为多个相互作用的残差流,改变了信息在这些层间的传递方式,同时 mHC 还增加了额外的稳定性约束,而计算开销仅略有增加。此外,它与 CSA/HCA 注意力机制的改动配合良好,后者修改了 transformer 模块的其他部分,我将在下文讨论。
DeepSeek V4 的另一项主要架构改动在于注意力机制。其动机同样是针对超长上下文场景:注意力机制不仅因为注意力分数计算变得昂贵,还因为 KV 缓存会随序列长度增长而膨胀。DeepSeek V4 通过融合两种压缩注意力机制——压缩稀疏注意力(CSA)和重度压缩注意力(HCA)——来解决这个问题。
如需回顾相关知识,我推荐阅读我之前的《现代 LLM 中注意力变体的可视化指南》一文,其中涵盖了多头潜在注意力(MLA)和 DeepSeek 稀疏注意力(DSA)等多种注意力机制。
首先需要注意的是,DeepSeek V4 中的 CSA/HCA 与 DeepSeek V2/V3 使用的 MLA 式压缩是不同类型的压缩。MLA 主要压缩每个 token 的 KV 表示,而 CSA 和 HCA 则沿序列维度进行压缩。也就是说,它们不是为每个历史 token 保留一个完整(或压缩)的 KV 条目,而是将 token 组汇总为更少的压缩 KV 条目,从而使缓存变短。DeepSeek V4 也使用了紧凑的压缩条目和共享 KV 注意力,但与 MLA 的主要区别在于序列长度压缩。下图展示了这一区别。

图 21:MLA 式的逐 token 潜在缓存、CSA 和 HCA 的概念性比较。MLA 压缩存储的 KV 表示,但每个 token 仍保留一个潜在条目。CSA 以 m=4 和稀疏 top-k 选择进行较温和的序列缩短,而 HCA 使用更激进的序列压缩,m’=128,并在较短的缓存上进行稠密注意力。
CSA/HCA 的质量权衡也与 MLA 不同。如上图所示,MLA 压缩每个 token 的存储表示,但仍为每个 token 保留一个潜在 KV 条目。CSA,尤其是 HCA,则通过减少序列条目数量走得更远,因此模型牺牲了一些 token 级别的信息,以换取长上下文成本的大幅降低。
这同样是为了降低长上下文成本,但如果压缩过强,这种权衡可能会损害建模质量,这就是为什么 DeepSeek V4 不依赖单一压缩方案,而是在 CSA 和 HCA 之间交替使用。CSA 使用较温和的压缩率和 DeepSeek 稀疏注意力(DSA)风格的选择器,HCA 使用更激进的压缩以实现更廉价的全局覆盖,并且两者都保留了用于最近未压缩 token 的局部滑动窗口分支。CSA 中的这种稀疏选择基于 DeepSeek 稀疏注意力(DSA),我在早先关于 DeepSeek V3.2 的文章中有更详细的讨论。
HCA 是两者中更激进的变体。它将每 128 个 token 压缩成一个压缩 KV 条目,然后对这些重度压缩的条目使用稠密注意力。换句话说,CSA 保留了更多细节但使用稀疏选择,而 HCA 保留的条目少得多,因此能够对它们进行稠密注意力计算,如下图所示。这使得两种机制在一定程度上互补,因此 DeepSeek V4 交错使用 CSA 和 HCA 层,而不是仅使用其中之一。

图 22:CSA 选择一组稀疏的压缩历史块,而 HCA 则在更重度压缩的块上进行稠密注意力计算。两条路径还通过一个 128 token 的滑动窗口分支包含最近的未压缩 KV 条目。
DeepSeek V4 论文报告称,在 100 万 token 的上下文长度下,与使用 MLA 和 DeepSeek 稀疏注意力(DSA)的 DeepSeek V3.2 相比,DeepSeek V4-Pro 仅使用了其单 token 推理 FLOPs 的 27% 和 KV 缓存大小的 10%。DeepSeek V4-Flash 则更小,相对于 DeepSeek V3.2,其 FLOPs 仅为 10%,KV 缓存大小仅为 7%。

图 23:DeepSeek V4 论文中报告的相对于 DeepSeek V3.2 的 100 万上下文效率数据。
顺便说一句,我不会笼统地说 CSA/HCA 比 MLA "更好"。CSA/HCA 是一种更激进的長上下文设计,而且无疑也更复杂。遗憾的是,论文中没有进行消融研究。但总体而言,论文报告了强大的整体建模结果,包括 DeepSeek V4-Flash-Base 在大多数基础模型基准测试中优于 DeepSeek V3.2-Base,以及强大的 100 万 token 检索结果。不过这些结果是针对完整的 DeepSeek V4 方案,该方案还包括更好的数据、基于 Muon 的优化、mHC、精度/存储优化以及训练/推理系统变更。
就个人而言,目前我会将 CSA/HCA 视为一种以效率为中心的長上下文设计,在其大型旗舰模型中似乎能很好地保持建模质量,但未必普遍优于 MLA。
总的来说,今年一个有趣的趋势是,大多数新的开放权重模型都试图在不单纯减少总参数量的情况下降低長上下文推理的成本。例如:
- Gemma 4 通过跨层 KV 共享减少 KV 缓存内存,并通过每层嵌入增加容量。
- Laguna XS.2 调整了每层获得的注意力容量。
- ZAYA1-8B 将注意力移至压缩的潜在空间。
- DeepSeek V4 增加了受限残差流混合和压缩的長上下文注意力。
所有这些调整都增加了更多的复杂性,这似乎是当前 LLM 架构的发展方向。
我的主要结论是,Transformer 模块仍在变化,但方式相当有针对性。基本方案仍然基于原始的仅解码器 Transformer 架构(GPT),但许多部分都进行了升级或替换,并且它们变得更加专业化,以适应更长的上下文和更高效的推理,而定性的建模性能似乎主要由数据质量(和数量)以及训练方案驱动。
你们许多人过去问我的问题集中在 Transformer 何时(或是否)会被其他东西取代。当然,还有其他设计,如扩散模型,但 Transformer 仍然是先进架构发布的现状。
然而,随着每个发布季度的推进,我们看到了越来越多的调整。虽然实现一个基本的 Transformer 模块可能只需要 50-100 行 PyTorch 代码,但这些调整(尤其是围绕注意力变体的调整)可能会使代码复杂度增加 10 倍。这本身并不是坏事,因为这些调整降低(而非增加)了运行时成本。然而,要清晰理解各个组件及其相互作用正变得越来越困难。

图 24:从 GPT-2(2019)到 DeepSeek V4-Pro(2026)的演变
例如,我相当确定,第一次接触 LLM 架构的人在看到 DeepSeek V4 源代码时会完全不知所措。但是,如果从原始的仅解码器风格的 LLM(GPT/GPT-2)开始,然后逐步添加/学习这些新组件,一次一个,我们就可以使学习过程保持在可控范围内。我想,这个故事的寓意是:持续学习,一次掌握一种架构 :)
顺便提一下,我非常兴奋地分享,我已经完成了《从零开始构建推理模型》的写作,所有章节现已开放早期访问。过去一个月里,我和出版商努力完成了最终排版,本周它将送交印刷。(好消息:这次印刷版将是彩色的!)
这可能是我迄今为止最具雄心的书籍。我花了大约一年半的时间来撰写它,并进行了大量的实验。在时间、精力和打磨方面,它也可能是我付出最多努力的一本书,我希望你们会喜欢它。
主要主题包括:
- 评估推理模型
- 推理时缩放
- 自我优化
- 强化学习
- 蒸馏
关于 LLM 中的"推理"有很多讨论,我认为理解它在 LLM 语境中真正含义的最佳方式就是从头开始实现一个!