博客进阶
现代大语言模型中注意力变体的可视化指南
A Visual Guide to Attention Variants in Modern LLMs
文章以图解方式梳理现代 LLM 中的注意力变体,涵盖 MHA、GQA、MLA、稀疏注意力和混合架构等。作者说明原计划写 DeepSeek V4,因该模型尚未发布而转向整理过去几年介绍过的 LLM 架构,形成含 45 个条目的 LLM 架构画廊并配有视觉模型卡,另提供海报版本。适合想系统了解各类注意力结构的读者。
- 分级
- 值得看
- 收录时间
- 2026-10-29
中文精读
原文约 5,934 词 · 24 节
导言:从 MHA、GQA 到 MLA、稀疏注意力与混合架构
- Sebastian Raschka 原计划写 DeepSeek V4,但因尚未发布,转而整理过去几年介绍过的各类 LLM 架构。
- 他把这项工作整理成一个 LLM 架构画廊,成文时收录 45 个条目,每条附一张可视化模型卡,并计划定期更新。
- 读者提出海报需求后,他通过 Redbubble 提供了海报版;他订购 Medium 尺寸(26.9 x 23.4 英寸)验证印刷效果,认为清晰但最小字号偏小,不建议买更小尺寸。
- 本文旨在回顾近年重要开源权重架构中使用的各种注意力变体,既作参考也作轻量学习材料。
1. 多头注意力(MHA)
- 自注意力让每个 token 查看序列中可见的其他 token,为其分配权重,并据此构建新的上下文感知表示。
- 多头注意力(MHA)是这一思想的标准 Transformer 版本:多个自注意力头用不同的学习投影并行运行,再把输出合并成更丰富的表示。
- 本节后面的内容是对自注意力的快速回顾,为 GQA、滑动窗口注意力等概念铺垫。
- MHA 的示例架构包括 GPT-2、OLMo 2 7B 和 OLMo 3 7B。
1.2 历史背景:注意力为何被发明
- 注意力早于 Transformer 和 MHA 出现,其直接背景是用于翻译的编码器—解码器 RNN。
- 编码器 RNN 逐词读取源句并压缩成隐藏状态序列(最简形式只保留一个最终状态),解码器必须从这个有限摘要生成目标句。
- 瓶颈在于隐藏状态无法存储无限多的信息或上下文;一旦下一步输出所需信息位于输入句的其他位置,逐词映射式的翻译就会失败,长序列与知识检索任务更明显。
- 改进思路是让解码时的当前输出位置直接回看完整的输入序列,而不是依赖单一压缩状态。
- Transformer 保留了这一核心思想但去掉了循环:在《Attention Is All You Need》中,注意力本身成为主要的序列处理机制。
- 在 Transformer 中该机制称为自注意力:每个 token 对所有其他 token 计算权重,并用权重混合信息生成新表示;MHA 就是同一机制并行运行多次。
1.3 带掩码的注意力矩阵
- 对长度为 T 的序列,每个 token 需要一行权重,因此整体是一个 T x T 矩阵。
- 每一行回答一个问题:更新这个 token 时,每个可见 token 应该占多大权重。
- 在仅解码器 LLM 中,未来位置被掩码屏蔽,所以矩阵右上部分被置灰。
- 自注意力的本质是在因果掩码下学习这些 token 对 token 的权重模式,再用它们构建上下文感知的 token 表示。
1.4 自注意力内部机制
- Q(query)表示该 token 在寻找什么,K(key)表示每个 token 提供什么用于匹配,V(value)表示权重算出后被混合进输出的信息。
- Wq、Wk、Wv 是把输入嵌入投影为 Q、K、V 的权重矩阵;QK^T 得到原始 token 间相关性分数。
- softmax 把分数归一化成注意力矩阵 A;A 作用于 V 得到输出矩阵 Z。
- 注意力矩阵不是手工写出的对象,而是由 Q、K 和 softmax 共同产生的。
- 另一张图把注意力矩阵计算隐藏在“缩放点积注意力”框内,只对单个输入 token 演示,展示单头的紧凑形式。
1.5 从一个头到多头注意力
- 一组 Wq/Wk/Wv 矩阵构成一个注意力头,对应一个注意力矩阵和一个输出矩阵 Z。
- 多头注意力就是用不同的学习投影矩阵并行运行多个这样的头。
- 这样做的价值在于不同头可以专注于不同的 token 关系:有的关注短距离局部依赖,有的关注更广的语义联系,有的关注位置或句法结构。
2. 分组查询注意力(GQA)
- GQA 源自标准 MHA,由 Joshua Ainslie 等人在 2023 年论文《GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints》中提出。
- 它不让每个查询头拥有自己的键和值,而是让多个查询头共享同一份键值投影,从而大幅降低 KV 缓存(KV cache)成本,主要是内存减少,而整体解码器结构变化不大。
- 采用 GQA 的稠密模型示例包括 Llama 3 8B、Qwen3 4B、Gemma 3 27B、Mistral Small 3.1 24B、SmolLM3 3B 和 Tiny Aya 3.35B。
- 稀疏(混合专家)模型示例包括 Llama 4 Maverick、Qwen3 235B-A22B、Step 3.5 Flash 196B 和 Sarvam 30B。
2.1 GQA 为何流行;2.2 GQA 的内存节省
- 标准 MHA 让每个头都有独立的键和值,从建模角度更优,但推理时把这些状态都保存在 KV 缓存中代价高昂;GQA 因此被视为替代 MHA 的新标准。
- GQA 保留较多查询头、减少键值头数量并让多个查询共享,既降低参数量也降低 KV 缓存流量,且不需要像多头潜在注意力(MLA)那样做剧烈改动。
- 对希望比 MHA 更便宜、又比 MLA 这类压缩方案更易实现的研究团队来说,GQA 一直是很受欢迎的选择。
- GQA 是一个连续谱:把键值组压缩到只剩一个共享组即进入多查询注意力(MQA)范畴,更便宜但更可能损害建模质量;通常最优点位于 MQA 与 MHA 之间。
- 每层保留的键值头越少,每个 token 需要缓存的 K/V 状态越少,因此序列长度越大,GQA 的收益越明显。
2.3 GQA 在 2026 年为何仍有意义
- MLA 等更先进的变体能在同等 KV 效率下提供更好的建模表现(如 DeepSeek-V2 论文的消融实验所示),但实现和注意力栈更复杂。
- GQA 仍然有吸引力,因为它稳健、更易实现、也更容易训练,所需超参数调优更少(按其经验)。
- 一些新模型故意保持经典做法:MiniMax M2.5 和 Nanbeige 4.1 只用 GQA,不叠加其他效率技巧。
- Sarvam 是很好的对照:30B 版本保持经典 GQA,105B 版本改用 MLA;文中对比了 105B(MLA)、30B(GQA)与纯 MHA 的总 KV 缓存大小。
3. 多头潜在注意力(MLA)
- MLA 与 GQA 动机相同,都是为了降低 KV 缓存内存占用,区别在于 MLA 靠压缩所存储的内容,而不是靠共享头减少 K/V 数量。
- MLA 缓存的是压缩后的潜在表示,也会作用于查询(图中为简化未画),最初由 DeepSeek-V2 论文提出。
- 在 DeepSeek-V3 和 R1 之后,MLA 成为 DeepSeek 时代的标志性设计:实现和部署都比 GQA 复杂,但在模型规模和上下文长度大到缓存流量成为主导时更有吸引力。
- 示例架构包括 DeepSeek V3、Kimi K2、GLM-5、Ling 2.5、Mistral Large 3 和 Sarvam 105B。
3.1 压缩而非共享;3.2 MLA 消融实验
- 与 MHA、GQA 缓存全分辨率键值张量不同,MLA 存储潜在表示,需要时再重建可用的状态,本质上是内嵌在注意力中的缓存压缩策略。
- 上下文越长,缓存潜在表示而非完整 K/V 张量带来的节省越明显。
- DeepSeek-V2 论文的消融显示:GQA 的建模表现低于 MHA,而 MLA 保持得很好,精心调优时甚至能超过 MHA。
- 因此 MLA 不只是省内存,而是在大规模下保持质量的效率手段;不过同行表示 MLA 只在特定规模以上效果好,100B 以下的较小模型 GQA 似乎更好,至少更易调优。
- 文中再次对比 30B Sarvam 的 GQA 与 105B Sarvam 的 MLA:两者从不同方向解决同一瓶颈,权衡是简单性 versus 更大模型上更好的建模表现。
3.3 MLA 在 DeepSeek 之后的扩散
- DeepSeek V2 提出、V3/R1、V3.1 等确立该设计之后,MLA 出现在第二批架构中。
- Kimi K2 沿用 DeepSeek 的方案并扩大规模;GLM-5 采用 MLA 并结合 DeepSeek V3.2 的 DeepSeek 稀疏注意力;Ling 2.5 把 MLA 与线性注意力混合架构搭配。
- Sarvam 发布两个模型:30B 保持经典 GQA,105B 改用 MLA;这一对模型排除了技术复杂度讨论的干扰。
- Sarvam 团队两种变体都实现后有意分别采用,使 MLA 更像模型家族扩大规模时的具体架构升级路径,而不只是理论上的替代方案。
4. 滑动窗口注意力(SWA)
- SWA 通过限制每个位置能关注多少前面的 token,降低长上下文推理的内存与计算成本:不再关注整个前缀,只关注当前位置附近固定窗口内的近期 token。
- 由于注意力被限制在局部 token 邻域,该机制常被称为局部注意力(local attention)。
- 一些架构把局部层与偶尔出现的全局注意力层结合,使信息仍能跨整个序列传播。
- 常规注意力是全局注意力,SWA 则把许多层变为局部注意力层。
- 示例架构包括 Gemma 3 27B、OLMo 3 32B、Xiaomi MiMo-V2-Flash、Arcee Trinity、Step 3.5 Flash 和 Tiny Aya。
4.1 Gemma 3 作为参照;4.2 比例与窗口大小
- Gemma 3 是最清晰的近期 SWA 例子之一,便于与 Gemma 2 对比:Gemma 2 已采用局部与全局层 1:1 的混合注意力,窗口 4096 token。
- Gemma 3 把比例推进到 5:1,并把窗口缩小到 1024;其消融实验的要点不是局部注意力更便宜(这已为人所知),而是更激进的设置只轻微损害建模表现,对困惑度影响很小。
- “使用 SWA”并不意味着只用 SWA,真正重要的是局部与全局层的模式及窗口大小:Gemma 3 与 Xiaomi 用 5:1,OLMo 3 与 Arcee Trinity 用 3:1。
- Xiaomi 的窗口为 128,比 Gemma 的 1024 小得多,也更激进;SWA 本质上是一个可调激进程度的旋钮。
- 长上下文的节省来自把许多全注意力层换成局部层,减少这些层需要考虑的缓存上下文。
4.3 SWA 与 GQA 结合
- SWA 常与 GQA 一起出现,因为二者处理同一推理问题的不同部分:SWA 减少局部层需要考虑的上下文,GQA 减少每个 token 对缓存的键值状态贡献。
- 因此许多近期稠密模型两种都用,而不是把它们视为互斥选项。
- Gemma 3 再次是参照点:它在同一架构中同时使用滑动窗口注意力和分组查询注意力。
DeepSeek 稀疏注意力(DSA)及其与滑动窗口注意力的区别
- DSA 是 DeepSeek V3.2 系列引入的结构改动之一,后来也出现在 GLM-5 中;这两者都把 DSA 与多头潜在注意力(MLA)搭配使用。
- 搭配的目的相同:在上下文变长时降低推理成本。代表架构是 DeepSeek V3.2 与 GLM-5(744B)。
- 与滑动窗口注意力相同之处:每个 token 也只关注此前 token 的一个子集,而非完整前缀。
- 关键区别:选哪些 token 不由固定宽度的局部窗口决定,而由学出来的稀疏模式决定。
- 做法是索引器加选择器:一个轻量索引器(lightning indexer)算相关性分数,一个 token 选择器只保留分数较高的一小部分历史位置。
- 概言之,滑动窗口把局部性写死,DSA 则把“哪些历史 token 值得回看”交给模型决定。
DSA 与 MLA 的配合方式
- 两者分工不同:MLA 压缩存储内容以降低 KV 缓存开销,DSA 减少需要回看的历史上下文量,一个优化缓存表示,一个优化其上的注意力模式。
- 第一阶段是轻量索引器:对每个新查询 token,用 MLA 的压缩 token 表示在历史上下文上计算学习到的相似度分数,据此给历史位置排序。
- 第二阶段是 token 选择器:只保留分数高的一小部分(例如 top-k 个历史位置),并把这个子集变成稀疏注意力掩码。
- 要点是稀疏模式不写死,由模型学习决定保留哪些历史 token。
- DSA 相对较新、实现也较复杂,因此普及程度还不及分组查询注意力(GQA)。
门控注意力(Gated Attention)
- 门控注意力更适合理解为对全注意力块(full-attention block)的改造,而不是一个独立的注意力家族。
- 它通常出现在混合堆栈中:堆栈仍保留少量全注意力层做精确内容检索,但在这类较熟悉的结构上加了几处面向稳定性的改动。
- 出现位置:Qwen3-Next 与 Qwen3.5 只替换掉大部分注意力层,保留下来的少量全注意力层就用门控注意力,并与 Gated DeltaNet 按 3:1 配比。
- Trinity 不是混合架构,但在更常规的注意力堆栈里用了相关门控思路,门放在缩放点积注意力输出之后、输出投影之前。
- 相对标准注意力,按原门控注意力论文,改动有三:对注意力结果做输出门控再回加到残差、q 和 k 用零中心 QK-Norm 替代标准 RMSNorm、部分 RoPE。
- 这些改动量级不及 MLA 或线性注意力,只是在一个熟悉注意力块上加的稳定与控制措施。
混合注意力(Hybrid Attention)的整体设计
- 混合注意力是一种更宽泛的设计模式而非单一机制:保留类 transformer 堆栈,但把大多数昂贵的全注意力层换成更便宜的线性或状态空间序列模块。
- 动机是长上下文效率:全注意力随序列长度二次增长,上下文到 128k、256k、1M token 时,注意力内存与计算代价高到更需要少留重型检索层。
- 原文提示这种设计会带来一些建模性能上的折衷。
- Qwen3-Next 采用 3:1 的 Gated DeltaNet 与门控注意力组合;Gated DeltaNet 与 Mamba-2 关系密切,可读作 DeltaNet 式快权更新加 Mamba 式门控。
- 后续架构保持同一思路,但换成其他轻量序列混合器,如 Kimi Delta Attention、Lightning Attention 或标准 Mamba-2。
Qwen3-Next 中的 Gated DeltaNet
- 按原文说法,2025 年的 Qwen3-Next 是第一个接近旗舰规模的混合注意力显著例子:三个 Gated DeltaNet 块配一个门控注意力块。
- 轻量的 Gated DeltaNet 块承担大部分长上下文工作,内存增长比全注意力平缓得多;保留较重的门控注意力层,是因为 DeltaNet 在基于内容的检索上不够精确。
- 块内同时计算查询、键、值向量和两个学习到的门(α、β),不构造常规的 token 间注意力矩阵,而是用 delta 规则更新写入一个小型快权记忆。
- 记忆可理解为对历史信息的压缩滚动摘要,门控制加入多少新信息、保留多少旧状态。
- 因此它属于线性注意力或循环式机制,而非对多头注意力的又一次微调;与 Mamba-2 同属线性时间门控序列模型家族,区别在记忆更新方式。
- Qwen3.5 把原先 Qwen3-Next 的混合设计并入 Qwen 主线旗舰系列,原文视之为混合策略成功、未来可能出现更多此类模型的信号。
Kimi Linear 与改进的 Delta 注意力
- Kimi Linear 保持同样的 transformer 骨架和 3:1 配比,但配方的两侧都换了。
- 轻量侧:Kimi Delta Attention 是 Gated DeltaNet 的改进版,Qwen3-Next 用每头一个标量门控制记忆衰减,Kimi 用逐通道门控(channel-wise gating),对记忆更新控制更细。
- 重型侧:把 Qwen3-Next 的门控注意力层换成门控 MLA 层。
- 总体仍是同一模式:多数层由更便宜的线性式机制承担,周期性保留较重层以获得更强检索能力。
Ling 2.5 与 Lightning Attention
- Ling 2.5 在轻量侧换用更简单的循环式线性注意力变体 Lightning Attention,而不是 Gated DeltaNet。
- 重型侧保留 DeepSeek 的 MLA。
- 多数序列混合由便宜的线性注意力块完成,少量较重层保留以维持更强检索,区别只在具体轻量机制的选取。
- 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(latent MoE)与用于投机解码的共享权重多 token 预测(MTP)等效率改动。
结论
- 文献中还有更多(多为小众)注意力变体未覆盖,文章聚焦于当前最先进开源权重模型中实际使用的那些。
- 作者期待两点:全新的 Mamba-3 层被整合进上述混合架构(取代 Gated DeltaNet);注意力残差(attention residuals)被普遍采用。
- “当前最佳架构”难以回答,因为缺少在相同训练数据上训练不同架构的公开实验;目前只能回答给定问题下最佳(已训练)模型是哪个。
- 作者认为混合架构仍属新事物,卖点主要是(长上下文)效率而非建模性能,因此很适合智能体场景(如 OpenClaw)。
- 作者个人体验:混合架构的推理栈优化尚不充分,本地运行 GPT-OSS 这类用分组查询注意力的经典方案时 tok/sec 吞吐更好。
- 作者对 DeepSeek V4 的内容感到好奇,因 DeepSeek 近两年是可靠的趋势引领者。