摘要:Transformer 模型从发布至今已经有 8 个年头了,无一例外,现有的 LLM 大语言模型都是基于 Transformer 模型演变而来的,例如 GPT 系列模型,Gemini 系列模型,DeepSeek 系列模型以及Llama系列模型等等,都能看到 T
Transformer 模型从发布至今已经有 8 个年头了,无一例外,现有的 LLM 大语言模型都是基于 Transformer 模型演变而来的,例如 GPT 系列模型,Gemini 系列模型,DeepSeek 系列模型以及Llama系列模型等等,都能看到 Transformer 模型的身影。
Transformer 模型
乍然审视,回首 2019 年问世的 GPT - 2,再展望 2024 - 2025 年间崭露头角的 DeepSeek - V3 和 Llama 4,人们或许会为这些模型在结构层面依旧高度相似而深感讶异。诚然,位置嵌入已然从绝对嵌入演进至旋转嵌入(RoPE),多头注意力机制大体上已被分组查询注意力机制所替代,更为高效的 SwiGLU 也取代了诸如 GELU 之类的激活函数。然而,在这些细微的改良背后,我们究竟是真切目睹了突破性的变革,亦或是仅仅在相同的架构基础上进行精雕细琢?
您或许不止一次听闻,DeepSeek R1 在 2025 年 1 月发布之际引发了轩然大波。DeepSeek R1 是基于 2024 年 12 月推出的 DeepSeek V3 架构构建的推理模型。
DeepSeek 模型
DeepSeek V3 所引入的两种关键架构技术,这些技术提升了其计算效率,并使其有别于众多其他大语言模型:多头潜在注意力(MLA)与混合专家(MoE)。
在探讨多头潜在注意力(MLA)之前,我们不妨先简要回顾一下相关背景知识,以阐释其应用场景。首先,让我们谈谈分组查询注意力(GQA)。近年来,GQA 已成为多头注意力(MHA)的标准替代方案,在计算和参数方面均展现出更高的效率。
GQA 与 MHA 对比
与 MHA 不同,在 MHA 中每个 head 都拥有其独立的一组键和值。为了削减内存占用,GQA 将多个 head 进行分组,使其共享相同的键和值投影。例如,如下图所示,若存在 2 个键值组和 4 个注意力头,那么注意力头 1 和 2 可能会共享一组键值对,而注意力头 3 和 4 则共享另一组键值对。这一举措减少了键值对的计算总量,进而降低了内存占用并提升了效率(依据消融研究,此举并不会显著影响建模性能)。
MHA 与 GQA 的比较。此处,组大小为 2,其中两个查询共享一个键值对
故而,GQA 的核心要义在于通过在多个查询头之间共享键值头来减少键值头的数量。这不仅能够减少模型的参数数量,还可以减少推理过程中键值张量的内存带宽占用,因为需要存储和从键值缓存中检索的键值更少。
尽管广义多头注意力(GQA)主要作为多头注意力(MHA)计算效率的一种解决方案,但消融研究显示,在大语言模型(LLM)的建模性能方面,它的表现与标准的 MHA 旗鼓相当。
多头潜在注意力(MLA)
当下,多头潜在注意力(MLA)提供了一种别具一格的内存节省策略,并且与键值缓存(KV)配合默契。与 GQA 共享键值头的方式不同,MLA 是将键值张量压缩至低维空间,而后将其存储于键值缓存之中。在推理阶段,这些被压缩的张量会被投影回其原始大小,随后再投入使用,具体情形如图所示。此举虽增加了额外的矩阵乘法运算,但有效降低了内存使用量。
MLA(用于 DeepSeek V3 和 R1)与常规 MHA 的比较
顺便说一句,MLA 并非 DeepSeek V3 中的新特性,其前身 DeepSeek-V2也曾使用过它。此外,V2 论文中包含一些有趣的消融研究,或许可以解释 DeepSeek 团队为何选择 MLA 而非 GQA。
选择 MLA 而非 GQA
GQA 的性能似乎不如 MHA,而 MLA 的建模性能优于 MHA,这可能就是 DeepSeek 团队选择 MLA 而非 GQA 的原因。
在 DeepSeek 中,另一个值得着重强调的主要架构组件是其对混合专家(MoE)层的运用。尽管 DeepSeek 并非 MoE 的首创者,但在今年,MoE 再度崭露头角。
MoE 的核心理念是,用多个专家层取代 Transformer 模块中的每个前馈模块,其中每个专家层自身同样是一个前馈模块。这意味着我们将单一的前馈模块替换为多个前馈模块。
DeepSeek V3/R1 中的混合专家(MoE)模块(右)与具备标准前馈块的大语言模型(LLM)(左)的对比图
Transformer 模块内的前馈(FeedForward)模块通常涵盖了模型总参数的一大部分。(需注意,Transformer 模块以及前馈模块在 LLM 中会多次重复;在 DeepSeek - V3 里,重复了 61 次。)因此,用多个前馈模块替换单个前馈模块会大幅增加模型的总参数数量。
然而,关键之处在于,我们并非为每个词元(token)使用(“激活”)所有专家。相反,路由器仅会为每个词元挑选一小部分专家。由于每次仅有少数专家处于激活状态,故而 MoE 模块通常被称作稀疏模块,这与始终使用完整参数集的密集模块形成鲜明对比。
稀疏模型与密集模型对比
不过,借助 MoE 所实现的大量参数扩充了 LLM 的容量,这意味着它能够在训练期间吸纳更多知识。与此同时,稀疏性保障了推理的高效性,因为我们不会同时使用所有参数。例如,DeepSeek - V3 每个 MoE 模块拥有 256 位专家,总参数多达 6710 亿个。但在推理过程中,每次仅有 9 位专家处于激活状态(1 位共享专家加上 8 位由路由器挑选的专家)。这意味着每个推理步骤仅使用 370 亿个参数,而非全部的 6710 亿个参数。
专家模型
DeepSeek - V3 的 MoE 设计有一个显著特征,即采用了一个共享专家。这是一个对每个词元始终保持激活状态的专家。这一理念并非新颖之物,早在 2024 年的 DeepSeek MoE 和 2022 年的 DeepSpeedMoE 论文中就已被提出。DeepSpeedMoE 论文率先阐述了共享专家的优势,他们发现,与没有共享专家的情况相比,共享专家能够提升整体建模性能。这或许是因为多个专家无需学习常见或重复的模式,从而使它们有更多精力去学习更多的知识。
谷歌的 Gemma 系列模型向来表现卓越。Gemma 的一大显著特色在于其词汇量颇为庞大(旨在更优地支持多种语言),并且更侧重于 27B 规模的模型(而非 8B 或 70B 规模)。不过需留意的是,Gemma 2 也有较小规模的版本,分别为 1B、4B 和 12B。
27B 规模的 Gemma 达到了一个极为理想的平衡点:它较 8B 规模的模型功能强大许多,却不像 70B 规模的模型那样占用大量资源。
与其他模型(例如 Deepseek - V3/R1)采用了混合专家(MoE)架构,在模型大小固定的前提下,降低推理时的内存需求。Gemma 3 则采用了不同的“策略”来降低计算成本,即滑动窗口注意力机制。
凭借滑动窗口注意力机制(该机制最初于 2020 年在 LongFormer 论文中被提出,且已被 Gemma 2 所采用),Gemma 3 团队得以大幅削减 KV 缓存中的内存需求,具体情形如图所示。
滑动窗口
那么,究竟什么是滑动窗口注意力机制呢?倘若我们将常规的自注意力机制视作一种全局注意力机制,因为每个序列元素都能够访问其他所有序列元素;那么,我们可以把滑动窗口注意力机制看作是一种局部注意力机制,因为在此机制下,我们把上下文大小限定在了当前查询位置的附近。
常规注意力(左)和滑动窗口注意力(右)的比较。
需着重注意的是,滑动窗口注意力可与多头注意力以及分组查询注意力协同运用;Gemma 3 便采用了分组查询注意力。如前文所述,滑动窗口注意力机制亦被称作局部注意力机制,因其局部窗口会围绕当前查询位置并与之同步移动。与之形成鲜明对比的是,常规注意力机制属于全局注意力机制,因为每个标记都能够访问所有其他标记。
Gemma 2 的前身架构也曾采用过滑动窗口注意力机制。Gemma 3 的独特之处在于,它对全局(常规)注意力机制与局部(滑动)注意力机制之间的比例进行了调整。例如,Gemma 2 采用了一种混合注意力机制,将滑动窗口(局部)注意力与全局注意力以 1:1 的比例加以融合。每个词元(token)能够关注附近上下文中 4k 个词元的窗口。Gemma 2 每隔一层便运用滑动窗口注意力机制,而 Gemma 3 则采用了 5:1 的比例,这意味着每 5 个滑动窗口(局部)注意力层中仅有一个完整的注意力层;此外,滑动窗口大小从 4096(Gemma 2)缩减至 1024(Gemma 3)。这使得模型的侧重点转向更为高效的局部计算。依据他们的消融研究结果,运用滑动窗口注意力对建模性能的影响微乎其微,具体情形如下图所示。
运用滑动窗口注意力对建模性能的影响
值得着重强调的一个细微却饶有趣味的细节是,Gemma 3 在其分组查询注意力模块的前置归一化(Pre - Norm)和后置归一化(Post - Norm)设置中采用了均方根归一化(RMSNorm)。这与 Gemma 2 颇为相似,但仍值得一提,因为它有别于原始 Transformer 中所采用的后置归一化,由 GPT - 2 推广并在后续诸多其他架构中运用的前置归一化。
Mistral Small 3.1 24B 于 3 月 Gemma 3 发布后不久便闪亮登场。值得关注的是,在多个基准测试(数学测试除外)中,它的表现均超越了 Gemma 3 27B,并且运行速度更为迅捷。
Mistral Small 3.1 推理延迟低于 Gemma 3,其原因极有可能在于它所采用的自定义分词器,以及对键值缓存和层数的精简处理。除此之外,它依旧沿用了标准架构,具体框架如下图所示。
Gemma 3 27B 和 Mistral 3.1 Small 24B 的架构比较
饶有趣味的是,早期的 Mistral 模型曾运用过滑动窗口注意力机制,但在 Mistral Small 3.1 中,这一机制似乎已被弃用。故而,由于 Mistral 采用的是常规的分组查询注意力机制,而非像 Gemma 3 那样采用带有滑动窗口的分组查询注意力机制,或许能够借助更为优化的代码(例如 FlashAttention),节省额外的推理计算成本。
尽管滑动窗口注意力机制能够减少内存使用量,但它未必能够降低推理延迟,而这恰恰是 Mistral Small 3.1 关注的核心要点。
本文前文对混合专家模型(MoE)的深入剖析,如今再度彰显其价值。Llama 4同样采用了 MoE 方法,且遵循着与 DeepSeek - V3 极为相似的相对标准架构,具体架构情况如下图所示。
DeepSeek V3(6710 亿个参数)和 Llama 4 Maverick(4000 亿个参数)的架构对比
尽管 Llama 4 Maverick 架构整体上与 DeepSeek - V3 高度相似,但仍存在一些饶有趣味的差异,值得我们着重关注。
其一,Llama 4 沿用了与其前代产品相仿的分组查询注意力机制(Grouped - Query Attention),而 DeepSeek - V3 则采用了我们在本文开篇所探讨的多头潜在注意力机制(Multi - Head Latent Attention)。
DeepSeek - V3 和 Llama 4 Maverick 均属于超大规模的架构,其中 DeepSeek - V3 的总参数数量约比 Llama 4 Maverick 多出 68%。然而,DeepSeek - V3 拥有 370 亿个活跃参数,是 Llama 4 Maverick(170 亿)的两倍有余。
Llama 4 Maverick 采用了更为经典的 MoE 设置,其专家数量较少但规模更大(2 名活跃专家,每名专家的隐藏层大小为 8,192),而 DeepSeek - V3 则启用了 9 名活跃专家,每名专家的隐藏层大小为 2,048。
此外,DeepSeek 在每个转换器模块(前 3 个除外)中均运用了 MoE 层,而 Llama 4 则在每个转换器模块中交替使用 MoE 和密集模块。
鉴于不同架构之间存在诸多细微差别,故而难以精准判定它们对最终模型性能的具体影响。然而,值得留意的是,MoE 架构在 2025 年的受欢迎程度将显著提升。
现在,Qwen3 是又一个热门模型系列,在同类尺寸中名列前茅。它包含 7 个高密度模型:0.6B、1.7B、4B、8B、14B 和 32B。此外,还有 2 个 MoE 模型:30B-A3B 和 235B-A22B。
让我们首先探讨一下密集模型架构。0.6B 模型极有可能是当下市场上规模最小的开放权重模型。鉴于其小巧的体量,该模型的性能着实令人瞩目。倘若您计划在本地运行此模型,它具备较高的token/秒吞吐量,且内存占用较低。更为关键的是,因其体积小巧,在本地对其进行训练也颇为便捷。故而,Qwen3 0.6B 在大多数情形下已然取代了 Llama 3 1B。以下为这两种架构的对比情况。
Qwen3 0.6B 与 Llama 3 1B 的架构对比
需注意,Qwen3 属于更深层次的架构,拥有更多的层,而 Llama 3 则是更宽泛的架构,具备更多的注意力头。Qwen3 的内存占用较少,原因在于其整体架构规模较小,并且使用的隐藏层和注意力头数量也更少。然而,它采用的 Transformer 模块数量多于 Llama 3,这致使其运行速度较慢(每秒生成 token 的速率较低)。
如前文所述,Qwen3 同样拥有两种混合专家(MoE)版本,分别为 30B - A3B 和 235B - A22B。为何部分架构(例如 Qwen3)会同时推出常规(密集)和 MoE(稀疏)版本呢?正如本文开篇所提及的,MoE 变体有助于削减大型基础模型的推理成本。同时提供密集模型与 MoE 版本,使用户能够依据自身的目标和约束条件,灵活地开展推理工作。
密集模型通常更易于在各类硬件上进行微调、部署与优化。而 MoE 模型则针对扩展推理进行了专门优化。例如,在固定的推理预算下,它们能够实现更高的整体模型容量(也就是说,由于规模较大,在训练期间能够吸收更多知识),且无需相应增加推理成本。通过发布这两种类型的模型,Qwen3 系列能够支持更为广泛的用例:密集模型适用于追求稳健性、简易性和微调需求的场景,而 MoE 模型则适合大规模高效服务的场景。
DeepSeek - V3 和 Qwen3 235B - A22B 的架构对比
如上图所示,DeepSeek - V3 和 Qwen3 235B - A22B 的架构极为相似。值得留意的是,Qwen3 模型不再采用共享专家机制(早期的 Qwen 模型,如 Qwen2.5 - MoE,确实使用了共享专家机制)。遗憾的是,Qwen3 团队并未透露放弃共享专家机制的具体原因。他们将专家数量从 2 个(Qwen2.5 - MoE 中)增加到 8 个(Qwen3 中),或许只是为了提升训练稳定性,但实际上并无必要。而且,他们仅使用 8 个专家而非 8 + 1 个专家,能够节省额外的计算和内存成本。(然而,这并不能解释为何 DeepSeek - V3 仍然保留其共享专家机制。)
Kimi 2Kimi 2 近期在人工智能社区引发了轩然大波,因其堪称性能卓越的开放权重模型。基准测试结果表明,它的性能足以与谷歌 Gemini、Anthropic 的 Claude 以及 OpenAI 的 ChatGPT 等顶级专有模型相媲美。
值得着重指出的是,Kimi 2 采用了相对新颖的 Muon 优化器的一个变体,取代了传统的 AdamW。这是 Muon 优化器首次应用于如此规模的生产模型,而非 AdamW(此前,Muon 仅被证实可扩展至 16B 规模)。这一举措造就了极为理想的训练损失曲线,或许正是这一优势助力该模型在上述基准测试中名列前茅。尽管有人评价其损失函数异常平滑(因其无明显尖峰),它并非达到异常平滑的程度(例如,可参考下图中的 OLMo 2 损失曲线;此外,梯度的 L2 范数或许是追踪训练稳定性的更优指标)。不过,损失曲线衰减效果极佳这一点确实值得关注。
该模型本身拥有 1 万亿个参数,着实令人惊叹。Kimi 2 可谓完成了一次架构的迭代升级,因为它沿用了我们在本文开篇介绍过的 DeepSeek - V3 架构,只不过在此基础上进行了扩展,使其规模更大,具体情况如下图所示。
DeepSeek V3 和 Kimi K2 的架构对比
由上图可见,Kimi 2.5 与 DeepSeek V3 基本架构一致,只是在混合专家(MoE)模块中使用了更多的专家,而在多头潜在注意力(MLA)模块中使用的头数更少。
Kimi 2 的诞生并非一蹴而就。早期在《Kimi k1.5:使用 LLM 扩展强化学习》论文中探讨的 Kimi 1.5 模型同样令人瞩目。然而,颇为遗憾的是,DeepSeek R1 模型论文恰好于 1 月 22 日同日发布。此外,Kimi 1.5 的权重从未公开分享过。所以,Kimi K2 团队很可能汲取了这些经验教训,在 DeepSeek R2 发布之前,便将 Kimi K2 作为开放权重模型进行了分享。
OpenAI发布了gpt-oss-120b 和 gpt-oss-20b,这是自 2019 年 GPT-2 以来的首批开放权重模型。
该架构包含了我们在之前讨论过的其他架构中看到的所有熟悉的组件。例如,将较小的 gpt-oss 架构与 Qwen3 30B-A3B 放在一起,后者也是一个 MoE 模型,且具有相似数量的活动参数(gpt-oss 有 36 亿个活动参数,而 Qwen3 30B-A3B 有 33 亿个)。
gpt-oss与Qwen3的架构对比
另一个方面是,gpt-oss 使用滑动窗口注意力(类似于 Gemma 3,但在每一层中而不是使用 5:1 的比例)。
xAI 发布了其 270B 参数 Grok 2.5 模型的权重。因为 Grok 2.5 是 xAI 去年的旗舰量产模型。到目前为止,我们讨论的所有模型都是从一开始就以开放权重模型发布的。例如,gpt-oss 很可能不是 GPT-4 的开放权重克隆,而是一个专门为开源社区训练的自定义模型。
Grok 2.5 与同等尺寸的 Qwen3 模型
从架构上看,Grok 2.5 整体看起来相当标准,但也有一些值得注意的细节。例如,Grok 2.5 使用少量大型专家(8 个),这反映了一种较旧的趋势。如前所述,较新的设计(例如 DeepSeekMoE 论文中的设计)倾向于使用更多小型专家(Qwen3 中也存在这种情况)。
另一个有趣的选择是使用相当于共享专家的功能。附加 SwiGLU 模块充当始终在线的共享专家。它与经典的共享专家设计并不完全相同,因为它的中间维度加倍了,但思路是一样的。
2025 年 9 月 11 日,Qwen3 团队发布了 Qwen3 Next 80B-A3B,提供 Instruct 和 Thinking 两种版本。全新的 Qwen3 Next 架构之所以脱颖而出,是因为尽管它比之前的 235B-A22B 型号小了 3 倍,但它引入了四倍的专家数量,甚至还增加了一个共享专家。
原始 Qwen3 模型(左)与 Qwen3 Next 模型
另一个亮点是,他们用Gated DeltaNet + Gated Attention混合模型取代了常规的注意力机制,这有助于在内存使用方面实现原生 262k 的 token 上下文长度(之前的 235B-A22B 模型原生支持 32k,通过YaRN扩展支持 131k。)
那么这种新的注意力混合机制是如何工作的呢?与分组查询注意力机制(GQA)相比,GQA 仍然是标准缩放的点积注意力机制(如前所述,在查询头组之间共享 K/V,以减少 KV 缓存大小和内存带宽,但其解码成本和缓存仍会随着序列长度而增长),而 GQA 的混合机制将门控注意力块与多个门控 DeltaNet块以 1:3 的比例混合。
Gated DeltaNet + Gated Attention
我们可以将门控注意力模块视为可用于 GQA 的标准缩放点积注意力模块,但它在此基础上进行了一些调整。门控注意力模块与普通 GQA 模块的主要区别在于:
输出门(S 型控制,通常每个通道)在将注意力结果添加回残差之前对其进行缩放;
QKNorm 的零中心 RMSNorm,而不是标准 RMSNorm;
部分 RoPE(在维度子集上)。
门控 DeltaNet 是一个更为显著的变化。在 DeltaNet 模块中,q、k、v 和两个门 (α, β) 由经过归一化的线性轻量级卷积层生成,并且该层用快速权重增量规则更新取代了注意力机制。
然而,代价是 DeltaNet 提供的基于内容的检索不如完全注意力那么精确,这就是为什么保留一个门控注意力层的原因。
鉴于注意力机制呈二次方增长,DeltaNet 组件被添加进来以提高内存效率。在“线性时间、无缓存”架构中,DeltaNet 模块本质上是 Mamba 的替代品。Mamba 使用学习到的状态空间滤波器(本质上是一个随时间变化的动态卷积)来保持状态。DeltaNet 维护一个小型的快速权重内存,该内存使用 α 和 β 进行更新,并使用 q 进行读取,小型卷积仅用于辅助构建 q、k、v、α、β。
magazine.sebastianraschka:the-big-llm-architecture-comparison来源:人工智能研究所