news 2025/12/31 8:39:34

【万字长文】LLM架构大比拼:从GPT到DeepSeek V3.2的技术演进与创新!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【万字长文】LLM架构大比拼:从GPT到DeepSeek V3.2的技术演进与创新!

简介

本文全面对比2025年主流大型语言模型架构,包括DeepSeek V3、Gemma 3、Qwen3等前沿模型。深入解析MLA、MoE、滑动窗口注意力等创新技术,探讨Pre-Norm与Post-Norm等归一化策略差异,揭示不同架构在计算效率与性能间的权衡,为LLM开发者提供技术选型参考。


Sebastian Raschka 刚刚更新了他的「大型 LLM 架构对比」长文,内容量翻倍,堪称 2025 年最全面的 LLM 架构技术解析。

Sebastian Raschka(@rasbt) 是一位 ML/AI 研究工程师,前统计学教授,著有《Build a Large Language Model From Scratch》一书。

他在自己的技术博客上发布的这篇架构对比文章,从最初版本到现在已经扩展了一倍多。

下为 Sebastian Raschka 原文,清晰易懂,值得一读:

大型语言模型架构大比拼

来源:https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison

发布时间:2025-07-19T11:11:10+00:00

作者:Sebastian Raschka

距离最初的 GPT 架构开发已经过去了七年。乍一看,回顾 GPT-2(2019)并展望 DeepSeek V3 和 LLaMA 4(2024-2025),人们可能会惊讶于这些模型在结构上仍然如此相似。

当然,位置编码已经从绝对位置编码演变为旋转位置编码(RoPE),Multi-Head Attention 在很大程度上已经让位给 Grouped-Query Attention,更高效的 SwiGLU 取代了 GELU 等激活函数。但在这些细微改进之下,我们真的看到了突破性的变化吗?还是我们只是在打磨相同的架构基础?

比较大型语言模型以确定有助于其良好(或不太好)性能的关键要素是出了名的困难:数据集、训练技术和超参数差异很大,而且往往没有详细记录。

然而,我认为检查架构本身的结构变化仍然具有很大价值,可以看到 2025 年大型语言模型开发者们在做什么。(其中一部分模型如图 1 所示。)

图 1:本文涵盖的一部分架构。

因此,在本文中,我不会写基准性能或训练算法,而是专注于定义当今旗舰开源模型的架构发展

(你可能还记得,我不久前写过关于多模态大型语言模型的文章;在本文中,我将专注于最新模型的文本能力,并将多模态能力的讨论留待以后。)

提示:这是一篇相当全面的文章,因此我建议使用导航栏访问目录(只需将鼠标悬停在 Substack 页面的左侧)。

可选:Sebastian Raschka 原文中还配有视频版本,其为本文的旁白和删节版本。


针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份LLM大模型资料分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以扫描下方二维码领取🆓↓↓↓


DeepSeek V3/R1

正如你现在可能已经听过不止一次,DeepSeek R1 在 2025 年 1 月发布时产生了巨大影响。DeepSeek R1 是一个基于 DeepSeek V3 架构 构建的推理模型,该架构于 2024 年 12 月推出。

虽然我在这里的重点是 2025 年发布的架构,但我认为包含 DeepSeek V3 是合理的,因为它只是在 2025 年 DeepSeek R1 推出后才获得广泛关注和采用。

如果你对 DeepSeek R1 的训练特别感兴趣,你可能会发现我今年早些时候的文章很有用:

在本节中,我将重点介绍 DeepSeek V3 中引入的两项关键架构技术,它们提高了计算效率并使其与许多其他大型语言模型区别开来:

  • Multi-Head Latent Attention(MLA)
  • Mixture-of-Experts(MoE)

Multi-Head Latent Attention

在讨论 Multi-Head Latent Attention(MLA)之前,让我们简要回顾一些背景知识,以解释为什么要使用它。为此,让我们从 Grouped-Query Attention(GQA)开始,近年来它已成为 Multi-Head Attention(MHA)的新标准替代品,可以更高效地利用计算和参数。

因此,这里是 GQA 的简要总结。与 MHA 不同,在 MHA 中每个头也有自己的一组键和值,为了减少内存使用,GQA 将多个头分组以共享相同的键和值投影

例如,如图 2 所示,如果有 2 个键值组和 4 个注意力头,那么头 1 和 2 可能共享一组键和值,而头 3 和 4 共享另一组。这减少了键和值计算的总数,从而降低了内存使用并提高了效率(根据消融研究,不会明显影响建模性能)。

图 2:MHA 和 GQA 之间的比较。这里,组大小为 2,其中一个键值对在 2 个查询之间共享。

因此,GQA 背后的核心思想是通过在多个查询头之间共享键和值来减少键和值头的数量。这样做(1)降低了模型的参数数量,(2)减少了推理期间键和值张量的内存带宽使用,因为需要从 KV 缓存中存储和检索的键和值更少。

(如果你好奇 GQA 在代码中的样子,请参阅我的 GPT-2 到 LLaMA 3 转换指南中没有 KV 缓存的版本,以及我的 KV 缓存变体在这里。)

虽然 GQA 主要是 MHA 的计算效率解决方案,但消融研究(例如原始 GQA 论文和 LLaMA 2 论文中的研究)表明,在大型语言模型建模性能方面,它的表现与标准 MHA 相当。

现在,Multi-Head Latent Attention(MLA)提供了一种不同的内存节省策略,特别适合与 KV 缓存配合使用。MLA 不像 GQA 那样共享键和值头,而是在将键和值张量存储到 KV 缓存之前将其压缩到低维空间。

在推理时,这些压缩的张量在使用前会被投影回其原始大小,如下图 3 所示。这增加了一个额外的矩阵乘法,但减少了内存使用。

图 3:MLA(在 DeepSeek V3 和 R1 中使用)与常规 MHA 的比较。

(顺便说一句,查询也被压缩,但仅在训练期间,不在推理期间。)

顺便说一句,MLA 在 DeepSeek V3 中并不新鲜,因为其 DeepSeek-V2 前身也使用(甚至引入)了它。此外,V2 论文包含一些有趣的消融研究,可以解释为什么 DeepSeek 团队选择 MLA 而不是 GQA(见下图 4)。

图 4:来自 DeepSeek-V2 论文的注释表格,https://arxiv.org/abs/2405.04434

如上图 4 所示,GQA 的性能似乎比 MHA 差,而 MLA 提供了比 MHA 更好的建模性能,这可能是 DeepSeek 团队选择 MLA 而不是 GQA 的原因。(如果能看到 MLA 和 GQA 之间的「每个 Token 的 KV 缓存」节省比较就好了!)

在我们进入下一个架构组件之前,总结一下本节,MLA 是一个巧妙的技巧,可以减少 KV 缓存内存使用,同时在建模性能方面甚至略微优于 MHA

Mixture-of-Experts

DeepSeek 中另一个值得强调的主要架构组件是其使用 Mixture-of-Experts(MoE)层。虽然 DeepSeek 没有发明 MoE,但今年它又重新流行起来,我们稍后将介绍的许多架构也采用了它。

你可能已经熟悉 MoE,但快速回顾可能会有所帮助。

MoE 的核心思想是用多个专家层替换 Transformer 块中的每个前馈模块,其中每个专家层也是一个前馈模块。这意味着我们将单个前馈块替换为多个前馈块,如下图 5 所示。

图 5:DeepSeek V3/R1 中的 Mixture-of-Experts(MoE)模块(右)与具有标准前馈块的大型语言模型(左)的对比。

Transformer 块内的前馈块(在上图中显示为深灰色块)通常包含模型总参数的大部分。(请注意,Transformer 块以及前馈块在大型语言模型中重复多次;在 DeepSeek V3 的情况下,重复 61 次。)

因此,用_多个_前馈块替换_单个_前馈块(如在 MoE 设置中所做的)会大大增加模型的总参数数量。然而,关键技巧是我们不会为每个 token 使用(「激活」)所有专家。相反,路由器仅为每个 token 选择一小部分专家。(为了节省时间,或者说文章空间,我将在另一时间更详细地介绍路由器。)

因为一次只有少数专家处于活动状态,MoE 模块通常被称为_稀疏_模块,与始终使用完整参数集的_密集_模块相对。然而,通过 MoE 增加的大量总参数增加了大型语言模型的容量,这意味着它可以在训练期间吸收更多知识。不过,稀疏性使推理保持高效,因为我们不会同时使用所有参数。

例如,DeepSeek V3 每个 MoE 模块有 256 个专家,总共有 6710 亿个参数。然而在推理过程中,一次只有 9 个专家处于活动状态(1 个共享专家加上 8 个由路由器选择的专家)。这意味着每个推理步骤仅使用 370 亿个参数,而不是全部 6710 亿个。

DeepSeek V3 的 MoE 设计的一个显著特征是使用共享专家。这是一个始终为每个 token 激活的专家。这个想法并不新鲜,已经在 DeepSeek 2024 MoE 和 2022 DeepSpeedMoE 论文中引入。

图 6:来自「DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models」的注释图,https://arxiv.org/abs/2401.06066

拥有共享专家的好处首先在 DeepSpeedMoE 论文中被提到,他们发现与没有共享专家相比,它提高了整体建模性能。这可能是因为常见或重复的模式不必由多个单独的专家学习,这为它们留出了更多空间来学习更专业的模式。

总而言之,DeepSeek V3 是一个庞大的 6710 亿参数模型,在发布时,它的性能优于其他开源权重模型,包括 4050 亿参数的 LLaMA 3。尽管体积更大,但由于其 Mixture-of-Experts(MoE)架构,它在推理时效率更高,每个 token 仅激活一小部分(仅 370 亿)参数。

另一个关键区别特征是 DeepSeek V3 使用 Multi-Head Latent Attention(MLA)而不是 Grouped-Query Attention(GQA)。MLA 和 GQA 都是标准 Multi-Head Attention(MHA)的推理高效替代方案,特别是在使用 KV 缓存时。虽然 MLA 实现起来更复杂,但 DeepSeek-V2 论文中的一项研究表明,它提供了比 GQA 更好的建模性能。

OLMo 2

非营利组织 Allen Institute for AI 的 OLMo 系列模型因其在训练数据和代码方面的透明度以及相对详细的技术报告而引人注目。

虽然你可能不会在任何基准或排行榜的顶部找到 OLMo 模型,但它们相当干净,更重要的是,由于其透明度,它们是开发大型语言模型的绝佳蓝图。

虽然 OLMo 模型因其透明度而受欢迎,但它们也不算差。事实上,在 1 月份发布时(在 LLaMA 4、Gemma 3 和 Qwen 3 之前),OLMo 2 模型位于计算与性能的帕累托前沿,如下图 7 所示。

图 7:不同大型语言模型的建模基准性能(越高越好)与预训练成本(FLOPs;越低越好)。这是来自 OLMo 2 论文的注释图,https://arxiv.org/abs/2501.00656

如本文前面所述,我的目标是只关注大型语言模型架构细节(不包括训练或数据),以保持在可管理的长度。那么,OLMo2 中有哪些有趣的架构设计选择呢?主要归结为归一化:RMSNorm 层的放置以及 QK-norm 的添加,我将在下面讨论。

另一件值得一提的事情是,OLMo 2 仍然使用传统的 Multi-Head Attention(MHA)而不是 MLA 或 GQA

总体而言,OLMo 2 在很大程度上遵循原始 GPT 模型的架构,类似于其他当代大型语言模型。但是,有一些值得注意的偏差。让我们从归一化层开始。

RMSNorm 的放置

与 LLaMA、Gemma 和大多数其他大型语言模型类似,OLMo 2 从 LayerNorm 切换到 RMSNorm。

但由于 RMSNorm 是旧帽子(它基本上是 LayerNorm 的简化版本,可训练参数更少),我将跳过 RMSNorm 与 LayerNorm 的讨论。(好奇的读者可以在我的 GPT-2 到 LLaMA 转换指南中找到 RMSNorm 代码实现。)

然而,值得讨论的是RMSNorm 层的放置。原始 Transformer(来自「Attention is all you need」论文)将 Transformer 块中的两个归一化层分别放置在注意力模块和前馈模块_之后_。

这也被称为 Post-LN 或 Post-Norm。

GPT 和之后的大多数其他大型语言模型将归一化层放置在注意力和前馈模块_之前_,这被称为 Pre-LN 或 Pre-Norm。下图显示了 Post-Norm 和 Pre-Norm 之间的比较。

图 8:Post-Norm、Pre-Norm 和 OLMo 2 的 Post-Norm 风格的比较。

在 2020 年,Xiong 等人表明,Pre-LN 在初始化时会产生更良好的梯度。此外,研究人员提到 Pre-LN 甚至可以在没有仔细的学习率预热的情况下良好工作,而这对于 Post-LN 来说是一个关键工具。

现在,我提到这一点的原因是OLMo 2 采用了一种 Post-LN 形式(但使用 RMSNorm 而不是 LayerNorm,所以我称之为Post-Norm)。

在 OLMo 2 中,归一化层不是放置在注意力和前馈层之前,而是放置在之后,如上图所示。但是,请注意,与原始 Transformer 架构相比,归一化层仍然在残差层(跳跃连接)内部。

那么,为什么他们要移动归一化层的位置呢?原因是它有助于训练稳定性,如下图所示。

图 9:显示 Pre-Norm(如 GPT-2、LLaMA 3 和许多其他模型)与 OLMo 2 的 Post-Norm 风格的训练稳定性的图表。这是来自 OLMo 2 论文的注释图,https://arxiv.org/abs/2501.00656

不幸的是,这个图表显示了重新排序与 QK-Norm 一起使用的结果,而 QK-Norm 是一个单独的概念。因此,很难判断归一化层重新排序本身贡献了多少。

QK-Norm

由于上一节已经提到了 QK-norm,而我们稍后讨论的其他大型语言模型,如 Gemma 2 和 Gemma 3,也使用 QK-norm,让我们简要讨论一下这是什么。

QK-Norm 本质上是另一个 RMSNorm 层。它被放置在 Multi-Head Attention(MHA)模块内部,并在应用 RoPE 之前应用于查询(q)和键(k)。为了说明这一点,下面是我为 Qwen3 从头实现编写的 Grouped-Query Attention(GQA)层的摘录(GQA 中的 QK-norm 应用与 OLMo 中的 MHA 类似):

class GroupedQueryAttention(nn.Module): def __init__( self, d_in, num_heads, num_kv_groups, head_dim=None, qk_norm=False, dtype=None ): # ... if qk_norm: self.q_norm = RMSNorm(head_dim, eps=1e-6) self.k_norm = RMSNorm(head_dim, eps=1e-6) else: self.q_norm = self.k_norm = None def forward(self, x, mask, cos, sin): b, num_tokens, _ = x.shape # Apply projections queries = self.W_query(x) keys = self.W_key(x) values = self.W_value(x) # ... # Optional normalization if self.q_norm: queries = self.q_norm(queries) if self.k_norm: keys = self.k_norm(keys) # Apply RoPE queries = apply_rope(queries, cos, sin) keys = apply_rope(keys, cos, sin) # Expand K and V to match number of heads keys = keys.repeat_interleave(self.group_size, dim=1) values = values.repeat_interleave(self.group_size, dim=1) # Attention attn_scores = queries @ keys.transpose(2, 3) # ...

如前所述,QK-Norm 与 Post-Norm 一起稳定了训练。请注意,QK-Norm 不是由 OLMo 2 发明的,而是可以追溯到 2023 年的 Scaling Vision Transformers 论文。

简而言之,值得注意的 OLMo 2 架构设计决策主要是 RMSNorm 的放置:RMSNorm 在注意力和前馈模块之后而不是之前(Post-Norm 的一种风格),以及在注意力机制内为查询和键添加 RMSNorm(QK-Norm),这两者共同有助于稳定训练损失。

下面是一个图表,进一步并排比较了 OLMo 2 和 LLaMA 3;正如我们所看到的,除了 OLMo 2 仍然使用传统的 MHA 而不是 GQA 之外,架构在其他方面相对相似。(然而,OLMo 2 团队在 3 个月后发布了一个使用 GQA 的 32B 变体。)

图 10:LLaMA 3 和 OLMo 2 之间的架构比较。

Gemma 3

Google 的 Gemma 模型一直都非常好,我认为与其他流行模型(如 LLaMA 系列)相比,它们一直有点被低估。

Gemma 的一个显著特点是相当大的词汇表大小(以更好地支持多种语言),以及更强调 27B 大小(而不是 8B 或 70B)。但请注意,Gemma 2 也有更小的尺寸:1B、4B 和 12B。

27B 大小达到了一个非常好的平衡点:它比 8B 模型功能强大得多,但不像 70B 模型那样占用大量资源,而且在我的 Mac Mini 上运行得很好。

那么,Gemma 3 还有什么有趣的地方呢?如前所述,其他模型如 DeepSeek V3/R1 使用 Mixture-of-Experts(MoE)架构来减少推理时的内存需求,给定固定的模型大小。(我们稍后将讨论的其他几个模型也使用 MoE 方法。)

Gemma 3 使用不同的「技巧」来降低计算成本,即滑动窗口注意力

通过滑动窗口注意力(最初在 2020 年的 LongFormer 论文中引入,也已被 Gemma 2 使用),Gemma 3 团队能够大幅减少 KV 缓存中的内存需求,如下图所示。

图 11:来自 Gemma 3 论文(https://arxiv.org/abs/2503.19786)的注释图,显示了通过滑动窗口注意力节省的 KV 缓存内存。

那么,什么是滑动窗口注意力?如果我们将常规自注意力视为_全局_注意力机制,因为每个序列元素都可以访问每个其他序列元素,那么我们可以将滑动窗口注意力视为_局部_注意力,因为在这里我们限制了当前查询位置周围的上下文大小。这如下图所示。

图 12:常规注意力(左)和滑动窗口注意力(右)之间的比较。

请注意,滑动窗口注意力可以与 Multi-Head Attention 和 Grouped-Query Attention 一起使用;Gemma 3 使用分组查询注意力

如上所述,滑动窗口注意力也被称为_局部_注意力,因为局部窗口围绕并随当前查询位置移动。相比之下,常规注意力是_全局_的,因为每个 token 都可以访问所有其他 token。

现在,如上所述,Gemma 2 前身架构之前也使用了滑动窗口注意力。Gemma 3 的不同之处在于他们调整了全局(常规)和局部(滑动)注意力之间的比例

例如,Gemma 2 使用混合注意力机制,以 1:1 的比例结合滑动窗口(局部)和全局注意力。每个 token 可以关注 4k token 的附近上下文窗口。

Gemma 2 在每隔一层使用滑动窗口注意力,而 Gemma 3 现在的比例为 5:1,这意味着每 5 个滑动窗口(局部)注意力层只有 1 个完整注意力层;此外,滑动窗口大小从 4096(Gemma 2)减少到仅 1024(Gemma 3)。这将模型的焦点转向更高效、更本地化的计算。

根据他们的消融研究,使用滑动窗口注意力对建模性能的影响很小,如下图所示。

图 13:来自 Gemma 3 论文(https://arxiv.org/abs/2503.19786)的注释图,显示滑动窗口注意力对大型语言模型生成的输出困惑度几乎没有影响。

虽然滑动窗口注意力是 Gemma 3 最显著的架构方面,但作为之前 OLMo 2 部分的后续,我还想简要介绍一下归一化层的放置。

值得强调的一个小但有趣的细节是,Gemma 3 在其分组查询注意力模块周围的 Pre-Norm 和 Post-Norm 设置中都使用 RMSNorm

这与 Gemma 2 类似,但仍然值得强调,因为它不同于(1)原始 Transformer(「Attention is all you need」)中使用的 Post-Norm,(2)GPT-2 普及并在之后的许多其他架构中使用的 Pre-Norm,以及(3)我们之前看到的 OLMo 2 中的 Post-Norm 风格。

图 14:OLMo2 和 Gemma 3 之间的架构比较;请注意 Gemma 3 中的额外归一化层。

我认为这种归一化层放置是一种相对直观的方法,因为它兼得了两全其美:Pre-Norm 和 Post-Norm。在我看来,额外的归一化不会有什么坏处。在最坏的情况下,如果额外的归一化是多余的,这会通过冗余增加一点低效率。在实践中,由于 RMSNorm 在整体方案中相对便宜,这应该不会有任何明显的影响。

Gemma 3 是一个性能良好的开源权重大型语言模型,在我看来,它在开源圈子中有点被低估了。最有趣的部分是使用滑动窗口注意力来提高效率(将来将其与 MoE 结合会很有趣)。

此外,Gemma 3 具有独特的归一化层放置,在注意力和前馈模块之前和之后都放置 RMSNorm 层。

Gemma 3n

在 Gemma 3 发布几个月后,Google 分享了 Gemma 3n,这是一个针对小型设备效率进行优化的 Gemma 3 模型,目标是在手机上运行。

Gemma 3n 为实现更好效率所做的改变之一是所谓的每层嵌入(PLE)参数层。这里的关键思想是只在 GPU 内存中保留模型参数的一个子集。然后根据需要从 CPU 或 SSD 流式传输特定于 token 层的嵌入,例如文本、音频和视觉模态的嵌入。

下图说明了 PLE 内存节省,列出了标准 Gemma 3 模型的 54.4 亿个参数。这可能指的是 Gemma 3 40 亿参数变体。

图 15:来自 Google 的 Gemma 3n 博客(https://developers.googleblog.com/en/introducing-gemma-3n/)的注释图,说明了 PLE 内存节省。

54.4 亿与 40 亿参数的差异是因为 Google 在报告大型语言模型中的参数数量时有一种有趣的方式。他们经常排除嵌入参数以使模型看起来更小,除非在这种情况下,包含它们以使模型看起来更大是方便的。这并不是 Google 独有的,因为这种方法已经成为整个领域的常见做法。

另一个有趣的技巧是 MatFormer 概念(Matryoshka Transformer 的缩写)。例如,Gemma 3n 使用单个共享的大型语言模型(Transformer)架构,可以切片成更小的、可独立使用的模型。每个切片都经过训练以独立运行,因此在推理时,我们可以只运行你需要的部分(而不是大型模型)。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份LLM大模型资料分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以扫描下方二维码领取🆓↓↓↓


Mistral Small 3.1 24B

Mistral Small 3.1 24B 于 3 月在 Gemma 3 之后不久发布,值得注意的是它在几个基准测试中(数学除外)优于 Gemma 3 27B,同时速度更快。

Mistral Small 3.1 比 Gemma 3 推理延迟更低的原因可能是由于他们的定制分词器,以及缩小 KV 缓存和层数。除此之外,它是一个标准架构,如下图所示。

图 16:Gemma 3 27B 和 Mistral 3.1 Small 24B 之间的架构比较。

有趣的是,早期的 Mistral 模型曾使用滑动窗口注意力,但如果我们考虑官方 Model Hub 配置文件中的默认设置("sliding_window": null),他们似乎在 Mistral Small 3.1 中放弃了它。此外,模型卡也没有提到它。

因此,由于 Mistral 使用常规的 Grouped-Query Attention 而不是像 Gemma 3 中那样带有滑动窗口的 Grouped-Query Attention,也许由于能够使用更优化的代码(即 FlashAttention),会有额外的推理计算节省。例如,我推测虽然滑动窗口注意力减少了内存使用,但它不一定会减少推理延迟,而这正是 Mistral Small 3.1 所关注的。

LLaMA 4

本文前面关于 Mixture-of-Experts(MoE)的广泛介绍再次得到回报。LLaMA 4 也采用了 MoE 方法,并且遵循与 DeepSeek V3 非常相似的相对标准架构,如下图所示。(LLaMA 4 包含原生多模态支持,类似于 Gemma 和 Mistral 等模型。但是,由于本文重点关注语言建模,我们只关注文本模型。)

图 17: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 的总参数数量大约大 68%。然而,DeepSeek V3 拥有 370 亿个活跃参数,是 LLaMA 4 Maverick(170 亿)的两倍多。

LLaMA 4 Maverick 使用更经典的 MoE 设置,专家更少但更大(2 个活跃专家,每个隐藏大小为 8192),而 DeepSeek V3(9 个活跃专家,每个隐藏大小为 2048)。此外,DeepSeek 在每个 Transformer 块中使用 MoE 层(前 3 个除外),而 LLaMA 4 在每隔一个 Transformer 块中交替使用 MoE 和密集模块。

鉴于架构之间的许多细微差异,很难确定它们对最终模型性能的确切影响。然而,主要要点是 MoE 架构在 2025 年人气大增

Qwen3

Qwen 团队始终如一地提供高质量的开源权重大型语言模型。当我在 NeurIPS 2023 帮助共同指导大型语言模型效率挑战时,我记得排名靠前的获胜解决方案都是基于 Qwen2 的。

现在,Qwen3 是另一个热门模型系列,在其大小类别的排行榜上名列前茅。有 7 个密集模型:0.6B、1.7B、4B、8B、14B 和 32B。还有 2 个 MoE 模型:30B-A3B 和 235B-A22B。

(顺便说一句,请注意「Qwen3」中缺少的空格不是拼写错误;我只是试图保留 Qwen 开发人员选择的原始拼写。)

让我们首先讨论密集模型架构。截至撰写本文时,0.6B 模型可能是目前最小的当代开源权重模型。根据我的个人经验,考虑到它的小尺寸,它的性能非常好。如果你计划在本地运行它,它具有出色的 token/秒吞吐量和低内存占用。但更重要的是,由于其小尺寸,它也很容易在本地训练(用于教育目的)。

因此,Qwen3 0.6B 在大多数情况下取代了 LLaMA 3 1B。下面显示了这两种架构之间的比较。

图 18:Qwen3 0.6B 和 LLaMA 3 1B 之间的架构比较;请注意,Qwen3 是一个层数更多的更深架构,而 LLaMA 3 是一个注意力头更多的更宽架构。

如果你对没有外部第三方大型语言模型库依赖的人类可读的 Qwen3 实现感兴趣,我最近从头实现了 Qwen3(在纯 PyTorch 中)。

上图中的计算性能数字基于我在 A100 GPU 上运行时从头开始的 PyTorch 实现。正如我们所看到的,Qwen3 的内存占用更小,因为它总体上是一个更小的架构,但也使用更小的隐藏层和更少的注意力头。然而,它使用的 Transformer 块比 LLaMA 3 多,这导致运行时间更慢(token/秒生成速度更低)。

如前所述,Qwen3 还有两种 MoE 风格:30B-A3B 和 235B-A22B。为什么有些架构,如 Qwen3,同时提供常规(密集)和 MoE(稀疏)变体?

如本文开头所述,MoE 变体有助于降低大型基础模型的推理成本。提供密集和 MoE 版本为用户提供了灵活性,具体取决于他们的目标和限制。

密集模型通常更容易在各种硬件上进行微调、部署和优化

另一方面,MoE 模型针对扩展推理进行了优化。例如,在固定的推理预算下,它们可以实现更高的整体模型容量(即由于更大而在训练期间的知识吸收),而不会按比例增加推理成本。

通过发布这两种类型,Qwen3 系列可以支持更广泛的用例:密集模型用于稳健性、简单性和微调,MoE 模型用于大规模高效服务

为了总结本节,让我们将 Qwen3 235B-A22B(请注意 A22B 代表「22B 活跃参数」)与 DeepSeek V3 进行比较,后者的活跃参数几乎是前者的两倍(370 亿)。

图 19: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 仍然保留他们的共享专家。)

**更新。**Junyang Lin,Qwen3 的开发者之一,回应如下:

当时我们没有发现共享专家有足够显著的改进,我们担心共享专家导致的推理优化问题。诚实地说,这个问题没有直接的答案。

SmolLM3

SmolLM3 也许不像本文介绍的其他大型语言模型那样受欢迎,但我认为它仍然是一个有趣的模型,值得包含在内,因为它在相对较小且方便的 30 亿参数模型大小下提供了非常好的建模性能,介于 1.7B 和 4B Qwen3 模型之间,如下图所示。

此外,它还分享了许多训练细节,类似于 OLMo,这是罕见的,总是值得赞赏的!

图 20:来自 SmolLM3 公告帖子的注释图,https://huggingface.co/blog/smollm3,将 SmolLM3 的胜率与 Qwen3 1.7B 和 4B 以及 LLaMA 3 3B 和 Gemma 3 4B 进行比较。

如下面的架构比较图所示,SmolLM3 架构看起来相当标准。也许最有趣的方面是它使用 NoPE(无位置嵌入)。

图 21:Qwen3 4B 和 SmolLM3 3B 之间的并排架构比较。

NoPE 在大型语言模型背景下是一个较旧的想法,可以追溯到 2023 年的一篇论文(The Impact of Positional Encoding on Length Generalization in Transformers),目的是去除显式位置信息注入(例如通过早期 GPT 架构中的经典绝对位置嵌入层或现在的 RoPE)。

在基于 Transformer 的大型语言模型中,位置编码通常是必要的,因为自注意力独立于顺序处理 token。绝对位置嵌入通过添加一个额外的嵌入层来解决这个问题,该层将信息添加到 token 嵌入中。

图 22:来自我的《从头构建大型语言模型》书(https://www.amazon.com/Build-Large-Language-Model-Scratch/dp/1633437167)的修改图,说明了绝对位置嵌入。

另一方面,RoPE 通过相对于其 token 位置旋转查询和键向量来解决这个问题。

然而,在 NoPE 层中,根本不添加这样的位置信号:不是固定的,不是学习的,不是相对的。什么都没有

即使没有位置嵌入,由于因果注意力掩码,模型仍然知道哪些 token 在前面。此掩码防止每个 token 关注未来的 token。结果,位置t的 token 只能看到位置≤ t的 token,这保留了自回归顺序。

因此,虽然没有明确添加位置信息,但模型结构中仍然隐含了方向感,并且大型语言模型在常规的基于梯度下降的训练中,如果发现有利于优化目标,可以学会利用它。(查看 NoPE 论文的定理以获取更多信息。)

因此,总体而言,NoPE 论文不仅发现不需要位置信息注入,而且还发现NoPE 具有更好的长度泛化能力,这意味着大型语言模型的回答性能随着序列长度的增加而下降得更少,如下图所示。

图 23:来自 NoPE 论文(https://arxiv.org/abs/2305.19466)的注释图,显示了 NoPE 更好的长度泛化能力。

请注意,上面显示的实验是使用大约 1 亿个参数的相对较小的 GPT 风格模型和相对较小的上下文大小进行的。目前尚不清楚这些发现如何推广到更大的当代大型语言模型。

因此,SmolLM3 团队可能仅在每 4 层中「应用」NoPE(或者说省略 RoPE)

Kimi K2

Kimi K2 最近在 AI 社区掀起了巨大波澜,因为它是一个开源权重模型,性能非常出色。根据基准测试,它与 Google 的 Gemini、Anthropic 的 Claude 和 OpenAI 的 ChatGPT 模型等最好的专有模型不相上下。

一个值得注意的方面是它使用相对较新的 Muon 优化器的变体而不是 AdamW。据我所知,这是第一次在这种规模的任何生产模型中使用 Muon 而不是 AdamW(之前,它只被证明可以扩展到 16B)。这导致了非常好的训练损失曲线,这可能有助于将该模型推到上述基准的顶部。

虽然人们评论说损失异常平滑(由于缺乏尖峰),但我认为它并不是异常平滑(例如,参见下图中的 OLMo 2 损失曲线;此外,梯度的 L2 范数可能是跟踪训练稳定性的更好指标)。然而,值得注意的是损失曲线下降得有多好。

但是,如本文引言中所述,训练方法是另一个时间的主题。

图 24:来自 Kimi K2 公告博客文章(https://moonshotai.github.io/Kimi-K2/)和 OLMo 2 论文(https://arxiv.org/abs/2305.19466)的注释图。

该模型本身有 1 万亿个参数,这确实令人印象深刻

截至撰写本文时,它可能是这一代最大的大型语言模型(鉴于 LLaMA 4 Behemoth 尚未发布,专有大型语言模型不算,Google 的 1.6 万亿 Switch Transformer 是来自不同世代的编码器-解码器架构的限制)。

它也在回归原点,因为Kimi K2 使用我们在本文开头介绍的 DeepSeek V3 架构,只是他们使其更大,如下图所示。

图 25.1:DeepSeek V3 和 Kimi K2 之间的架构比较。

如上图所示,Kimi K2 基本上与 DeepSeek V3 相同,只是它在 MoE 模块中使用了更多的专家,在 Multi-head Latent Attention(MLA)模块中使用了更少的头。

Kimi K2 并非凭空出现。Kimi k1.5: Scaling Reinforcement Learning with LLMs 论文中讨论的早期 Kimi 1.5 模型也令人印象深刻。然而,不幸的是,DeepSeek R1 模型论文恰好在 1 月 22 日同一天发布。此外,据我所知,Kimi 1.5 权重从未公开分享过。

因此,Kimi K2 团队很可能吸取了这些教训,并在 DeepSeek R2 发布之前将 Kimi K2 作为开源权重模型分享。截至撰写本文时,Kimi K2 是最令人印象深刻的开源权重模型。

更新:2025 年 11 月 6 日,Kimi K2 团队还发布了他们的新「Thinking」模型变体。该架构与上面的 Kimi K2 相比没有变化,只是他们将上下文大小从 128k 扩展到 256k。

根据 Kimi 团队分享的基准测试,该模型在某些基准测试上超过了当前领先的专有大型语言模型的性能。(不幸的是,没有与 DeepSeek R1 的直接比较。

图 25.2:DeepSeek R1 与 Kimi K2 Thinking 架构(顶部)以及 Kimi K2 Thinking 基准测试(底部)。

GPT-OSS

OpenAI 发布了 gpt-oss-120b 和 gpt-oss-20b,这是自 2019 年 GPT-2 以来的首批开源权重模型,大约在我写这篇文章后一周。由于 OpenAI 的开源权重模型一直备受期待,我更新了这篇文章以包含它们。我将保持本节简短,但我写了另一篇更详细的专门介绍 gpt-oss 模型的文章:

在总结有趣的细节之前,让我们从两个模型 gpt-oss-20b 和 gpt-oss-120b 的概述开始,如下图 26 所示。

图 26:两个 gpt-oss 模型的架构概述。

看图 26,该架构包含我们之前讨论的其他架构中看到的所有熟悉组件。例如,图 27 将较小的 gpt-oss 架构与 Qwen3 30B-A3B 并列,后者也是一个具有相似数量活跃参数的 MoE 模型(gpt-oss 有 36 亿个活跃参数,Qwen3 30B-A3B 有 33 亿个)。

图 27:gpt-oss 和 Qwen3 之间的架构比较

图 27 中未显示的一个方面是gpt-oss 使用滑动窗口注意力(类似于 Gemma 3,但在每隔一层而不是使用 5:1 的比例)。

图 27 显示 gpt-oss 和 Qwen3 使用类似的组件。但如果我们仔细观察这两个模型,我们会发现Qwen3 是一个更深的架构,有 48 个 Transformer 块而不是 24 个。

另一方面,gpt-oss 是一个更宽的架构

  • 嵌入维度为 2880 而不是 2048
  • 中间专家(前馈)投影维度也是 2880 而不是 768

还值得注意的是,gpt-oss 使用的注意力头数是两倍,但这并不会直接增加模型的宽度。宽度由嵌入维度决定。

在固定参数数量的情况下,一种方法是否比另一种方法具有优势?根据经验法则,更深的模型具有更大的灵活性,但由于梯度爆炸和消失的不稳定性问题(RMSNorm 和快捷连接旨在缓解),可能更难训练

更宽的架构具有在推理期间更快(具有更高的 token/秒吞吐量)的优势,因为在更高的内存成本下具有更好的并行化。

当谈到建模性能时,不幸的是,我不知道有什么好的苹果对苹果的比较(保持参数大小和数据集恒定),除了 Gemma 2 论文(表 9)中的消融研究,该研究发现,对于 9B 参数架构,更宽的设置略好于更深的设置。在 4 个基准测试中,更宽的模型获得了 52.0 的平均分数,而更深的模型获得了 50.8 的平均分数。

如上图 27 所示,gpt-oss 的专家数量也出奇地少(32 个而不是 128 个),并且每个 token 仅使用 4 个而不是 8 个活跃专家。然而,每个专家都比 Qwen3 中的专家大得多。

这很有趣,因为最近的趋势和发展指向更多、更小的模型是有益的。这种变化,在恒定的总参数大小下,在 DeepSeekMoE 论文的图 28 中得到了很好的说明。

图 28:来自「DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models」的注释图,https://arxiv.org/abs/2401.06066

值得注意的是,与 DeepSeek 的模型不同,gpt-oss 和 Qwen3 都不使用共享专家

gpt-oss 和 Qwen3 都使用分组查询注意力。主要区别在于,如前所述,gpt-oss 在每第二层通过滑动窗口注意力限制上下文大小。

然而,有一个有趣的细节引起了我的注意。似乎gpt-oss 对注意力权重使用偏置单元,如下图 29 所示。

图 29:gpt-oss 模型在注意力层中使用偏置单元。请参阅此处的代码示例。

自从 GPT-2 时代以来,我就没有看到过这些偏置单元被使用,它们通常被认为是多余的。事实上,我发现了一篇最近的论文,从数学上表明这至少对于键变换(k_proj)是正确的。此外,实证结果表明,有偏置单元和没有偏置单元之间几乎没有区别(见下图 30)。

图 30:来自 https://arxiv.org/pdf/2302.08626 的表格,显示了从头训练模型时有偏置单元和没有偏置单元的平均测试损失。

你可能注意到的另一个细节是图 30 中代码截图中sinks的定义。在一般模型中,注意力槽是放置在序列开头的特殊「始终关注」token,以稳定注意力,这在长上下文场景中特别有用。即,如果上下文变得非常长,这个在开头的特殊关注 token 仍然被关注,并且它可以学习存储一些关于整个序列的通用有用信息。(我认为它最初是在 Efficient Streaming Language Models with Attention Sinks 论文中提出的。)

在 gpt-oss 实现中,_注意力槽_不是输入序列中的实际 token。相反,它们是在附加到注意力分数之前学习的每头偏置 logit(图 31)。目标与上述注意力槽相同,但不修改分词输入。

图 31:gpt-oss 中注意力槽的使用;基于 Hugging Face 代码在这里。

有关 gpt-oss 的更多信息,以及它与 GPT-2 的比较,请参阅我的另一篇 gpt-oss 文章:

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份LLM大模型资料分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以扫描下方二维码领取🆓↓↓↓


Grok 2.5

在本文首次上线几周后,xAI 发布了其 2700 亿参数 Grok 2.5 模型的权重。

我认为值得包含在这里,因为Grok 2.5 是 xAI 去年的旗舰生产模型。到目前为止,我们讨论的所有模型从一开始就作为开源权重模型发布。例如,gpt-oss 可能不是 GPT-4 的开源权重克隆,而是专门为开源社区训练的定制模型。

通过 Grok 2.5,我们难得一窥真正的生产系统,即使它是去年的。

从架构上讲,Grok 2.5 总体上看起来相当标准(图 32),但有一些值得注意的细节。

图 32:Grok 2.5 与类似大小的 Qwen3 模型并列

例如,Grok 2.5 使用少量大型专家(八个),这反映了一个较旧的趋势。如前所述,更新的设计(例如 DeepSeekMoE 论文中的设计)倾向于使用更多数量的较小专家(这也存在于 Qwen3 中)。

另一个有趣的选择是使用相当于共享专家的东西。图 32 左侧显示的额外 SwiGLU 模块充当始终开启的共享专家。它与经典的共享专家设计不完全相同,因为其中间维度加倍,但想法是相同的。(我仍然发现 Qwen3 省略了共享专家很有趣,看看 Qwen4 和更高版本的模型是否会改变这一点将很有趣。)

GLM-4.5

GLM-4.5 是今年的另一个重要版本。

它是一个类似于 Qwen3 的指令/推理混合模型,但更优化用于函数调用和智能体风格的上下文。

图 33:来自官方 GitHub 仓库的 GLM-4.5 基准测试,网址为 https://github.com/zai-org/GLM-4.5

如图 34 所示,GLM-4.5 有两种变体。旗舰 3550 亿参数模型在 12 个基准测试中平均优于 Claude 4 Opus,仅略微落后于 OpenAI 的 o3 和 xAI 的 Grok 4。还有GLM-4.5-Air,一个更紧凑的 1060 亿参数版本,其性能仅略低于 3550 亿模型。

图 35 将 3550 亿架构与 Qwen3 进行了比较。

图 34:GLM-4.5 与类似大小的 Qwen3 模型并列。

设计在很大程度上相似,但GLM-4.5 采用了 DeepSeek V3 首次引入的结构选择:3 个密集层位于 Mixture-of-Experts(MoE)块之前。为什么?从几个密集层开始可以提高大型 MoE 系统的收敛稳定性和整体性能。如果立即引入 MoE 路由,稀疏专家选择的不稳定性可能会干扰早期的句法和语义特征提取。因此,可以说保持初始层密集可以确保模型在路由决策开始塑造更高级别处理之前形成稳定的低级表示

此外,GLM-4.5 使用类似于 DeepSeek V3 的共享专家(与 Qwen3 不同)。

(有趣的是,GLM-4.5 还保留了 GPT-2 和 gpt-oss 中使用的注意力偏置机制。)

Qwen3 Next

2025 年 11 月 9 日,Qwen3 团队发布了Qwen3 Next 80B-A3B(图 35),提供 Instruct 和 Thinking 两种变体。虽然其设计建立在之前讨论的 Qwen3 架构之上,但我在这里将其作为单独的条目,以保持图编号一致,并引起人们对其一些设计变化的注意。

新的 Qwen3 Next 架构之所以引人注目,是因为尽管它比之前的 235B-A22B 模型小 3 倍(图 35),但它引入了四倍多的专家,甚至还添加了一个共享专家。这两种设计选择(高专家数量和包含共享专家)都是我在此版本之前强调的未来方向,特别是在我在顶部链接的文章视频版本中。

图 35:5 月发布的原始 Qwen3 模型(左)与 9 月发布的 Qwen3 Next 模型(右)。

另一个亮点是他们用 Gated DeltaNet + Gated Attention 混合替换了常规注意力机制,这有助于在内存使用方面实现原生 262k token 上下文长度(之前的 235B-A22B 模型原生支持 32k,使用 YaRN 缩放支持 131k。)

那么这个新的注意力混合是如何工作的?与分组查询注意力(GQA)相比,GQA 仍然是标准的缩放点积注意力(跨查询头组共享 K/V 以减少 KV 缓存大小和内存带宽,如前所述,但其解码成本和缓存仍随序列长度增长),他们的混合机制以 3:1 的比例混合Gated DeltaNet块和Gated Attention,如图 36 所示。

我们可以将门控注意力块视为可以在 GQA 中使用的标准缩放点积注意力,但它在顶部有一些调整。_门控注意力_和普通 GQA 块之间的主要区别是:

  1. 输出门(sigmoid 控制,通常是每通道),在将注意力结果添加回残差之前缩放它;
  2. 用于 QKNorm 的零中心 RMSNorm,而不是标准 RMSNorm;
  3. 部分 RoPE(在维度的子集上)。

请注意,这些本质上只是对 GQA 的稳定性更改。

Gated DeltaNet 是一个更重要的改变。在 DeltaNet 块中,q、k、v 和两个门(α、β)由线性和轻量级卷积层与归一化产生,该层用快速权重_增量规则_更新替换注意力。

然而,权衡是 DeltaNet 提供的基于内容的检索精度低于完全注意力,这就是为什么保留一个门控注意力层的原因。

鉴于注意力呈二次增长,添加 DeltaNet 组件是为了帮助提高内存效率。在「线性时间、无缓存」系列中,DeltaNet 块本质上是 Mamba 的替代品。Mamba 使用学习的状态空间过滤器(本质上是随时间动态卷积)保持状态。DeltaNet 保持一个用 α 和 β 更新的微小快速权重内存,并用 q 读取它,小卷积仅用于帮助形成 q、k、v、α、β。

上面的两个小节描述了两个面向效率的设计决策。由于所有好事都是三件一组的,Qwen3 在此基础上又增加了另一种技术:Multi-Token Prediction(MTP)。

多 token 预测训练大型语言模型在每个步骤预测多个未来 token,而不是单个 token。在这里,在每个位置t,小型额外头(线性层)输出t+1…t+k的 logit,我们对这些偏移求交叉熵损失的总和(在 MTP 论文中,研究人员建议k=4)。这个额外的信号加快了训练速度,推理可能仍然是一次生成一个 token。然而,额外的头可以用于推测性多 token 解码,这是 Qwen3-Next 似乎所做的,但是,细节仍然有点稀疏:

Qwen3-Next 引入了原生的 Multi-Token Prediction(MTP)机制,它不仅产生了一个用于推测解码的高接受率的 MTP 模块,而且还增强了整体性能。此外,Qwen3-Next 专门优化了 MTP 的多步推理性能,通过保持训练和推理之间一致性的多步训练进一步提高了推测解码在实际场景中的接受率。来源:Qwen3-Next 博客文章

最近,开源权重大型语言模型开发者分享了针对效率优化的核心架构风格。一个例子是 Qwen3-Next(见上一节),它用快速门控 DeltaNet 模块替换了一些完全注意力块。另一个例子是 DeepSeek V3.2,它使用稀疏注意力,这是一种线性注意力变体,以改进的计算性能换取一些建模性能(我计划在即将发表的文章中更详细地介绍这种机制)。

现在,MiniMax-M1 属于与上述模型类似的类别,因为它使用线性注意力变体(lightning attention),该变体比常规(完全)注意力提供了改进的效率。我最初没有介绍 MiniMax M1,因为它不像这里讨论的其他一些模型那样受欢迎。然而,他们新的 MiniMax-M2 版本目前被认为是最好的开源权重模型(根据基准性能),这使得它太重要而不能忽视。

图 37:MiniMax-M2 基准性能与其他流行的开源权重和专有大型语言模型的比较。图片来自官方模型中心发布的 readme 文件。

如下面的概览图所示,我将 MiniMax-M2 与其他解码器风格的 Transformer 大型语言模型分组,因为它没有使用 MiniMax-M1 中提出的高效 lightning attention 变体。相反,开发人员回到使用完全注意力,可能是为了提高建模(和基准)性能。

图 38:本文介绍的主要大型语言模型的时间表,旁边是一些注意力混合模型,它们构成了更高效的替代方案,用一些建模性能换取改进的效率。

总体而言,MiniMax-M2 与 Qwen3 惊人地相似。除了更改层数、大小等之外,它总体上使用相同的组件。

也许这里唯一值得注意的亮点是MiniMax-M2 使用所谓的「per_layer」QK-Norm 而不是常规 QK-Norm。仔细查看代码发现它在注意力机制内部是这样实现的:

self.q_norm = MiniMaxText01RMSNormTP(self.head_dim * self.total_num_heads, eps=...) self.k_norm = MiniMaxText01RMSNormTP(self.head_dim * self.total_num_kv_heads, eps=...)

这里,hidden_size等于连接的头(num_heads * head_dim),因此 RMSNorm 具有一个缩放向量,每个头(以及每个头维度)都有不同的参数。

因此,「per_layer」意味着 RMSNorm(用于如前所述的 QK-Norm)在每个 Transformer 块中定义(如常规 QK-Norm 中),但此外,它不是跨注意力头重用,而是每个注意力头都有唯一的 QK-Norm。

模型配置文件还包括滑动窗口注意力设置(类似于第 3 节中的 Gemma 3),但如 Mistral 3.1(在第 4 节中讨论)中一样,它默认被禁用。

除了每层 QK-Norm 之外,该架构与 Qwen3 非常相似,如下图所示。

图 39:Qwen3 和 MiniMax-M2 之间的比较。

其他有趣的细节,如上图所示,包括他们不使用共享专家(类似于 Qwen3 但与 Qwen3-Next 不同)。如前所述,在我看来,共享专家是有用的,因为它们减少了其他专家之间的冗余。

此外,从上图可以明显看出,MiniMax-M2 的「稀疏性」是 Qwen3 的两倍。即,在与 Qwen3 235B-A22B 大致相同的大小下,MiniMax-M2 每个 token 只有 100 亿个而不是 220 亿个活跃专家(也就是说,在 MiniMax-M2 中,每个推理步骤使用 4.37% 的参数,而 Qwen3 使用 9.36% 的活跃 token)。

最后,与 MiniMax-M1 类似,MiniMax-M2 在注意力模块内部使用「部分」而不是常规 RoPE 来编码位置信息。与常规 RoPE 类似,旋转在应用 QK-Norm 后应用于查询和键。

这里的部分 RoPE 意味着只有每个头的前rotary_dim通道获得旋转位置编码,其余的head_dim - rotary_dim通道保持不变

在官方 M1 README 文件中,开发人员提到

旋转位置嵌入(RoPE)应用于注意力头维度的一半,基频为 10,000,000

我们可以将其描绘如下:

完全 RoPE: [r r r r r r r r] 部分 RoPE: [r r r r — — — —]

其中在上面的概念性说明中,「r」显示旋转(位置编码)维度,破折号是未触及的维度。

这样做的意义是什么?在 M1 论文中,开发人员表示

……在 softmax 注意力维度的一半上实现 RoPE 可以实现长度外推,而不会降低性能。

我的推测是,这可以防止对长序列进行「太多」旋转,尤其是那些比训练数据集中最长文档更长的序列。即,这里的理由可能是没有旋转比模型在训练中从未见过的「坏」或「太极端」的旋转要好。

线性注意力的复兴

最近线性注意力机制有所复兴,以提高大型语言模型的效率。

「Attention Is All You Need」论文(2017)中引入的注意力机制,也称为缩放点积注意力,仍然是当今大型语言模型中最流行的注意力变体。除了传统的多头注意力之外,它还用于更高效的风格,如分组查询注意力、滑动窗口注意力和多头潜在注意力。

原始注意力机制随序列长度呈二次缩放:

这是因为查询(Q)、键(K)和值(V)是nd矩阵,其中d是嵌入维度(超参数),n是序列长度(即 token 数量)。

你可以在我的另一篇文章中找到有关注意力的更多详细信息:

图 40:由于序列长度n,注意力中二次成本的说明。

线性注意力变体已经存在很长时间了,我记得在 2020 年代看到过大量论文。例如,我记得最早的一个是 2020 年的 Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention 论文,研究人员在其中近似注意力机制:

这里,φ(·) 是核特征函数,设置为 φ(x) = elu(x) + 1。

这种近似是高效的,因为它避免了显式计算 n × n 注意力矩阵 QK^T。而不是执行所有成对 token 交互(其成本为 O(n^2d) 时间和内存)。

我不想在这些较旧的尝试上停留太久。但底线是它们将时间和内存复杂度从 O(n^2) 降低到 O(n),使注意力对于长序列更加高效。

然而,它们从未真正获得关注,因为它们降低了模型精度,而且我从未真正看到这些变体中的一个应用于开源权重的最先进大型语言模型中。

在今年下半年,线性注意力变体有所复兴。第一个值得注意的模型是 MiniMax-M1,具有 lightning attention,这是一个 4560 亿参数的 Mixture-of-Experts(MoE)模型,具有 460 亿个活跃参数,于 6 月推出。

然后,在 8 月,Qwen3 团队跟进了我在上面更详细讨论过的 Qwen3-Next。然后,在 9 月,DeepSeek 团队宣布了 DeepSeek V3.2。所有三个模型(MiniMax-M1、Qwen3-Next、DeepSeek V3.2)都用高效的线性变体替换了它们大部分或所有层中的传统二次注意力变体。

有趣的是,最近出现了一个情节转折,MiniMax 团队发布了他们新的 2300 亿参数 M2 模型(在第 13 节中讨论),没有线性注意力,回到常规注意力。该团队表示,线性注意力在生产大型语言模型中很棘手。它似乎在常规提示下工作正常,但在推理和多轮任务中精度较差,这对于常规聊天会话以及智能体应用不仅很重要。

这可能是一个转折点,线性注意力可能毕竟不值得追求。然而,事情变得更有趣了。在 10 月,Kimi 团队发布了他们新的具有线性注意力的 Kimi Linear 模型。

图 41:线性注意力混合架构的概述。

旁注:我本可以将 Qwen3-Next 和 Kimi Linear 与概览图中的其他 Transformer-状态空间模型(SSM)混合体分组。就我个人而言,我将这些其他 Transformer-SSM 混合体视为带有 Transformer 组件的 SSM,而我将这里讨论的模型(Qwen3-Next 和 Kimi Linear)视为带有 SSM 组件的 Transformer。但是,由于我在 Transformer-SSM 框中列出了 IBM Granite 4.0 和 NVIDIA Nemotron Nano 2,因此可以争辩将它们放入一个类别。

Kimi Linear 与 Qwen3-Next 有几个结构相似之处。两个模型都依赖于混合注意力策略。具体来说,它们将轻量级线性注意力与更重的完全注意力层相结合。具体来说,两者都使用 3:1 的比例,这意味着每三个使用线性 Gated DeltaNet 变体的 Transformer 块,就有一个使用完全注意力的块,如下图所示。

图 42:Qwen3-Next 和 Kimi Linear 并排。

Gated DeltaNet 是一种线性注意力变体,其灵感来自循环神经网络,包括来自 Gated Delta Networks: Improving Mamba2 with Delta Rule 论文的门控机制。从某种意义上说,Gated DeltaNet 是一个具有 Mamba 风格门控的 DeltaNet,而 DeltaNet 是一种线性注意力机制。由于本文的概述性质,DeltaNet 将来会是一个很好的单独文章的主题。

请注意,上图中 Kimi Linear 部分省略 RoPE 框是故意的。Kimi 在多头潜在注意力 MLA)层(全局注意力)中应用 NoPE(无位置嵌入)。正如作者所说,这让 MLA 在推理时作为纯多查询注意力运行,并避免了长上下文缩放的 RoPE 重新调整(位置偏差据称由 Kimi Delta Attention 块处理)。有关 MLA 和多查询注意力(这是分组查询注意力的特例)的更多信息,请参阅我的大型语言模型架构大比拼文章。

此外,我已经在这里写了更多关于 Gated DeltaNet 的内容。

Kimi Linear 通过 Kimi Delta Attention(KDA)机制修改了 Qwen3-Next 的线性注意力机制,这本质上是 Gated DeltaNet 的改进。而 Qwen3-Next 应用标量门(每个注意力头一个值)来控制内存衰减率,Kimi Linear 将其替换为每个特征维度的通道式门控。根据作者的说法,这提供了对内存的更多控制,这反过来又改善了长上下文推理。

此外,对于完全注意力层,Kimi Linear 用 Multi-Head Latent Attention(MLA)替换了 Qwen3-Next 的门控注意力层(本质上是带有输出门控的标准多头注意力层)。这是我们之前在 DeepSeek V3/R1 部分讨论的相同 MLA 机制,但有一个额外的门。(回顾一下,MLA 压缩键/值空间以减少 KV 缓存大小。)

没有与 Qwen3-Next 的直接比较,但与来自 Gated DeltaNet 论文的 Gated DeltaNet-H1 模型(本质上是带有滑动窗口注意力的 Gated DeltaNet)相比,Kimi Linear 实现了更高的建模精度,同时保持相同的 token 生成速度。

图 43:来自 Kimi Linear 论文的注释图,显示 Kimi Linear 与 GatedDeltaNet 一样快,并且比具有多头潜在注意力(如 DeepSeek V3/R1)的架构快得多,同时具有更高的基准性能。

此外,根据 DeepSeek-V2 论文中的消融研究,当仔细选择超参数时,MLA 与常规完全注意力不相上下。

Kimi Linear 在长上下文和推理基准测试中与 MLA 相比表现良好,这一事实再次使线性注意力变体对更大的最先进模型很有希望。话虽如此,Kimi Linear 是 480 亿参数大,但它比 Kimi K2 小 20 倍。看看 Kimi 团队是否会在即将推出的 K3 模型中采用这种方法将很有趣。

Olmo 3

Allen AI 于 11 月 20 日发布了他们新的 Olmo 3 7B 和 32B 模型。(官方拼写从 OLMo 改为 Olmo,因此我将在本节中采用该拼写。)

如前所述,Olmo 模型总是很有趣,因为它们是完全开源的。在这里,这意味着该团队还分享详细的训练报告、多个检查点、有关训练数据的信息等。换句话说,Olmo 模型是完全透明的。

这次,Olmo 套件还提供了额外的推理模型风格(在基础和指令模型旁边),Olmo 3 的技术报告中有很多关于训练的有趣细节。但是,由于这是一篇关于架构比较的文章,因此本节仅关注 Olmo 3 的架构。

与 Olmo 3 比较的最接近的模型是 Qwen3,因为 Qwen3 系列有两个类似大小的模型,并且 Qwen3 模型具有类似的性能。

首先,让我们看看两者中较小的一个,Olmo 3 7B。

图 44:Olmo 3 7B 和 Qwen3 8B 并排。

正如我们所看到的,Olmo 3 架构与 Qwen3 相对相似。然而,值得注意的是,这本质上可能受到 Olmo 2 前身的启发,而不是 Qwen3。

与 Olmo 2 类似,Olmo 3 仍然使用后归一化而不是前归一化,因为他们在 Olmo 2 论文中发现它稳定了训练。

有趣的是,7B 模型仍然使用类似于 Olmo 2 的多头注意力。但是,为了提高效率并缩小 KV 缓存大小,他们现在使用滑动窗口注意力(例如,类似于 Gemma 3)。

接下来,让我们看看 32B 模型。

图 45:Olmo 3 32B 和 Qwen3 32B 并排。

总体而言,它是相同的架构,只是放大了。此外,比例(例如,从前馈层的输入到中间大小,等等)大致与 Qwen3 中的比例匹配。

我的猜测是,由于词汇量较小,该架构最初比 Qwen3 小一些,然后他们将中间大小扩展从 Qwen 3 中的 5 倍扩展到 Olmo 3 中的 5.4 倍,以获得 32B 模型进行直接比较。

另外,请注意,32B 模型使用分组查询注意力。

也许最后一个小细节是 Olmo 3 使用 YaRN 进行上下文扩展以支持 64k 的上下文长度,但仅适用于全局(非滑动窗口注意力)层。(YaRN 本质上是一种仔细的 RoPE 重新缩放技术,它有助于在长上下文大小下更好地保留模型质量。)

在 Qwen3 中,YaRN 是可选的,可以将原生上下文从 32k token 扩展到 131k token。

如果你对其他架构细节感兴趣,我在这里的独立笔记本中从头实现了 Olmo 3。

DeepSeek V3.2

本文从 2024 年 12 月发布的 DeepSeek V3 开始。那时有多个 DeepSeek 版本,但我基本上跳过了它们,因为它们不是像 DeepSeek V3 和 DeepSeek R1 那样的大型旗舰模型版本。

图 47:自 DeepSeek V3 以来 DeepSeek 模型发布的时间表。主要模型以红色显示。

然而,DeepSeek V3.2 是一个真正的大版本,因为它在某些基准测试上与当前的 GPT-5.1 和 Gemini 3.0 Pro 模型不相上下。

该架构总体上与 DeepSeek V3 类似,但他们添加了稀疏注意力机制以提高效率。

图 48:具有多头潜在和稀疏注意力的 DeepSeek 模型架构。

我最初计划为本文撰写关于 DeepSeek V3.2 的简短部分,但它变成了一篇超过 5000 字的文章,因此我将其移至一篇单独的文章,我在下面链接:

Mistral 3

2025 年 12 月 2 日,即 DeepSeek V3.2 发布后一天,Mistral 团队发布了他们新的 Mistral 3 模型套件。这包括三个较小的密集模型(3B、8B 和 14B),名称为 Ministral 3,以及他们新的 Mistral 3 Large 旗舰模型,这是一个 6750 亿参数的 MoE(410 亿个参数活跃)。更具体地说,Mistral 3 Large 模型由以下部分组成:

  • 一个具有 6730 亿个参数和 390 亿个活跃参数的 MoE 语言模型
  • 一个 25 亿参数的视觉编码器

(由于本文关注大型语言模型方面,我们将在本节中忽略视觉编码器。我也许应该在某个时候更新我的多模态大型语言模型文章。)

首先,有趣的是,这是 Mistral 自 2023 年 Mixtral 以来的第一个 MoE(在本文前面,我写道 Mistral 放弃了 MoE,去年的 DeepSeek V3 开启了 MoE 复兴)。

发布博客文章说所有模型大小都有基础、指令和推理变体,这很好。但是,他们 6750 亿模型的推理版本尚不可用。

另一个有趣的细节是,根据他们的公告,Mistral 在这里与 NVIDIA 合作优化了 Blackwell 芯片上的 token/秒吞吐量。这很好,因为这意味着 Ministral 模型在我的小 DGX Spark 上会比类似模型运行得快一点(我还得测试一下)。

除了 Mistral 3 的 token/秒速度优势之外,基于质量基准,他们的较小模型 Ministral 看起来与 Qwen3 不相上下。更大的旗舰模型与 DeepSeek V3.1 不相上下。

由于 Mistral 3 的发布只是在 DeepSeek V3.2 发布后一天,他们没有在文章中包含任何 V3.2 比较(除了 LMArena Elo 分数,DeepSeek V3.2 以 1423 对 1418 略微领先)。

不幸的是,现在不可能进行苹果对苹果的比较,因为 Mistral 3 Large 目前没有推理模型,并且 DeepSeek V3.2 没有分享他们非思考模式的基准结果,但如果你好奇,我将 DeepSeek V3.2-Thinking 数字(来自 DeepSeek V3.2 报告)与 Mistral 3 Large 基准图表叠加在一起。

看看 Mistral Large 3 Instruct 模型旁边的 DeepSeek V3.2-Thinking 模型(数字来自 DeepSeek V3.2 论文),V3.2-Thinking 模型显然要好得多。因此,我保持关注 Mistral 3 Large Thinking 的发布,并期待看到更新的图表!

所以,现在,我会说,由于优化,Mistral 3 Large 是成本效益高、低延迟部署的绝佳选择。如果你想最大化答案质量,DeepSeek V3.2-Thinking 很棒。Mistral 3 Large 的另一个卖点是它也提供多模态支持(DeepSeek V3.2 仅支持文本)。

顺便说一句,我在本节中关注 DeepSeek V3.2 是因为这些模型发布得如此接近,彼此相差一天。此外,它们的大小几乎相同,6710 亿和 6730 亿,这使得比较很有趣!

不幸的是,没有包含有关模型开发的更多信息的技术报告。但是,由于它是一个开源权重模型,我们在 Hugging Face hub 上有模型权重可供分析。因此,让我们仔细看看 Mistral 3 Large。

事实证明,Mistral 3 Large 与 DeepSeek V3 和 V3.1 的架构完全相同!唯一的区别是他们将专家的大小增加了 2 倍,同时将专家的数量减少了相同的因子。

DeepSeek V3 和 Mistral 3 Large 并排。

然而,虽然它实际上是相同的架构,但 Mistral 团队很可能从头开始训练 Mistral 3,而不是从 DeepSeek V3 初始化它并进一步训练它,因为 Mistral 使用自己的分词器。

在 Kimi K2 旁边,Mistral 3 现在是第二个使用 DeepSeek V3 架构的模型系列。然而,Kimi K2 团队将模型大小从 6710 亿扩展到 1 万亿,Mistral 3 团队只改变了专家大小比例,并为多模态支持添加了视觉编码器。但是,是的,为什么不呢?我认为 DeepSeek V3 是一个非常坚实的架构设计,此外,它具有这些很好的 MoE 和 MLA 效率方面。那么,为什么要改变没有破损的东西呢?如今,很多秘密酱料都在训练流程以及推理缩放策略中。

这些年后,大型语言模型的发布仍然令人兴奋,我很好奇接下来会是什么!

这本杂志是一个个人激情项目,你的支持有助于保持它的活力。

如果你想支持我的工作,请考虑我的《从头构建大型语言模型》书或其后续作品《从头构建推理模型》。(我相信你会从这些书中得到很多收获;它们深入解释了大型语言模型的工作原理,这是你在其他地方找不到的。)

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份LLM大模型资料分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以扫描下方二维码领取🆓↓↓↓

学习路线

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/29 8:33:25

智能算法与边缘计算融合:驱动下一代实时决策系统的技术范式革新

在数字化浪潮中,实时决策系统已成为工业自动化、智慧城市、金融风控等领域的核心基础设施。传统集中式云计算模式因延迟高、带宽受限等问题,难以满足低时延、高可靠性的场景需求。而边缘计算与智能算法的深度融合,正通过“分布式智能”重构技…

作者头像 李华
网站建设 2025/12/28 8:07:01

为什么顶尖团队都在用Dify 1.7.0做音频转换?真相令人震惊

第一章:为什么顶尖团队都在用Dify 1.7.0做音频转换?真相令人震惊在人工智能与语音处理的交汇点,Dify 1.7.0 正悄然改写行业规则。其强大的音频转换能力不仅体现在高保真还原和低延迟处理上,更在于它将复杂模型封装为可编程接口&am…

作者头像 李华
网站建设 2025/12/29 16:58:47

如何30分钟完成一个AI驱动的工作流?Dify可视化编辑实操揭秘

第一章:AI工作流的演进与Dify的核心价值随着人工智能技术从实验室走向产业落地,AI工作流经历了从“模型为中心”到“应用为中心”的深刻变革。早期的AI开发依赖于数据科学家手动完成数据清洗、特征工程、模型训练与部署,流程割裂且难以复用。…

作者头像 李华
网站建设 2025/12/30 6:36:10

构建失败率降低80%?量子计算镜像缓存优化,你不得不看的关键步骤

第一章:构建失败率降低80%?量子计算镜像缓存的革命性突破传统CI/CD流水线中,依赖下载和环境初始化是构建失败的主要诱因之一。尤其在高并发或网络受限场景下,镜像拉取超时导致的构建中断屡见不鲜。然而,随着量子计算与…

作者头像 李华