现代 LLM 注意力机制变体视觉指南
我原本打算写 DeepSeek V4。由于它还没发布,我就利用这段时间做了一件一直想做的事:把过去几年介绍过的各种 LLM 架构收集、整理并完善一遍。
于是过去两周里,我把这些成果整理成了一个 LLM 架构图鉴(截至本文撰写时有 45 个条目),既包含早期文章的内容,也补充了几个此前没写过的重量级架构。每个条目都配有可视化的模型卡片,之后我会定期更新这个图鉴。
图鉴地址:https://sebastianraschka.com/llm-architecture-gallery/

发布初版后,有几位读者问会不会出海报版。现在已经有了,可以通过 Redbubble 购买海报版。我订了 Medium 尺寸(26.9 x 23.4 英寸)来检验印刷效果,成品清晰锐利。不过在这个尺寸下,最小的那些文字已经相当小了,如果你想让所有内容都清晰可读,我不建议买更小的版本。

除了这个画廊,我还一直在制作几个核心 LLM 概念的精简讲解。
因此,在本文中,我想回顾一下近年来在众多知名开源权重架构中开发和使用的各种 Attention 变体。
我的目标是让这份集合既可作为参考资料,也能作为轻量级的学习资源。希望你觉得它有用且有益!
1. Multi-Head Attention (MHA)
Self-attention 让每个 token 审视序列中其他可见的 token,为它们分配权重,并利用这些权重构建新的输入上下文感知表示。
Multi-Head Attention (MHA) 是 Transformer 中该思想的标准版本。它并行运行多个具有不同学习投影的 self-attention 头,然后将它们的输出合并为更丰富的表示。

下面的部分将以快速浏览的方式讲解 self-attention 以解释 MHA。这更像是一个快速概述,旨在为诸如 grouped-query attention、sliding window attention 等相关 attention 概念做铺垫。如果你对更长、更详细的 self-attention 讲解感兴趣,可能会喜欢我那篇更长的文章《在 LLMs 中理解与编码 Self-Attention, Multi-Head Attention, Causal-Attention, and Cross-Attention》。
示例架构
1.2 历史背景与 Attention 的起源
Attention 机制早于 Transformer 和多头注意力(MHA)。它直接的前身是用于翻译任务的编码器-解码器 RNN 架构。
在这些早期系统中,编码器 RNN 逐个 token 读取源句,将其压缩为隐藏状态序列,或在最简化的情况下压缩为单一最终状态。随后,解码器 RNN 必须基于这份受限的摘要生成目标句。这种架构在处理简短、简单的用例时表现良好,但当生成下一个词所需的关键信息位于输入句的其他位置时,显而易见的瓶颈便出现了。
简而言之,其局限在于隐藏状态无法无限存储信息或上下文,在某些情况下,直接回溯完整的输入序列会更为有效。
下方的翻译示例展示了该思路的局限之一。例如,句子可能在局部选词上看似合理,但当模型过度将其视为逐词映射时,整体翻译质量便会失效。(上方面板展示了一个夸大的例子:逐词翻译该句,结果导致语法错误。)实际上,正确的下一个词取决于句级结构,以及在该步骤下哪些源词至关重要。当然,RNN 依然可以完成这种翻译,但由于前文提到的隐藏状态容量有限,它在处理长序列或知识检索任务时会遇到困难。

下一张图更直接地展示了这一变化。当 decoder 生成输出 token 时,不应局限于单一压缩后的记忆路径,而应能直接回溯到更相关的输入 token。

Transformer 保留了前述改进版 RNN 中 attention 的核心思想,但去掉了循环结构。在经典的 Attention Is All You Need 论文中,attention 成为了处理序列的主要机制本身(而不再是 RNN encoder-decoder 的一部分)。
在 Transformer 中,这一机制称为 self-attention:序列中的每个 token 都会对其他所有 token 计算权重,并利用这些权重把其他 token 的信息融合进新的表示中。Multi-head attention 就是把同样的机制并行运行多次。
1.3 掩码 Attention 矩阵
对于长度为 T 的 token 序列,attention 需要为每个 token 计算一行权重,因此整体上会得到一个 T x T 的矩阵。
每一行其实都在回答一个简单的问题:更新当前这个 token 时,每一个可见 token 该有多大影响?在仅用解码器的 LLM 中,未来的位置会被掩掉,所以下图矩阵右上角区域被置灰。
自注意力本质上,就是在因果掩码约束下去学习这些 token 间的权重模式,并据此构造出具备上下文的 token 表征。

1.4 自注意力的内部结构
下一张图展示 Transformer 如何由输入嵌入 X 计算得到注意力矩阵(A),并据此生成变换后的输入(Z)。
其中 Q、K、V 分别代表查询(queries)、键(keys)和值(values)。某个 token 的 query 表达它要查找什么;key 代表该 token 为匹配提供什么;value 是在算出注意力权重后会被混入输出的信息。
具体步骤如下:
Wq、Wk、Wv是权重矩阵,把输入嵌入投影到Q、K、VQK^T产生 token 间的原始相关度得分softmax 把这些得分归一化,得到上一节讨论过的注意力矩阵
A用
A作用于V,得到输出矩阵Z
注意,注意力矩阵并不是单独手写的对象,它是由 Q、K 以及 softmax 共同产生的。

下一张图展示了与前一张图相同的概念,但将注意力矩阵的计算隐藏在“缩放点积注意力”框内,且仅针对单个输入 token 进行计算,而非所有输入 token。这样做的目的是为了展示自注意力的单头紧凑形式,为下一节将其扩展为多头注意力做准备。

1.5 从单头到多头注意力
一组 Wq/Wk/Wv 矩阵对应一个注意力头,这意味着一个注意力矩阵和一个输出矩阵 Z。(这一点已在上一节中说明。)
多头注意力本质上是并行运行多个这样的头,每个头使用不同的学习投影矩阵。
这样做很有用,因为不同的头可以专门处理不同类型的 token 关系。例如,一个头可能专注于短的局部依赖,另一个头关注更广泛的语义联系,还有另一个头则关注位置或句法结构。

2. 分组查询注意力(GQA)
分组查询注意力(Grouped-query attention,GQA)是从标准 MHA 衍生出的一种注意力变体,由 Joshua Ainslie 等人在 2023 年的论文 GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints 中首次提出。
它不再让每个 query 头都拥有独立的 keys 和 values,而是让多个 query 头共享同一组 key-value 投影。这样一来,KV caching 的开销大幅降低(主要体现在节省内存),而整体的 decoder 结构几乎不受影响。

示例架构
Dense:Llama 3 8B、Qwen3 4B、Gemma 3 27B、Mistral Small 3.1 24B、SmolLM3 3B 和 Tiny Aya 3.35B。
Sparse(Mixture-of-Experts):Llama 4 Maverick、Qwen3 235B-A22B、Step 3.5 Flash 196B 和 Sarvam 30B。
2.1 GQA 为何流行
在我此前的架构对比文章中,我把 GQA 定位为经典多头注意力(MHA)的标准替代方案。原因在于,标准 MHA 为每个注意力头维护独立的 key 和 value,这在建模上更优,但推送到推理阶段时,所有状态都要驻留在 KV cache 中,代价很高。
GQA 的做法是保留更多 query 头,但减少 key-value 头的数量,让多个 query 共享同一组 key-value。这样既降低了参数量,也减少了 KV-cache 的读写流量,而且不像 multi-head latent attention(MLA)那样对实现提出重大改动——MLA 将在后文展开。
实际效果上,GQA 因此成为很多实验室的热门选择:它比 MHA 便宜,又没有像 MLA 这类更复杂的压缩方案那样难以实现。
2.2 GQA 的显存节省
GQA 能大幅节省 KV 缓存占用,因为每层保留的键值头越少,每个 token 需要缓存的状态就越小。这就是为什么序列长度越长,GQA 的优势就越明显。
GQA 其实是一个谱系。如果一路缩减到只有一个共享 K/V 组,实际上就等同于多头查询注意力(Multi-Query Attention),这种方式开销更低,但对建模质量的损害也更明显。理想的平衡点通常介于多头查询注意力(1 个共享组)和 MHA(K/V 组数量等于查询数量)之间,既能显著节省缓存,又不会让相对于 MHA 的建模性能下降太多。

2.3 为什么 GQA 在 2026 年仍然重要
诸如 MLA 等更先进的变体正变得越来越流行,因为它们能在相同的 KV 效率水平下提供更好的建模性能(例如,DeepSeek-V2 论文中的消融实验所讨论的那样),但它们的实现更复杂,注意力计算栈也更为复杂。
GQA 依然很具吸引力,因为它鲁棒性强、实现简单,并且更容易训练(根据我的经验,所需调优的超参数也更少)。
这就是为什么一些较新的模型在这里仍然刻意保持经典。比如,我在之前的《Spring Architectures》一文中提到,MiniMax M2.5 和 Nanbeige 4.1 就属于非常经典的模型,只用了 grouped-query attention,没有叠加其他效率优化技巧。Sarvam 也是一个很有参考价值的对比案例:30B 版本保留了经典 GQA,而 105B 版本则改用了 MLA。

3. Multi-Head Latent Attention (MLA)
Multi-head Latent Attention (MLA) 的设计动机与 Grouped-Query Attention (GQA) 类似,两者都是为了降低 KV-cache 的内存占用。区别在于,GQA 通过共享 head 来减少存储的 K/V 数量,而 MLA 则是对存储的内容进行压缩,从而缩小缓存。

MLA 最初由 DeepSeek-V2 论文提出,如今已成为 DeepSeek 时代最具标志性的理念之一(尤其在 DeepSeek-V3 和 R1 发布之后)。与 GQA 相比,MLA 在实现和部署上都更为复杂,但当模型规模和上下文长度大到使缓存流量成为主要瓶颈时,它的吸引力反而更强:在内存减少幅度相同的情况下,它能保持更好的建模性能(后文将详述)。
典型架构示例
DeepSeek V3、Kimi K2、GLM-5、Ling 2.5、Mistral Large 3 以及 Sarvam 105B
3.1 压缩而非共享
与 MHA 和 GQA 中缓存全分辨率的 Key 和 Value 张量不同,MLA 存储的是潜在表示,并在需要时重构可用的状态。本质上,这是一种嵌入在注意力机制内部的缓存压缩策略,如前一图所示。
下图展示了相较于常规 MHA 的节省效果。

3.2 MLA 消融实验
DeepSeek-V2 论文提供了一些消融实验,结果显示 GQA 在建模性能上表现不如 MHA,而 MLA 表现稳健得多,若在调优时得当,甚至能略优于 MHA。与“(它同时也)节省显存”相比,这是一个更有力的论证。
换言之,对 DeepSeek 来说,选择 MLA 作为注意力机制不仅因为它高效,更因为它在大规模下被证明是一种既能保持质量又提高效率的折中方案。(不过,有同事也告诉我,MLA 仅在特定规模下表现良好。对于较小的模型,比如小于 100B 的,GQA 似乎表现更好,或者至少更容易调优并达到预期效果。)

下面是 30B Sarvam 中的 GQA 与 105B Sarvam 中的 MLA 的对比。

3.3 MLA 在 DeepSeek 之后如何传播
自 DeepSeek V2 首次引入这套设计后,DeepSeek V3/R1、V3.1 等模型让它逐渐成为主流,随后出现了一波采用 MLA 的新架构。Kimi K2 沿用 DeepSeek 的方案并加以扩大规模;GLM-5 同时采用了 MLA 和 DeepSeek Sparse Attention(来自 DeepSeek V3.2);Ling 2.5 将 MLA 与线性注意力混合使用;Sarvam 发布了两个模型,30B 的沿用经典 GQA,105B 的则切换到了 MLA。
Sarvam 这对模型尤其有价值,因为它撇开了技术复杂度的争论——团队两种方案都实现了,然后有意为一个模型选择 GQA,为另一个选择 MLA。从某种意义上说,这让 MLA 看起来不再是一个理论上的备选项,而更像模型家族扩大规模时一条具体的架构升级路径。
4. 滑动窗口注意力(SWA)
滑动窗口注意力通过限制每个位置能关注的先前 token 数量,来降低长上下文推理的内存和计算开销。每个 token 不再关注整个前缀,而是只关注其位置附近固定窗口内的近期 token。由于注意力被限制在局部的 token 邻域内,这种机制也常被称为局部注意力。
一些架构会把这些局部注意力层与少量全局注意力层结合起来,让信息仍然能在整个序列中传播。

示例架构
Gemma 3 27B、OLMo 3 32B、Xiaomi MiMo-V2-Flash、Arcee Trinity、Step 3.5 Flash 和 Tiny Aya
4.1 以 Gemma 3 为参照
Gemma 3 依然是近期滑动窗口注意力最清晰的范例之一,因为它很容易与 Gemma 2 进行对比。Gemma 2 已经采用了混合注意力设置,局部层与全局层的比例为 1:1,窗口大小为 4096 个 token。Gemma 3 在此基础上更进一步,将比例调整为 5:1,并将窗口大小缩减至 1024。
关键发现并非局部注意力更便宜,因为这一点早已众所周知。在这里,更有趣的结论来自 Gemma 3 的消融实验:这种更激进的策略似乎只是略微影响了建模性能。

4.2 比例与窗口大小
在实际应用中,声称模型“使用 SWA”并不意味着它只依赖 SWA。真正起作用的通常是本地层与全局层的配置模式,以及注意力窗口的大小。例如:
Gemma 3 和小米的模型采用 5:1 的本地与全局层比例。
OLMo 3 和 Arcee Trinity 则采用 3:1 的比例。
小米模型还使用了 128 的窗口大小,这比 Gemma 的 1024 小得多,策略上也更具激进性。
本质而言,SWA 是一个可以通过调整窗口大小和层比例来调控激进程度的参数。

4.3 结合 SWA 与 GQA
SWA 常常与 GQA 配合使用,因为这两种技术针对的是同一推理问题中的不同环节。SWA 降低了局部层需要处理的上下文量,而 GQA 则减少了每个 token 贡献给缓存的键值(key-value)状态量。
正因如此,近期的许多 dense 模型不再把两者当作二选一,而是同时使用。Gemma 3 又是一个很好的例子,它在同一架构中把滑动窗口注意力和分组查询注意力结合了起来。
5. DeepSeek Sparse Attention (DSA)
DeepSeek Sparse Attention 是 DeepSeek V3.2 系列引入的架构改动之一,后来又出现在 GLM-5 中。
具体来说,DeepSeek V3.2 把它与Multi-head Latent Attention (MLA) 结合使用,GLM-5 出于同样的考虑也采用了这对组合,也就是在上下文长度变大时降低推理成本。
示例架构
5.1 与滑动窗口注意力的区别
在滑动窗口注意力中,当前 token 并不关注完整的前缀,而是只关注一个固定的局部窗口。DeepSeek Sparse Attention 背后的思路与此类似:每个 token 同样只关注之前 token 的一个子集。
区别在于,被选中的 token 不是由固定宽度的局部窗口决定的,而是通过学习得到的稀疏模式。简单来说,它采用「索引器 + 选择器」的机制:一个 lightning indexer 计算相关性得分,一个 token 选择器只保留得分较高的少量历史位置。
如何选出这个 token 子集,正是它与滑动窗口注意力的核心差异。滑动窗口注意力把「局部性」硬编码进去,而 DeepSeek Sparse Attention 虽然同样限制注意力只看一部分 token,但让模型自己决定哪些历史 token 值得重新关注。

5.2 DeepSeek 稀疏注意力与 MLA
DeepSeek V3.2 同时采用了多头潜在注意力(Multi-head Latent Attention,MLA)和 DeepSeek 稀疏注意力。MLA 通过压缩存储内容来降低 KV-cache 开销;DeepSeek 稀疏注意力则减少了模型需要回溯的上下文范围。简而言之,前者优化缓存表示,后者优化基于该缓存的注意力模式。

稀疏模式并非随机生成。第一阶段是一个快速索引器(lightning indexer),它为每个新的 query token 给先前的 token 打分。该模块利用 MLA 的压缩 token 表示,在先前上下文中计算学习得到的相似度得分,使模型能够排序并识别哪些早期位置值得回溯。
第二阶段是 token 选择器。它仅保留少量高得分子集,例如 top-k 个历史位置,并基于该子集生成稀疏注意力掩码。核心在于,DeepSeek 稀疏注意力并没有硬编码稀疏模式,而是通过学习来决定保留哪些历史 token。

DeepSeek 稀疏注意力机制提出时间较短,且实现相对复杂,因此目前普及程度尚未达到 Grouped-Query Attention (GQA) 的水平。
6. 门控注意力
门控注意力(Gated Attention)最好被理解为对全注意力模块的改良,而非一种独立的注意力类型。
它通常出现在混合堆叠架构中,这类架构仍保留部分全注意力层用于精确内容检索,但在常规缩放点积注意力模块之上增加了一些以稳定性为导向的修改。

6.1 门控注意力的应用位置
Qwen3-Next 和 Qwen3.5 的架构表明,近期的混合方案(下一节将详述)并没有在所有位置都替换注意力机制。相反,它们用更经济的替代方案替换了大多数注意力层,而在堆叠中保留少量全注意力层。
剩下的那些全注意力层,通常就是 gated attention 出现的地方。Qwen3-Next 和 Qwen3.5 让它与 Gated DeltaNet 按 3:1 的比例交替搭配。
不过除了混合架构,Trinity 也在较为常规的注意力堆栈里用了类似的门控思路,如前文图示所示。
6.2 Gated Attention 与标准注意力的对比
Qwen 风格混合架构或 Trinity(非混合架构)中的 gated attention 模块,本质上就是标准的缩放点积注意力,在其上做了一些改动。在原始的 Gated Attention 论文中,这些改动的目的,是让混合架构中保留的全注意力层行为更可预测。
这个模块看起来仍和标准(全)注意力差不多,但增加了:
一个输出门控,在注意力结果加回残差之前对其进行缩放;
对 q 和 k 使用零中心化的 QK-Norm 变体,替代标准 RMSNorm;
partial RoPE。
这些改动远不到 MLA 或线性注意力那种程度,只是在一个原本熟悉的注意力模块上做的稳定性和可控性调整。

注意,上图还包含 Gated DeltaNet,我们会在下一节介绍。
7. 混合注意力
混合注意力是一种更宽泛的设计模式,而不是某个具体机制。整体思路是:保留类似 Transformer 的堆栈结构,但把大部分昂贵的全注意力层替换成更便宜的线性或状态空间序列模块。
这一设计旨在提升长文本处理的效率。全量注意力的计算复杂度随序列长度呈平方级增长,当模型上下文窗口扩展至 128k、256k 甚至 1M token 级别时,注意力机制带来的显存和算力开销变得极为高昂。因此,一种更合理的架构策略是:在大多数层使用低成本的序列处理模块,仅在少数几层保留高算力检索层。(不过,这种混合架构会在一定程度上牺牲建模性能。)
在 Qwen3-Next 中,这种混合模式体现为 3:1 的 Gated DeltaNet 与 Gated Attention 模块组合。Gated DeltaNet 与 Mamba-2 有着密切关联(可参考 Gated Delta Networks: Improving Mamba2 with Delta Rule 论文),其机制可理解为 DeltaNet 风格的快速权重更新与 Mamba 风格门控机制的结合。后续架构保留了这一总体思路,但会替换为其他轻量级序列混合器,例如 Kimi Delta Attention、Lightning Attention,或标准的 Mamba-2。

7.1 Qwen3-Next 中的 Gated DeltaNet
据我了解,首个采用混合注意力架构且规模接近旗舰级别的 LLM,是 2025 年发布的 Qwen3-Next。该模型并未完全移除注意力机制,而是将三个 Gated DeltaNet 模块与一个 Gated Attention 模块进行交错混合。
在这种架构中,轻量的 Gated DeltaNet 模块承担了大部分长文本处理任务,使得显存随上下文增长的曲线远平缓于全量注意力机制。而保留较重的 Gated Attention 层,是因为 DeltaNet 在基于内容的精准检索方面准确性稍逊。
在 Gated DeltaNet 模块中,模型同时计算 query、key 和 value 向量,以及两个可学习的门控参数(α 和 β)。它不再构建传统的 token-to-token 注意力矩阵,而是通过 delta-rule 更新机制,将信息写入一个小型的快速权重(fast-weight)内存。简而言之,该内存存储过去信息的压缩摘要,而门控机制则控制新增信息的权重以及历史状态的保留程度。
这使得 Gated DeltaNet 成为一种线性注意力或循环式机制,而不仅仅是对 MHA 的简单微调。与 Mamba-2 相比,两者的紧密联系在于它们都属于线性时间门控序列模型家族;但不同之处在于,Gated DeltaNet 采用 DeltaNet 式的快速权重内存更新,而非 Mamba 的状态空间更新。

Qwen3.5 将原先的 Qwen3-Next 混合架构引入了 Qwen 的主旗舰系列,这一举动颇为引人关注。这基本上标志着混合策略取得了成功,未来我们可能会看到更多采用该架构的模型。

7.2 Kimi Linear 与改进版 Delta Attention
Kimi Linear 保留了与前者相同的 Transformer 大框架和 3:1 的配比,但对配方的两部分都做了改动。
在轻量这一侧,Kimi Delta Attention 是对 Gated DeltaNet 的改进:Qwen3-Next 用每个 head 一个标量门控来控制记忆衰减,而 Kimi 改用逐通道(channel-wise)门控,对记忆更新的控制更精细。在较重的那一侧,Kimi 把 Qwen3-Next 的 gated-attention 层换成了 gated MLA 层。
也就是说,整体模式仍和 Qwen3-Next、Qwen3.5 一样,只是两个组成部分都(略微)变了:大部分层仍由更便宜的线性类机制处理,同时保留周期性的较重层来承担更强的检索任务。

7.3 Ling 2.5 与 Lightning Attention
Ling 2.5 则是在轻量一侧做了另一种替换:不用 Gated DeltaNet,而是采用一种更简单的循环式线性注意力变体 Lightning Attention。较重的一侧则沿用 DeepSeek 的 MLA。
大部分序列混合计算都发生在成本更低的线性注意力块中,同时保留少量计算量更大的层以维持更强的检索能力。与之前不同的是,这里采用的轻量级机制是 Lightning Attention,而非 DeltaNet 或 Kimi Delta Attention。

Ling 2.5 更侧重于长上下文效率,而非追求绝对的基准测试领先。据 Ling 团队称,该模型在 32k token 下的速度远快于 Kimi K2,这正是这类混合模型想要实现的实际收益。

Nemotron 与 Mamba-2
Nemotron 进一步偏离了 Transformer 的基准模式。Nemotron 3 Nano 是一个 Mamba-Transformer 混合模型,它将 Mamba-2 序列建模块与稀疏 MoE 层交错排列,仅在少量层中使用自注意力。
这是上述基本权衡的一种更极端的版本。在这里,轻量级序列模块是 Mamba-2 状态空间块,而非 DeltaNet 式的快速权重更新,但基本的权衡逻辑相似。

更大尺寸的 Nemotron 3 Super 延续了 Mamba-2 混合注意力机制,并引入了其他以提升效率为导向的改进,例如潜在 MoE 以及用于投机解码的共享权重多 token 预测(MTP)。

结语
当然,文献中还有许多其他(通常较小众)注意力变体未被本文涵盖。本文的重点在于那些当前被用于最先进(开放权重)模型的注意力机制。
尤其期待看到以下两点:(1)全新的 Mamba-3 层被集成到上述混合架构中(取代 Gated DeltaNet);(2)注意力残差 得到更广泛的应用。
在实际应用中,大家可能也会好奇目前哪种架构是“最好”的。这个问题很难回答,因为目前缺乏公开实验,这些实验并没有在相同的训练数据等条件下对不同架构进行对比训练。
因此,我们目前只能回答"对于特定问题,哪个(已训练的)模型是最佳选择"。在我看来,混合架构仍属新兴事物,其主要卖点在于(长上下文)效率而非建模性能。所以我认为它们非常适合智能体场景(比如 OpenClaw)。 就我个人而言,混合架构的问题还在于推理栈的优化尚不成熟——我在本地跑 LLM 时,用 GPT-OSS 这类基于 grouped-query attention 的经典方案,往往能获得更高的 tok/sec 吞吐。 不管怎样,我很期待 DeepSeek V4 会带来什么,毕竟近两年来 DeepSeek 一直是个相当靠谱的风向标。