最后更新:2026年4月2日(第23节新增Gemma 4)
距离最初的GPT架构诞生已有七年。乍看之下,从GPT-2(2019年)回顾到DeepSeek V3和Llama 4(2024-2025年),你可能会惊讶于这些模型在结构上仍然如此相似。
诚然,位置嵌入已从绝对位置演变为旋转位置(RoPE),多头注意力已基本让位于分组查询注意力,更高效的SwiGLU也取代了GELU等激活函数。但在这些细微改进之下,我们是否真的见证了突破性的变革,还是仅仅在打磨相同的架构基础?
比较LLM以确定其性能好坏的关键要素是出了名的困难:数据集、训练技术和超参数差异巨大,且往往缺乏详细记录。
然而,我认为审视架构本身的结构变化仍然很有价值,可以了解LLM开发者在2025年的动向。(其中一部分如图1所示。)

因此,在本文中,我不会讨论基准性能或训练算法,而是聚焦于定义当今旗舰开源模型的架构发展。
(你可能还记得,不久前我写过关于多模态LLM的文章;本文将重点介绍近期模型的文本能力,多模态能力的讨论留待日后。)
提示: 这是一篇相当全面的文章,因此建议使用导航栏访问目录(只需将鼠标悬停在Substack页面的左侧即可)。
可选: 下方视频是本文的配音精简版。
你可能已经不止一次听说过,DeepSeek R1 在2025年1月发布时引起了巨大轰动。DeepSeek R1是一个基于DeepSeek V3架构(于2024年12月推出)的推理模型。
虽然我在此重点关注的是2025年发布的架构,但我认为将DeepSeek V3包含在内是合理的,因为它是在2025年DeepSeek R1发布后才获得广泛关注和采用的。
如果你对DeepSeek R1的具体训练感兴趣,我今年早些时候的文章可能也会对你有帮助:
[
](https://magazine.sebastianraschka.com/p/understanding-reasoning-llms)
在本节中,我将重点介绍DeepSeek V3引入的两项关键架构技术,它们提高了计算效率,并使该模型区别于许多其他LLM:
- 多头潜在注意力(MLA)
- 混合专家模型(MoE)
在讨论多头潜在注意力(MLA)之前,我们先简要回顾一些背景知识,以理解其应用动机。为此,我们从分组查询注意力(GQA)说起——近年来,GQA已成为替代多头注意力(MHA)的新标准方案,旨在提升计算效率和参数效率。
以下是GQA的简要总结。与MHA中每个注意力头拥有独立键值对不同,GQA通过将多个注意力头分组,共享相同的键值投影,从而降低内存占用。
例如,下图2进一步说明:若有2个键值组和4个注意力头,则头1和头2共享一组键值,头3和头4共享另一组。这减少了键值计算的总量,从而降低内存使用并提升效率(根据消融研究,对建模性能无明显影响)。

因此,GQA的核心思想是通过在多个查询头之间共享键值头,减少键值头的数量。这(1)降低了模型参数量,(2)减少了推理时键值张量的内存带宽占用,因为KV缓存中需要存储和检索的键值更少。
(若想了解GQA的代码实现,可参考我的GPT-2到Llama 3转换指南(无KV缓存版本)及此处的KV缓存变体。)
尽管GQA主要是针对MHA的计算效率优化方案,但消融研究(如原始GQA论文和Llama 2论文)表明,其在LLM建模性能上与标准MHA相当。
现在,多头潜在注意力(MLA)提供了一种不同的内存节省策略,尤其适合与KV缓存配合使用。与GQA共享键值头不同,MLA将键值张量压缩到更低维度的空间,再存入KV缓存。
推理时,这些压缩张量被投影回原始大小后使用,如下图3所示。这增加了一次矩阵乘法,但减少了内存占用。

(顺便提一句,查询向量也会被压缩,但仅在训练阶段,推理时不做压缩。)
顺便提一下,MLA 在 DeepSeek V3 中并非新事物,其 DeepSeek-V2 前身 也使用了(甚至引入了)它。此外,V2 论文中包含一些有趣的消融研究,可能解释了为什么 DeepSeek 团队选择 MLA 而非 GQA(见下方图 4)。

如上图 4 所示,GQA 的表现似乎不如 MHA,而 MLA 则提供了优于 MHA 的建模性能,这很可能就是 DeepSeek 团队选择 MLA 而非 GQA 的原因。(如果能同时看到 MLA 与 GQA 在“每 Token KV 缓存”节省方面的对比,那将非常有趣!)
在进入下一个架构组件之前,总结一下本节:MLA 是一种巧妙的方法,可以在减少 KV 缓存内存使用的同时,甚至在建模性能上略微超越 MHA。
DeepSeek 中另一个值得强调的主要架构组件是其对混合专家(MoE)层的使用。虽然 MoE 并非 DeepSeek 发明,但今年它重新兴起,我们后面将介绍的许多架构也采用了它。
你可能已经熟悉 MoE,但快速回顾一下或许仍有帮助。
MoE 的核心思想是将 Transformer 块中的每个前馈模块替换为多个专家层,其中每个专家层本身也是一个前馈模块。这意味着我们将单个前馈块替换为多个前馈块,如下图 5 所示。

Transformer 块内部的前馈块(上图中深灰色块所示)通常包含模型总参数中的很大一部分。(请注意,Transformer 块及其中的前馈块在 LLM 中会重复多次;以 DeepSeek V3 为例,重复了 61 次。)
因此,将单个前馈块替换为多个前馈块(如 MoE 设置中所做的那样)会显著增加模型的总参数量。然而,关键技巧在于,我们并非对每个 Token 都使用(“激活”)所有专家。相反,路由器仅为每个 Token 选择一小部分专家。(由于时间有限,或者说文章篇幅有限,我将在其他时间更详细地介绍路由器。)
由于每次只有少数专家处于活跃状态,MoE模块通常被称为稀疏模块,与始终使用全部参数集的密集模块形成对比。然而,通过MoE实现的大量总参数提升了大语言模型(LLM)的容量,这意味着它能在训练过程中吸收更多知识。不过,稀疏性保证了推理效率,因为我们不会同时使用所有参数。
例如,DeepSeek V3的每个MoE模块包含256个专家,总参数达6710亿。但在推理时,每次只有9个专家处于活跃状态(1个共享专家加上由路由器选出的8个专家)。这意味着每次推理步骤仅使用370亿参数,而非全部6710亿参数。
DeepSeek V3的MoE设计一个显著特点是使用了共享专家。这是一个对每个token始终处于活跃状态的专家。这一概念并非全新,早在DeepSeek 2024 MoE论文和2022年DeepSpeedMoE论文中就已提出。

共享专家的优势最早在DeepSpeedMoE论文中被指出,他们发现与没有共享专家相比,它能提升整体建模性能。这可能是因为常见或重复的模式无需由多个独立专家分别学习,从而为学习更专门的模式留出更多空间。
总结来说,DeepSeek V3是一个拥有6710亿参数的巨型模型,在发布时超越了其他开放权重模型,包括405B的Llama 3。尽管规模更大,但由于其混合专家(MoE)架构——每个token仅激活一小部分参数(仅370亿)——它在推理时效率更高。
另一个关键区别是DeepSeek V3使用了多头潜在注意力(MLA)而非分组查询注意力(GQA)。MLA和GQA都是标准多头注意力(MHA)的推理高效替代方案,尤其是在使用KV缓存时。虽然MLA实现更复杂,但DeepSeek-V2论文中的研究表明,它比GQA能提供更好的建模性能。
非营利组织艾伦人工智能研究所(Allen Institute for AI)推出的OLMo系列模型因其在训练数据和代码方面的透明度,以及相对详细的技术报告而备受关注。
虽然你可能不会在基准测试或排行榜顶端看到OLMo模型,但它们相当干净,更重要的是,由于透明度高,它们是开发大语言模型的绝佳蓝图。
尽管OLMo模型因其透明度而受欢迎,但它们本身也并不差。事实上,在2025年1月发布时(在Llama 4、Gemma 3和Qwen 3之前),OLMo 2模型处于计算量与性能的帕累托前沿,如下图7所示。

如前文所述,为了控制文章篇幅,我打算只关注 LLM 的架构细节(而非训练或数据)。那么,OLMo2 中有哪些有趣的架构设计选择呢?主要归结为归一化:RMSNorm 层的放置位置以及 QK-norm 的添加,我将在下面讨论。
另一件值得一提的事情是,OLMo 2 仍然使用传统的多头注意力(MHA),而不是 MLA 或 GQA。
总体而言,OLMo 2 在很大程度上遵循了原始 GPT 模型的架构,与其他当代 LLM 类似。然而,也存在一些值得注意的偏差。让我们从归一化层开始。
与 Llama、Gemma 以及大多数其他 LLM 类似,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 以及之后的大多数其他 LLM 将归一化层放置在注意力模块和前馈模块之前,这被称为 Pre-LN 或 Pre-Norm。Post-Norm 和 Pre-Norm 之间的对比如下图所示。

在 2020 年,Xiong 等人 表明,Pre-LN 在初始化时会产生更稳定的梯度。此外,研究人员提到,Pre-LN 甚至可以在没有仔细进行学习率预热的情况下也能良好工作,而学习率预热对于 Post-LN 来说通常是至关重要的工具。
现在,我之所以提到这一点,是因为 OLMo 2 采用了一种 Post-LN 的形式(但使用的是 RMSNorm 而非 LayerNorm,所以我称之为 Post-Norm)。
在 OLMo 2 中,他们没有将归一化层放在注意力层和前馈层之前,而是放在它们之后,如上图所示。然而,请注意,与原始 Transformer 架构相比,归一化层仍然位于残差层(跳跃连接)内部。
那么,他们为什么要移动归一化层的位置呢?原因在于这有助于训练稳定性,如下图所示。

遗憾的是,这张图同时展示了重排序和 QK-Norm 的结果,而 QK-Norm 是一个独立的概念。因此,很难判断归一化层重排序本身贡献了多少。
由于上一节已经提到了 QK-Norm,而且我们稍后讨论的其他大语言模型(如 Gemma 2 和 Gemma 3)也使用了 QK-Norm,让我们简要讨论一下这是什么。
QK-Norm 本质上就是另一个 RMSNorm 层。它被放置在多头注意力(MHA)模块内部,在应用 RoPE 之前对查询(q)和键(k)进行归一化。为了说明这一点,下面是我为 Qwen3 从零实现 编写的分组查询注意力(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
# 应用投影
queries = self.W_query(x)
keys = self.W_key(x)
values = self.W_value(x)
# ...
# 可选的归一化
if self.q_norm:
queries = self.q_norm(queries)
if self.k_norm:
keys = self.k_norm(keys)
# 应用 RoPE
queries = apply_rope(queries, cos, sin)
keys = apply_rope(keys, cos, sin)
# 扩展 K 和 V 以匹配头数
keys = keys.repeat_interleave(self.group_size, dim=1)
values = values.repeat_interleave(self.group_size, dim=1)
# 注意力计算
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 个月后发布了一个 32B 变体,该变体使用了 GQA。)

Google 的 Gemma 模型一直以来都非常出色,而且我认为,与其他流行模型(如 Llama 系列)相比,它们总是有些被低估了。
Gemma 的一个显著特点是其较大的词汇量(以更好地支持多语言),并且更侧重于 27B 参数规模(而非 8B 或 70B)。但请注意,Gemma 2 也提供了更小的版本:1B、4B 和 12B。
27B 参数规模恰好处于一个非常理想的平衡点:它比 8B 模型强大得多,但又不像 70B 模型那样消耗资源,并且在我的 Mac Mini 上本地运行毫无压力。
那么,Gemma 3 还有哪些有趣之处呢?如前所述,其他模型(如 Deepseek V3/R1)采用混合专家(MoE)架构,在固定模型大小的情况下减少推理时的内存需求。(我们稍后将讨论的其他几个模型也采用了 MoE 方法。)
Gemma 3 使用了一种不同的“技巧”来降低计算成本,即滑动窗口注意力机制。
通过滑动窗口注意力机制(最初在 2020 年的 LongFormer 论文 中引入,并且 Gemma 2 也已使用),Gemma 3 团队能够大幅减少 KV 缓存中的内存需求,如下图所示。

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

请注意,滑动窗口注意力既可以与多头注意力一起使用,也可以与分组查询注意力一起使用;Gemma 3 使用的是分组查询注意力。
如上所述,滑动窗口注意力也被称为局部注意力,因为局部窗口围绕当前查询位置并随之移动。相比之下,常规注意力是全局的,因为每个 token 都可以访问所有其他 token。
现在,正如上面简要提到的,前代架构 Gemma 2 之前也使用过滑动窗口注意力。Gemma 3 的不同之处在于,他们调整了全局(常规)注意力和局部(滑动)注意力的比例。
例如,Gemma 2 使用了一种混合注意力机制,以 1:1 的比例结合了滑动窗口(局部)注意力和全局注意力。每个 token 可以关注附近上下文中一个 4k token 的窗口。
Gemma 2 在每隔一层使用滑动窗口注意力,而 Gemma 3 现在采用 5:1 的比例,意味着每 5 个滑动窗口(局部)注意力层中只有 1 个全局注意力层;此外,滑动窗口大小从 Gemma 2 的 4096 减少到 Gemma 3 的仅 1024。这使模型更侧重于高效、局部化的计算。
根据他们的消融研究,使用滑动窗口注意力对建模性能影响极小,如下图所示。

虽然滑动窗口注意力是 Gemma 3 最显著的架构特点,但我也想简要介绍一下归一化层的放置,作为之前 OLMo 2 部分的后续。
一个值得强调的小而有趣的细节是,Gemma 3 在其分组查询注意力模块周围,在前归一化和后归一化设置中都使用了 RMSNorm。
这与 Gemma 2 类似,但仍然值得强调,因为它不同于 (1) 原始 Transformer(《注意力就是一切》)中使用的后归一化,(2) 由 GPT-2 推广并在之后许多其他架构中使用的前归一化,以及 (3) 我们之前看到的 OLMo 2 中的后归一化变体。

我认为这种归一化层放置是一种相对直观的方法,因为它兼具了两者的优点:前归一化和后归一化。在我看来,增加一点额外的归一化不会有什么坏处。在最坏的情况下,如果额外的归一化是多余的,这只会通过冗余带来一点效率低下。但实际上,由于 RMSNorm 在整体方案中相对廉价,这应该不会产生任何明显的影响。
Gemma 3 是一个性能良好的开源权重 LLM,在我看来,它在开源社区中有些被低估了。最有趣的部分是使用滑动窗口注意力来提高效率(未来将其与 MoE 结合将会很有趣)。
此外,Gemma 3 具有独特的归一化层放置方式,将 RMSNorm 层放置在注意力和前馈模块的前后。
在 Gemma 3 发布几个月后,谷歌分享了 Gemma 3n,这是一个针对小型设备效率进行优化的 Gemma 3 模型,目标是在手机上运行。
Gemma 3n 实现更高效率的改进之一,是所谓的逐层嵌入(Per-Layer Embedding,PLE)参数层。其核心思路是仅将模型的部分参数保留在 GPU 内存中。而针对文本、音频和视觉等模态的特定 token 层嵌入,则根据需要从 CPU 或 SSD 中流式加载。
下图展示了 PLE 节省的内存,标准 Gemma 3 模型列出了 54.4 亿参数。这很可能指的是 Gemma 3 40 亿参数变体。

54.4 亿与 40 亿参数的差异,是因为 Google 在报告 LLM 参数数量时采用了一种有趣的方式。他们通常排除嵌入参数以使模型看起来更小,除非像本例这样,为了显得模型更大而方便地将其包含在内。这种做法并非 Google 独有,已成为该领域的常见做法。
另一个有趣的技巧是 MatFormer 概念(Matryoshka Transformer 的简称)。例如,Gemma 3n 使用单一共享的 LLM(Transformer)架构,可以将其切分为更小、可独立使用的模型。每个切片都经过独立训练,因此在推理时,我们可以只运行所需的部分(而不是整个大模型)。
Mistral Small 3.1 24B 于 3 月紧随 Gemma 3 发布,值得关注的是,它在多个基准测试(数学除外)上优于 Gemma 3 27B,同时速度更快。
Mistral Small 3.1 推理延迟低于 Gemma 3 的原因,可能在于其自定义分词器,以及缩减了 KV 缓存和层数。否则,它就是一个标准架构,如下图所示。

有趣的是,早期的 Mistral 模型曾使用滑动窗口注意力,但从官方 Model Hub 配置文件中的默认设置("sliding_window": null)来看,Mistral Small 3.1 似乎已放弃这一机制。此外,模型卡片中也未提及。
因此,由于 Mistral 使用常规的分组查询注意力,而非 Gemma 3 中带滑动窗口的分组查询注意力,或许能够通过使用更优化的代码(例如 FlashAttention)来进一步节省推理计算量。例如,我推测滑动窗口注意力虽然减少了内存使用,但未必能降低推理延迟,而这正是 Mistral Small 3.1 所关注的重点。
本文前面关于混合专家模型(MoE)的广泛介绍再次得到了印证。Llama 4 也采用了 MoE 方法,并且整体架构相对标准,与 DeepSeek V3 非常相似,如下图所示。(Llama 4 包含原生多模态支持,类似于 Gemma 和 Mistral 等模型。但由于本文聚焦于语言建模,我们只关注其文本模型部分。)

尽管 Llama 4 Maverick 的架构整体上与 DeepSeek V3 非常相似,但仍有一些值得关注的差异。
首先,Llama 4 沿用了其前代产品的分组查询注意力机制,而 DeepSeek V3 则使用了本文开头讨论的多头潜在注意力。目前,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 块(前 3 个除外)中都使用了 MoE 层,而 Llama 4 则在每隔一个 Transformer 块中交替使用 MoE 和密集模块。
鉴于架构之间存在许多细微差异,很难确定它们对最终模型性能的确切影响。但主要结论是,MoE 架构在 2025 年显著流行起来。
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 在我这里的地位。这两种架构的对比如下所示。

如果你对无需外部第三方LLM库依赖、可读性强的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代表“220亿活跃参数”)与DeepSeek V3进行比较,后者拥有几乎两倍的活跃参数(370亿)。

如上图所示,DeepSeek V3和Qwen3 235B-A22B的架构非常相似。不过值得注意的是,Qwen3模型不再使用共享专家(早期的Qwen模型,如Qwen2.5-MoE,确实使用了共享专家)。
遗憾的是,Qwen3团队没有透露他们放弃共享专家的原因。如果让我猜测,可能只是因为他们将专家数量从2个(在Qwen2.5-MoE中)增加到8个(在Qwen3中)时,共享专家对于他们的训练稳定性并非必要。这样他们就可以通过仅使用8个专家而不是8+1个专家来节省额外的计算/内存成本。(然而,这并不能解释为什么DeepSeek V3仍然保留共享专家。)
更新。 Qwen3的开发者之一Junyang Lin回应如下:
当时我们在共享专家上并未发现足够显著的改进,同时也担心共享专家带来的推理优化问题。老实说,这个问题没有直接的答案。
SmolLM3 或许不像本文介绍的其他大语言模型那样广受欢迎,但我认为它仍然是一个值得纳入的有趣模型,因为它以相对小巧便捷的30亿参数规模提供了非常出色的建模性能,正好介于Qwen3的17亿和40亿参数模型之间,如下图所示。
此外,与OLMo类似,它也公开了大量训练细节,这种做法非常罕见且值得赞赏!

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

在大语言模型领域,NoPE是一个较老的概念,源自2023年的一篇论文(《位置编码对Transformer长度泛化的影响》,https://arxiv.org/abs/2305.19466),旨在移除显式的位置信息注入(例如早期GPT架构中经典的绝对位置嵌入层,或如今常用的RoPE)。
在基于Transformer的大语言模型中,位置编码通常是必需的,因为自注意力机制将每个词元视为独立于顺序的。绝对位置嵌入通过添加一个额外的嵌入层,将位置信息注入到词元嵌入中,从而解决了这一问题。

另一方面,RoPE通过根据词元位置旋转查询和键向量来解决这个问题。
然而,在NoPE层中,完全没有添加任何位置信号:既不是固定的,也不是学习的,更不是相对的。什么都没有。
尽管没有位置嵌入,模型仍然知道哪些词元在前,这要归功于因果注意力掩码。这个掩码阻止每个词元关注未来的词元。因此,位置 t 处的词元只能看到位置 ≤ t 的词元,从而保持了自回归的顺序。
因此,虽然没有显式添加位置信息,但模型结构中仍然隐含了方向感,而LLM在常规的基于梯度下降的训练中,如果发现这对优化目标有利,就可以学会利用它。(更多信息请参阅NoPE论文中的定理。)
总体而言,NoPE论文不仅发现无需注入位置信息,还发现NoPE具有更好的长度泛化能力,这意味着随着序列长度增加,LLM的作答性能下降得更少,如下图所示。

请注意,上述实验是在一个相对较小的GPT风格模型上进行的,该模型约有1亿个参数,且上下文大小也相对较小。目前尚不清楚这些发现能在多大程度上推广到更大的当代LLM。
因此,SmolLM3团队很可能只是每4层“应用”一次NoPE(或者说省略了RoPE)。
Kimi K2 最近在AI社区引起了巨大轰动,因为它是一个性能极佳的开源权重模型。根据基准测试,它与谷歌的Gemini、Anthropic的Claude和OpenAI的ChatGPT等最佳专有模型不相上下。
一个值得注意的方面是,它使用了相对较新的Muon优化器变体,而不是AdamW。据我所知,这是Muon首次在此规模的生产模型中取代AdamW(此前,它仅被证明可扩展到160亿参数)。这产生了非常漂亮的训练损失曲线,可能有助于将该模型推至上述基准测试的顶端。
虽然人们评论说损失曲线异常平滑(由于没有尖峰),但我认为它并非异常平滑(例如,参见下图中OLMo 2的损失曲线;此外,梯度的L2范数可能是衡量训练稳定性的更好指标)。然而,值得注意的是损失曲线的下降效果非常好。
不过,正如本文引言中提到的,训练方法的话题我们改日再谈。

该模型本身拥有1万亿个参数,这确实令人印象深刻。
截至本文撰写时,它可能是这一代最大的LLM(考虑到Llama 4 Behemoth尚未发布、专有LLM不计入在内,且谷歌的1.6万亿参数Switch Transformer属于不同代的编码器-解码器架构)。
这也形成了一个完整的循环:Kimi K2 使用了我们文章开头介绍的 DeepSeek V3 架构,只是将其规模做得更大,如下图所示。

如上图所示,Kimi K2 与 DeepSeek V3 基本相同,区别仅在于它在 MoE 模块中使用了更多的专家,并在多头潜在注意力(MLA)模块中使用了更少的注意力头。
Kimi K2 并非凭空出现。早先的 Kimi 1.5 模型在 Kimi k1.5:通过 LLM 扩展强化学习论文 中有所讨论,同样令人印象深刻。然而,它运气不佳,因为 DeepSeek R1 模型的论文恰好在同一天(1月22日)发表。而且,据我所知,Kimi 1.5 的权重从未公开分享过。
因此,Kimi K2 团队很可能吸取了这些教训,并在 DeepSeek R2 发布之前,将 Kimi K2 作为开放权重模型分享出来。截至本文撰写时,Kimi K2 是最令人印象深刻的开放权重模型。
更新: 2025年11月6日,Kimi K2 团队还发布了他们新的“推理”模型变体。其架构与上述 Kimi K2 相同,只是将上下文长度从 128k 扩展到了 256k。
根据 Kimi 团队分享的基准测试结果,该模型超越了领先的专有 LLM 的性能。(遗憾的是,没有与 DeepSeek R1 的直接对比。)

在我撰写本文大约一周后,OpenAI 发布了 gpt-oss-120b 和 gpt-oss-20b,这是自 2019 年 GPT-2 以来他们首批开放权重的模型。由于 OpenAI 的开放权重模型备受期待,我更新了本文以将其纳入。我将简要介绍这一部分,但已另外撰写了一篇更详细的文章专门介绍 gpt-oss 模型,链接如下:
[
](https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the)
在总结有趣的花絮之前,我们先从两个模型 gpt-oss-20b 和 gpt-oss-120b 的概览开始,如下面的图 26 所示。

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

图27未展示的一个方面是,gpt-oss使用了滑动窗口注意力机制(类似于Gemma 3,但并非采用5:1的比例,而是在每隔一层中使用)。
图27显示,gpt-oss和Qwen3使用了相似的组件。但如果我们仔细观察这两个模型,会发现Qwen3的架构要深得多,它拥有48个Transformer块,而gpt-oss只有24个。
另一方面,gpt-oss的架构则要宽得多:
- 嵌入维度为2880,而非2048
- 中间专家(前馈)投影维度同样为2880,而非768
同样值得注意的是,gpt-oss使用的注意力头数量是Qwen3的两倍,但这并不会直接增加模型的宽度。宽度是由嵌入维度决定的。
在参数数量固定的情况下,一种方法是否比另一种更有优势?根据经验法则,更深的模型具有更大的灵活性,但由于梯度爆炸和消失问题(RMSNorm和快捷连接旨在缓解这些问题),训练起来可能更困难,因为存在不稳定性问题。
更宽的架构在推理时具有优势(每秒处理的token数更高),因为其并行化效果更好,但代价是内存成本更高。
在建模性能方面,遗憾的是,据我所知,没有很好的同类对比(即参数大小和数据集保持不变),除了Gemma 2论文(表9)中的一项消融研究,该研究发现,对于9B参数的架构,更宽的设置略优于更深的设置。在4个基准测试中,更宽的模型平均得分为52.0,更深的模型平均得分为50.8。
如上图27所示,同样值得注意的是,gpt-oss的专家数量少得惊人(32个,而非128个),并且每个token仅使用4个活跃专家,而非8个。然而,每个专家都比Qwen3中的专家大得多。
这很有趣,因为最近的趋势和发展表明,更多、更小的专家模型是有益的。在总参数大小不变的情况下,这种变化在下面来自DeepSeekMoE论文的图28中得到了很好的说明。

值得注意的是,与DeepSeek的模型不同,gpt-oss和Qwen3都没有使用共享专家。
不过,gpt-oss和Qwen3都使用了分组查询注意力。主要区别在于,如前所述,gpt-oss通过每隔一层的滑动窗口注意力来限制上下文大小。
然而,有一个有趣的细节引起了我的注意。如下方图29所示,gpt-oss似乎对注意力权重使用了偏置单元。

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

你可能注意到的另一个细节是图30代码截图中对sinks的定义。在通用模型中,注意力汇聚(attention sinks)是放置在序列开头的特殊“始终被关注”的标记,用于稳定注意力机制,这在长上下文场景中尤其有用。也就是说,如果上下文变得非常长,开头的这个特殊关注标记仍然会被注意到,并且它可以学习存储关于整个序列的一些通用有用信息。(我认为它最初是在《Efficient Streaming Language Models with Attention Sinks》论文中提出的。)
在gpt-oss实现中,注意力汇聚并不是输入序列中的实际标记。相反,它们是学习到的每个注意力头的偏置logits,被附加到注意力分数上(图31)。其目标与上述注意力汇聚相同,但无需修改分词后的输入。

关于gpt-oss的更多信息,以及它与GPT-2的比较,请参阅我关于gpt-oss的另一篇文章:
[
](https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the)
在这篇文章首次上线几周后,xAI发布了他们270B参数的Grok 2.5模型的权重。
我认为有必要在这里提一下,因为Grok 2.5是xAI去年旗舰级的生产模型。到目前为止,我们讨论的所有模型从一开始就是作为开放权重模型发布的。例如,gpt-oss很可能不是GPT-4的开放权重克隆,而是一个专门为开源社区训练的定制模型。
通过Grok 2.5,我们得以罕见地一窥真实的生产系统,尽管它是去年的版本。
在架构上,Grok 2.5整体看起来相当标准(图32),但有一些值得注意的细节。

例如,Grok 2.5 使用了少量的大型专家(八个),这反映了较早的设计趋势。如前所述,较新的设计(如 DeepSeekMoE 论文中的方案)倾向于使用更多数量的小型专家(Qwen3 也采用了这种方式)。
另一个有趣的选择是使用了所谓的共享专家。图32左侧所示的额外 SwiGLU 模块充当了一个始终激活的共享专家。它与经典的共享专家设计并不完全相同,因为其中间维度翻倍了,但核心理念是一致的。(我仍然觉得 Qwen3 没有采用共享专家这一点很有意思,并且很期待看到 Qwen4 及后续模型是否会改变这一点。)
GLM-4.5 是今年发布的另一个重要模型。
它是一个类似于 Qwen3 的指令/推理混合模型,但在函数调用和智能体场景方面进行了更优的优化。

如图34所示,GLM-4.5 有两个版本。旗舰版拥有 3550 亿参数,在 12 项基准测试中平均表现优于 Claude 4 Opus,仅略微落后于 OpenAI 的 o3 和 xAI 的 Grok 4。此外还有 GLM-4.5-Air,这是一个更紧凑的 1060 亿参数版本,其性能仅略低于 3550 亿参数的版本。
图35将 3550 亿参数的架构与 Qwen3 进行了对比。

两者的设计大体相似,但 GLM-4.5 采用了 DeepSeek V3 首次引入的结构性选择:在混合专家(MoE)模块之前放置了 3 个密集层。为什么?在大型 MoE 系统中,以几个密集层开始可以提高收敛稳定性和整体性能。如果立即引入 MoE 路由,稀疏专家选择的不稳定性可能会干扰早期的句法和语义特征提取。因此,可以说,保持初始层为密集层,确保了模型在路由决策开始塑造高层处理之前,能够形成稳定的底层表示。
此外,GLM-4.5 使用了类似于 DeepSeek V3 的共享专家(与 Qwen3 不同)。
(有趣的是,GLM-4.5 还保留了 GPT-2 和 gpt-oss 中使用的注意力偏置机制。)
2025年9月11日,Qwen3 团队发布了 Qwen3 Next 80B-A3B(图35),提供 Instruct 和 Thinking 两种变体。虽然其设计建立在之前讨论的 Qwen3 架构之上,但我将其单独列出,以保持图编号的一致性,并提请大家注意其设计上的一些变化。
新的Qwen3 Next架构之所以引人注目,是因为尽管它比之前的235B-A22B模型(图35)小了3倍,却引入了四倍数量的专家,甚至还增加了一个共享专家。这两种设计选择(高专家数量和引入共享专家)都是我在本次发布之前就强调过的未来发展方向,特别是在我文章顶部链接的视频版本中。

另一个亮点是,他们用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块的主要区别在于:
- 一个输出门(由sigmoid控制,通常是逐通道的),在注意力结果加回残差之前对其进行缩放;
- 使用零中心RMSNorm进行QKNorm,而不是标准RMSNorm;
- 部分RoPE(仅应用于维度子集)。
请注意,这些本质上只是对GQA的稳定性改进。
Gated DeltaNet是一个更重大的变化。在DeltaNet块中,q、k、v以及两个门(α、β)由线性层和轻量级卷积层(带归一化)生成,并且该层用快速权重*delta规则*更新取代了注意力。
然而,其权衡之处在于,DeltaNet提供的内容检索精度不如完整注意力,因此保留了一个门控注意力层。
鉴于注意力呈二次方增长,添加DeltaNet组件是为了提高内存效率。在“线性时间、无缓存”家族中,DeltaNet块本质上是Mamba的替代方案。Mamba通过一个学习到的状态空间滤波器(本质上是一个随时间变化的动态卷积)来维持状态。DeltaNet则使用α和β更新一个微小的快速权重记忆,并用q读取它,仅使用小型卷积来帮助形成q、k、v、α、β。
以上两个小节描述了两种旨在提高效率的设计决策。由于好事成三,Qwen3还在此基础上增加了另一种效率技术:多Token预测(MTP)。
(注意:DeepSeek V3 和 V3.2,以及后来的 GLM-4.5 和 MiniMax-M2 在训练时都使用了 MTP;但由于这是一种训练技术,我在架构对比中没有明确讨论它。)
多 token 预测(Multi-token prediction)在每一步训练 LLM 预测多个未来 token,而非单个 token。具体来说,在每个位置 t,小型额外头(线性层)输出 t+1…t+k 的 logits,并对这些偏移量求和交叉熵损失(在 MTP 论文中,研究者推荐 k=4)。这一额外信号加速了训练,而推理时仍可保持逐个生成 token。不过,这些额外头可用于推测性多 token 解码,Qwen3-Next 似乎正是这样做的,但细节仍略显稀疏:
Qwen3-Next 引入了原生多 token 预测(MTP)机制,不仅生成了具有高接受率的 MTP 模块用于推测解码,还提升了整体性能。此外,Qwen3-Next 专门优化了 MTP 的多步推理性能,通过保持训练与推理一致性的多步训练,进一步提高了推测解码在真实场景中的接受率。来源:Qwen3-Next 博客文章
2026 年 2 月初,Qwen3 团队分享了 80B 参数的 Qwen3-Coder-Next 模型(3B 参数活跃),该模型在编程任务上超越了 DeepSeek V3.2(37B 活跃)、Kimi K2.5 和 GLM-7.5(均为 32B 活跃)等更大模型,成为重大新闻。
此外,Qwen3-Coder-Next 在 SWE-Bench Pro 上的性能与 Claude-Sonnet-4.5 大致相当(仅略低于 Claude-Opus-4.5),对于开源权重模型来说令人印象深刻!
请注意,Qwen3-Coder-Next 背后的架构与上文讨论的 Qwen3-Next 80B 完全相同(事实上,他们以 Qwen3-Next 为基础模型训练了 Qwen3-Coder-Next。由于这是一篇关于 LLM 架构的文章,训练细节不在讨论范围内。但感兴趣的读者可以在他们的 GitHub 详细技术报告中找到更多信息。
最近,开源权重 LLM 开发者分享了其针对效率优化的核心架构变体。一个例子是 Qwen3-Next(见上一节),它将部分全注意力模块替换为快速门控 DeltaNet 模块。另一个例子是 DeepSeek V3.2,它使用了稀疏注意力,这是一种线性注意力变体,以牺牲部分建模性能换取计算性能提升(我计划在后续文章中更详细地介绍这一机制)。
现在,MiniMax-M1 与上述模型属于同一类别,因为它使用了线性注意力变体(闪电注意力),相比常规(全)注意力提供了更高的效率。我最初没有介绍 MiniMax M1,因为它不如这里讨论的其他一些模型流行。然而,他们新发布的 MiniMax-M2 目前被认为是(根据基准测试性能)最佳开源权重模型,这使其不容忽视。

如下方概览图所示,我将 MiniMax-M2 与其他解码器式 Transformer LLM 归为一组,因为它并未采用 MiniMax-M1 中提出的高效闪电注意力变体。相反,开发人员回归了全注意力机制,这很可能是为了提升建模(及基准)性能。

总体而言,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),但与第 4 节讨论的 Mistral 3.1 一样,它默认是禁用的。
除此之外,除了逐层 QK-Norm,其架构与 Qwen3 非常相似,如下方图表所示。

其他有趣的细节,如下方图表所示,包括它们没有使用共享专家(与 Qwen3 类似,但与 Qwen3-Next 不同)。如前所述,我认为共享专家是有用的,因为它们可以减少其他专家之间的冗余。
此外,从上图可以明显看出,MiniMax-M2 的“稀疏”程度是 Qwen3 的两倍。也就是说,在大小与 Qwen3 235B-A22B 大致相同的情况下,MiniMax-M2 每个 token 仅激活 10B 参数,而 Qwen3 为 22B(即,在 MiniMax-M2 的每次推理步骤中,使用了 4.37% 的参数,而 Qwen3 使用了 9.36% 的激活参数)。
最后,与 MiniMax-M1 类似,MiniMax-M2 在注意力模块内部使用“部分”RoPE 而非常规 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,可以在不降低性能的情况下实现长度外推。
我的推测是,这可以防止长序列(尤其是那些比训练数据集中最长文档还要长的序列)出现“过度”旋转。也就是说,其背后的原理可能是:没有旋转,总比模型在训练中从未见过的“糟糕”或“过于极端”的旋转要好。
最近,为了提高大语言模型的效率,线性注意力机制重新兴起。
2017 年《Attention Is All You Need》论文中引入的注意力机制,即缩放点积注意力,仍然是当今大语言模型中最流行的注意力变体。除了传统的多头注意力,它还被用于更高效的变体中,如分组查询注意力、滑动窗口注意力和多头潜在注意力。
原始的注意力机制随序列长度呈二次方缩放:
\(\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d}}\right)V \)
这是因为查询(Q)、键(K)和值(V)是 n × d 的矩阵,其中 d 是嵌入维度(一个超参数),n 是序列长度(即 token 的数量)。
你可以在我的另一篇文章中找到关于注意力的更多细节:
[
](https://magazine.sebastianraschka.com/p/understanding-and-coding-self-attention)

线性注意力变体已经存在很长时间了,我记得在 2020 年代看到过大量相关论文。例如,我最早记得的是 2020 年的论文《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》,其中研究人员近似了注意力机制:
\(\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d}}\right)V \approx \phi(Q)\big(\phi(K)^\top V\big)\)
这里,φ(·) 是一个核特征函数,设置为 φ(x) = elu(x) + 1 。
这种近似之所以高效,是因为它避免了显式计算 n × n 的注意力矩阵 QK^T。它不再执行所有成对 token 的交互(这会消耗 O(n²d) 的时间和内存)。
我不想在这些较早的尝试上过多停留。但关键在于,它们将时间和内存复杂度从 O(n²) 降低到了 O(n),使得注意力机制在处理长序列时更加高效。
然而,这些方法从未真正流行起来,因为它们降低了模型的准确性,而且我从未见过这些变体中的任何一种被应用于开源权重的最先进大语言模型中。
今年下半年,线性注意力变体出现了一定程度的复兴。第一个值得注意的模型是 MiniMax-M1,它采用了闪电注意力(lightning attention),是一个拥有 4560 亿参数的混合专家(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 模型,该模型采用了线性注意力。

附带说明:我本可以将 Qwen3-Next 和 Kimi Linear 与概览图中的其他 Transformer-状态空间模型(SSM)混合模型归为一类。就我个人而言,我将这些其他的 Transformer-SSM 混合模型视为带有 Transformer 组件的 SSM,而将这里讨论的模型(Qwen3-Next 和 Kimi Linear)视为带有 SSM 组件的 Transformer。不过,既然我已经将 IBM Granite 4.0 和 NVIDIA Nemotron Nano 2 列在了 Transformer-SSM 框中,那么也有理由将它们归入同一个类别。
Kimi Linear 与 Qwen3-Next 在结构上有几个相似之处。这两个模型都依赖于一种混合注意力策略。具体来说,它们结合了轻量级的线性注意力和更重的全注意力层。具体而言,两者都采用了 3:1 的比例,这意味着每三个采用线性 Gated DeltaNet 变体的 Transformer 块,就有一个块使用全注意力,如下图所示。

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 注意力块处理)。有关 MLA 和多查询注意力(分组查询注意力的一种特例)的更多信息,请参阅我的文章 The Big LLM Architecture Comparison。
此外,我还在此处撰写了更多关于 Gated DeltaNet 的内容。
Kimi Linear 通过 Kimi Delta 注意力(KDA)机制修改了 Qwen3-Next 的线性注意力机制,这本质上是 Gated DeltaNet 的改进版本。Qwen3-Next 应用标量门控(每个注意力头一个值)来控制记忆衰减率,而 Kimi Linear 则将其替换为每个特征维度的通道级门控。据作者称,这提供了对记忆的更多控制,进而改善了长上下文推理。
此外,对于全注意力层,Kimi Linear 将 Qwen3-Next 的门控注意力层(本质上是带有输出门控的标准多头注意力层)替换为多头潜在注意力(MLA)。这与我们之前在 DeepSeek V3/R1 部分讨论的 MLA 机制相同,但增加了一个额外的门控。(回顾一下,MLA 压缩了键/值空间以减少 KV 缓存大小。)
虽然没有与 Qwen3-Next 的直接比较,但与 Gated DeltaNet 论文中的 Gated DeltaNet-H1 模型(本质上是带有滑动窗口注意力的 Gated DeltaNet)相比,Kimi Linear 在保持相同令牌生成速度的同时,实现了更高的建模精度。

此外,根据 DeepSeek-V2 论文中的消融研究,当超参数经过精心选择时,MLA 与常规全注意力性能相当。
而 Kimi Linear 在长上下文和推理基准上与 MLA 相比表现更优,这使得线性注意力变体再次有望应用于更先进的大规模模型。话虽如此,Kimi Linear 拥有 480 亿参数,但比 Kimi K2 小 20 倍。Kimi 团队是否会为其即将推出的 K3 模型采用这种方法,将值得关注。
Allen AI 于11月20日发布了新的 Olmo 3 7B 和 32B 模型。(官方拼写已从 OLMo 改为 Olmo,因此本节将采用此拼写。)
如前所述,Olmo 模型之所以引人关注,是因为它们完全开源。这意味着团队还会分享详细的训练报告、多个检查点、训练数据信息等。换句话说,Olmo 模型完全透明。
此次,Olmo 系列还额外推出了推理模型版本(除基础模型和指令模型外),Olmo 3 的技术报告中包含了大量关于训练的有趣细节。不过,由于本文是关于架构对比的,本节仅聚焦于 Olmo 3 的架构。
与 Olmo 3 最接近的对比模型是 Qwen3,因为 Qwen3 系列有两个规模相近的模型,且性能相似。
首先,我们来看看两者中较小的那个——Olmo 3 7B。

可以看出,Olmo 3 的架构与 Qwen3 相对相似。不过值得注意的是,这很可能更多是受其前身 Olmo 2 的启发,而非 Qwen3。
与 Olmo 2 类似,Olmo 3 仍然使用后归一化而非前归一化,因为他们在 Olmo 2 论文中发现这能稳定训练。
有趣的是,7B 模型仍像 Olmo 2 一样使用多头注意力。但为了提高效率并缩小 KV 缓存大小,他们现在采用了滑动窗口注意力(例如,类似于 Gemma 3)。
接下来,我们看看 32B 模型。

总体而言,架构相同,只是规模扩大了。此外,各部分的比例(例如,从输入到前馈层的中间大小等)与 Qwen3 大致匹配。
我的猜测是,由于词汇表较小,初始架构略小于 Qwen3,然后他们将中间层扩展倍数从 Qwen3 的 5 倍增加到 Olmo 3 的 5.4 倍,从而得到一个 32B 模型以便直接对比。
另外,请注意 32B 模型使用了分组查询注意力。
或许最后一个细节是,Olmo 3 使用 YaRN 将支持的上下文长度扩展到 64k,但仅适用于全局(非滑动窗口注意力)层。(YaRN 本质上是一种精细的 RoPE 重缩放技术,有助于在长上下文下更好地保持模型质量。)
在 Qwen3 中,YaRN 是可选的,用于将原生上下文从 32k token 扩展到 131k token。
如果你对更多架构细节感兴趣,我在一个独立笔记本中从零实现了 Olmo 3,链接在这里。
本文始于 2024 年 12 月发布的 DeepSeek V3。此后 DeepSeek 发布了多个版本,但我大多略过了,因为它们不像 DeepSeek V3 和 DeepSeek R1 那样是重大的旗舰模型发布。

然而,DeepSeek V3.2 是一次非常重要的发布,因为它在某些基准测试上与当前的 GPT-5.1 和 Gemini 3.0 Pro 模型不相上下。
整体架构与 DeepSeek V3 相似,但他们添加了一种稀疏注意力机制以提高效率。

我原本计划为本文写一小节关于 DeepSeek V3.2 的内容,但它变成了一篇超过 5000 字的文章,所以我将其移到了另一篇文章中,链接如下:
[
](https://magazine.sebastianraschka.com/p/technical-deepseek)
2025 年 12 月 2 日,也就是 DeepSeek V3.2 发布一天后,Mistral 团队发布了他们的新 Mistral 3 模型系列。这包括三个较小的密集模型(3B、8B 和 14B),以 Ministral 3 的名义发布,以及他们的新 Mistral 3 Large 旗舰模型,这是一个 675B 参数的 MoE(其中 41B 参数激活)。更具体地说,Mistral 3 Large 模型包括:
- 一个 MoE 语言模型,拥有 673B 参数和 39B 激活参数
- 一个 2.5B 视觉编码器
(由于本文侧重于 LLM 方面,我们将在本节中忽略视觉编码器。不过,我或许应该找个时间更新我的多模态 LLM 文章。)
首先,有趣的是,这是 Mistral 自 2023 年 Mixtral 以来的第一个 MoE(在本文前面,我提到 Mistral 放弃了 MoE,而去年 DeepSeek V3 引领了 MoE 的复兴)。
发布博客文章称,所有模型大小都有基础版、指令版和推理版变体,这很不错。然而,他们 675B 模型的推理版本尚未推出。
另一个有趣的细节是,根据他们的公告,Mistral 在此与 NVIDIA 合作,优化了 Blackwell 芯片上的 tokens/秒吞吐量。这很不错,因为这意味着 Ministral 模型在我的小 DGX Spark 上运行速度会比同类模型稍快一些(我仍需测试这一点)。
除了 Mistral 3 的 tokens/秒速度优势外,根据质量基准测试,他们较小的模型 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,是因为这两个模型发布时间非常接近,仅相隔一天。此外,它们的规模几乎相同,分别为671B和673B,这使得对比格外有趣!
遗憾的是,目前没有包含模型开发更多信息的技术报告。不过,由于它是一个开源权重模型,我们确实可以在Hugging Face Hub上分析模型权重。那么,让我们更仔细地看看Mistral 3 Large。
事实证明,Mistral 3 Large与DeepSeek V3和V3.1的架构完全相同!唯一的区别在于,他们将专家规模扩大了两倍,同时将专家数量减少了相同的倍数。

然而,尽管架构相同,Mistral团队很可能是从头开始训练Mistral 3,而非基于DeepSeek V3进行初始化并进一步训练,因为Mistral使用了自家的分词器。
在Kimi K2之后,Mistral 3成为第二个采用DeepSeek V3架构的模型系列。不过,Kimi K2团队将模型规模从671B扩展到了1万亿参数,而Mistral 3团队仅调整了专家规模比例,并添加了视觉编码器以支持多模态。但话说回来,为什么不呢?我认为DeepSeek V3的架构设计相当扎实,再加上其出色的MoE和MLA效率特性,何必去改动一个本就没问题的设计呢?如今,许多秘诀都藏在训练流程和推理扩展策略中。
本文并非所有大语言模型的详尽清单。为便于管理,我聚焦于主要亮点。这里的“亮点”指的是那些要么非常流行、要么性能卓越、要么架构设计有趣的模型。
话虽如此,现在是时候将英伟达的模型加入这个清单了。英伟达于2025年12月15日发布了Nemotron系列的最新成员——Nemotron 3。Nemotron的亮点在于,它不仅开源了模型权重并提供了技术报告,还像Olmo 3一样分享了数据集和训练代码。
根据公告文章,Nemotron 3提供三种规格:
- Nano(30B-A3B),
- Super(100B),(后来更新为120B,详见第18.1节)
- 以及Ultra(500B)。
在架构上,这些模型采用了混合专家(MoE)Mamba-Transformer混合架构。截至本文撰写时(12月17日),仅Nano模型以开源权重形式发布,因此下文将重点讨论该模型,如下图所示。

如上图所示,Nemotron 3 Nano(30B-A3B)是一个52层的混合Mamba-Transformer模型,它将Mamba-2序列建模模块与稀疏混合专家(MoE)前馈层交错排列,仅在少数层中使用自注意力机制。
上图信息量很大,但简而言之,其架构由13个宏块组成,每个宏块包含重复的Mamba-2 → MoE子块,外加少量分组查询注意力层。总计,如果将宏块与子块相乘,该架构共有52层。
关于MoE模块,每个MoE层包含128个专家,但每个token仅激活1个共享专家和6个路由专家。
Mamba-2层本身就需要一整篇文章来解释(或许留待下次讨论)。但就目前而言,你可以将其概念上理解为类似于Qwen3-Next和Kimi-Linear所使用的门控DeltaNet方法,我在上文已介绍过。你也可以在我另一篇关于超越标准大语言模型的文章中了解更多:
[
](https://magazine.sebastianraschka.com/p/beyond-standard-llms)
Gated DeltaNet 与 Mamba-2 层的相似之处在于,两者都用门控状态空间更新取代了标准注意力机制。这种状态空间风格模块的核心思想是:它维护一个持续运行的隐藏状态,并通过学习到的门控机制混合新输入。与注意力机制相比,其计算复杂度随输入序列长度呈线性增长而非二次增长。
该架构真正令人兴奋的地方在于,与同等规模的纯 Transformer 架构相比,它性能出色,同时实现了更高的每秒 token 吞吐量。
总体而言,这是一个有趣的方向,甚至比 Qwen3-Next 和 Kimi-Linear 更极端,因为它只使用了极少的注意力层。然而,Transformer 架构的优势之一在于其(真正)大规模下的性能表现。我很好奇 Nemotron 3 Super 以及尤其是 Ultra 版本,将如何与 DeepSeek V3.2 等模型一较高下。
2026 年 3 月 11 日,NVIDIA 还在 Hugging Face Hub 上发布了 120B Super 版本的开放权重模型,并附上了一篇精彩的、聚焦于“Super”的技术报告。
与 Nano 模型相比,除了架构规模扩大之外,架构本身还有两个主要修改。
首先,Nemotron 3 Super 使用了多 token 预测 (MTP),这是一种训练 LLM 在每个步骤预测多个未来 token,而非仅预测一个 token 的技术。
MTP 并非仅使用标准的下一个 token 预测目标来训练模型,它还训练模型从同一位置预测多个未来 token 的偏移量。这提供了更丰富的训练信号,并且根据 Super 报告,这既提高了建模质量,也提升了推理效率。

与标准 MTP 用法(我在上面的图 51.2 中绘制了)的一个关键区别在于,Nemotron 3 Super 不仅在训练时使用它。
Nemotron 3 Super 在推理时也明确使用了 MTP,其中共享权重的 MTP 头充当了原生推测解码的内部草稿模型。在生成过程中,模型可以提出候选的后续内容,然后用主模型进行验证。这减少了推理延迟,而无需单独的、外部的草稿模型。
由于这并非完全标准的 MTP,因此将 Nemotron 3 Super 描述为使用共享权重 MTP 进行推测解码,可能比像其他架构(例如我在此处介绍过的 Step 3.5 Flash)那样称其为“MTP-3”更为准确。
与 Nano 相比的第二个主要区别在于,Super 架构使用了潜在专家,这意味着专家在潜在空间中运行(MoE 层的输入从 4096 维下投影到 1024 维,应用专家,然后将输出从 1024 维上投影回 4096 维)。

在基准测试方面,Nemotron 3 Super 与 Qwen3.5 122B-A10B 和 GPT-OSS 120B 不相上下,但由于上述“技巧”(MTP、潜在 MoE 和混合注意力),其吞吐量非常出色:比 Qwen3.5 122B-A10B 快 2 倍,并且(就 NVFP4 版本而言)比 GPT-OSS 120B 快 2.2 倍。

2025 年 12 月又出现了一个令人印象深刻的新模型。小米发布了其最新的 Xiaomi MiMo-V2-Flash,其基准测试性能令人印象深刻,与 DeepSeek V3.2 相当,同时参数量只有后者的一半,推理速度也更快。这是一个 309B 的混合专家(MoE)模型,每个 token 有 15 个活跃参数。
有趣的是,它以 5:1 的比例将滑动窗口注意力(SWA)与全局(常规)注意力结合使用,类似于 Gemma 3(参见第 3 节)。然而,它使用了更为激进的滑动窗口大小(128),比 Gemma 3(1024)小 8 倍。

据我所知,这是迄今为止最大的滑动窗口注意力模型。
此外,小米模型还使用了多 token 预测(MTP),如前文第 12.3 节所述。
距离上次 LLM 架构更新已经有一段时间了。1 月 27 日,Arcee AI(一家我之前未曾关注的公司)开始在模型中心发布其开源权重 400B Trinity Large LLM 的多个版本,以及两个较小的变体。
其旗舰大模型是一个 400B 参数的 MoE 模型(13B 活跃参数)。两个较小的变体是 Trinity Mini(26B,3B 活跃参数)和 Trinity Nano(6B,1B 活跃参数)。

除了模型权重,Arcee AI 还发布了一份内容丰富的技术报告,其中包含大量细节。
那么,我们来仔细看看这款 400B 旗舰模型。下图将其与之前讨论过的 GLM 4.5(第 11 节)进行了比较,后者可能是最相似的,而且规模也相对较小。此外,Trinity 技术报告显示,Trinity Large 和 GLM-4.5 基础模型的建模性能几乎完全相同(我猜他们没有与更新的基础模型进行比较,因为如今许多公司只分享他们的微调模型。)

但正如我们所见,Trinity 模型添加了几个有趣的架构组件。
首先,与之前的 Gemma 3、Olmo 3、小米 MiMo 等模型一样,它采用了交替的局部:全局(滑动窗口)注意力层。不过,他们没有使用 Gemma 3 和小米常用的 5:1 比例,而是选择了与 Olmo 3 类似的 3:1 比例,并且滑动窗口大小也相对较大,为 4096(同样与 Olmo 3 相似)。
除了 QK-Norm(在第 2 节 Olmo 2 中介绍过)之外,他们在全局层中使用了 NoPE(我们在第 7 节 SmolLM3 中讨论过 NoPE)。
他们还采用了一种门控注意力形式。他们没有使用完整的 GatedDeltaNet(在第 12 节中讨论过),而是使用了与 Qwen3-Next 注意力机制中类似的门控方式。
但他们修改了标准注意力机制,在输出线性投影之前,对缩放后的点积进行了逐元素门控(如下图所示),这减少了注意力汇聚点,并改善了长序列的泛化能力。此外,这也有助于训练稳定性。

你可能已经注意到,在之前的 Trinity Large 架构图中使用了四个(而不是两个)RMSNorm 层。这就是他们所谓的深度缩放三明治归一化,它基于先前的工作,但我在主流架构中从未见过。总体而言,它看起来像 Gemma 3 风格的 RMSNorm 放置方式,但不同之处在于,第二个 RMSNorm(在每个块中)的增益是深度缩放的,这意味着它被初始化为大约 1 / sqrt(L)(其中 L 是总层数)。因此,在训练早期,残差更新从较小的值开始,随着模型学习到正确的尺度而逐渐增大。
MoE 是一种类似 DeepSeek 的 MoE,包含大量小型专家,但使其更粗粒度,这有助于提高推理吞吐量(我们在 Mistral 3 Large 采用 DeepSeek V3 架构时也看到了这一点)。
最后,训练改进方面还有一些有趣的细节(一种新的MoE负载均衡策略和另一种使用MuOpt优化器的方法),但由于这是一篇关于架构的文章,这些内容就不在讨论范围之内了。
春节已经成为一个出奇可靠的开源权重模型发布窗口。例如,GLM-4和Qwen 1.5于2024年1月和2月发布,而DeepSeek R1和Qwen 2.5则于2025年发布。
今年,z.AI(智谱AI)在2026年2月11日(农历新年2月17日前约一周)发布了GLM-5,再次(相对较早地)拉开了序幕。
与我之前在这篇文章中介绍的GLM-4.5模型(见第11节,2025年夏季发布)相比,其继任者GLM-5的规模翻了一番:参数从355B增加到744B,使其介于DeepSeek-V3.2和Kimi K2之间。
与GLM-4.5类似,GLM-5也是一个混合专家模型(第1.2节),每个token的活跃参数数量仅略有增加:GLM-5为40B,而GLM-4.5为32B。

有趣的是,如上图56所示,GLM-5采用了DeepSeek的多头潜在注意力(MLA,见第1.1节)以及DeepSeek稀疏注意力(我在DeepSeek V3.2文章中有更详细的介绍)。这些修改的动机是为了降低处理长上下文时的推理成本。
除此之外,架构相对相似。规模增大主要是由于拥有更多专家(256个而非160个)以及略微增加了层的大小。例如,嵌入维度和专家大小现在为6,144(之前为5,120),中间投影大小也从1,536略微增加到2,048。有趣的是,层数(Transformer块)从92层减少到78层。我推测这是为了降低推理成本并使模型更快(因为层深度无法并行化)。
我通常不会在这里包含基准测试,因为本文侧重于架构。如果我要包含训练细节和评估,这篇文章的篇幅和范围将大大超出预期。话虽如此,我记得我在2025年7月包含了GLM-4.5的基准测试,所以这里我再破例一次,因为这些基准测试看起来确实令人印象深刻,与所有主要的旗舰LLM产品(GPT-5.2 extra-high、Gemini Pro 3和Claude 4.6 Opus)不相上下。但同样值得强调的是,基准测试性能不一定等同于实际性能。

2026年1月至2月期间,共有10个值得关注的开源权重LLM发布:
- Arcee AI的Trinity Large(2026年1月27日)
- 月之暗面的Kimi K2.5(2026年1月27日)
- StepFun Step 3.5 Flash(2026年2月1日)
- Qwen3-Coder-Next(2026年2月3日)
- z.AI的GLM-5(2026年2月12日)
- MiniMax M2.5(2026年2月12日)
- Nanbeige 4.1 3B(2026年2月13日)
- Qwen 3.5(2026年2月15日)
- 蚂蚁集团的Ling 2.5 1T和Ring 2.5 1T(2026年2月16日)
- Cohere的Tiny Aya(2026年2月17日)
- Sarvam 30B和105B(2026年3月6日)
我在上文第19和20节中介绍了Arcee AI的Trinity Large和z.AI的GLM-5。不过,由于1月至2月期间内容较多,我专门写了一篇文章,更详细地介绍了上述10种架构,链接如下:
在3月份Nemotron 3 Super发布之后,该月剩余时间对于旗舰级开源权重模型的发布来说相对平静。虽然我仍在等待DeepSeek-V4,但4月份至少迎来了Google的Gemma 4。
从架构上看,Gemma 4(31B)与Gemma 3(27B)相比几乎没有什么变化,如下图所示。

(注意,Gemma 4现在也支持多模态模型,但图像编码器部分我将留到以后的文章中单独讨论;这里我们只关注文本部分。)
如上图所示,Gemma 4保持了相对独特的Pre-norm和Post-norm设置,并且相对经典,采用了5:1的混合注意力机制,结合了滑动窗口(局部)层和全注意力(全局)层。注意力机制本身也是经典的组查询注意力(GQA)。
然而,与Gemma 3相比,有一个容易被忽略的小变化:在全局(全)注意力层中,它们重用了注意力机制中的键。也就是说,它们将值设置为等于键,这应该会进一步减小KV缓存大小。
此外,Gemma 4还使用了p-RoPE,其中只有25%的频率对获得了位置信息。这有助于在长上下文场景中减少位置噪声。
但不要被缺乏重大架构变化所迷惑。从基准测试来看,Gemma 4相比Gemma 3是一个巨大的飞跃!例如,在AI Arena排行榜上,Gemma 4(31B)的排名与规模大得多的Qwen3.5-397B-A17B模型相似。但正如我在模型评估文章(链接如下)中讨论的那样,竞技场分数存在一些问题,因为它可能被人为操纵,并且偏向于人类(风格)偏好。
[
](https://magazine.sebastianraschka.com/p/llm-evaluation-4-approaches)
然而,如果我们观察其他一些常见基准测试(如下方我绘制的图表),就会发现它确实明显超越了Gemma 3,并与Qwen3.5 27B处于同一水平。

请注意,还有一个混合专家(MoE)版本的Gemma 4,下图将其与类似规模的Qwen3模型进行了对比。

如上图所示,两种方法相对相似,唯一的区别在于Gemma 4采用了之前讨论过的独特的前置和后置归一化布局。
在基准测试方面,Gemma 4 MoE变体(总参数量比Gemma 4(31B)密集变体少4B)的性能表现相对接近。

如果您想直观了解本文涵盖的所有架构,我整理了一个LLM架构画廊,点击此处查看。
这么多年过去了,LLM的发布依然令人兴奋,我很好奇接下来会发生什么!
本杂志是我个人的热情项目,您的支持是它持续下去的动力。
如果您想支持我的工作,请考虑我的著作《从零开始构建大型语言模型》(Build a Large Language Model (From Scratch))或其续作《从零开始构建推理模型》(Build a Reasoning Model (From Scratch))。(我相信您会从中受益匪浅;这些书深入讲解了LLM的工作原理,其深度在其他地方难以找到。)
感谢您的阅读,也感谢您支持独立研究!
如果您读过这本书并且有空闲时间,我将非常感激您能留下简短评论。这对我们作者帮助很大!
您的支持意义重大!谢谢!