大模型架构大对比:从 DeepSeek V3 到 Gemma 4
本文译自 Sebastian Raschka 的 The Big LLM Architecture Comparison1,副标题「From DeepSeek V3 to GLM-5: A Look At Modern LLM Architecture Design」,2025 年 7 月 19 日首发,此后持续增补,最后一次更新是 2026 年 4 月 2 日(在第 23 节加入 Gemma 4)。这是一篇只谈架构的长文——不谈 benchmark、不谈训练算法,逐个拆开 23 个旗舰开源权重模型的结构,看七年过去 Transformer 到底被改动了哪些地方。全文 23 节全部译出,66 张配图逐张核过;Substack 的订阅块、文末书籍推广和评论区不译,作者提到的自家其他文章转成脚注。
原文开头有一段作者自己录的讲解视频,是本文的删节口述版,这里无法嵌入,需要的话到原文页面看。
距离最初的 GPT 架构被开发出来,已经过去七年了。乍看之下,回望 GPT-2(2019)、再看向 DeepSeek V3 和 Llama 4(2024–2025),你可能会惊讶于这些模型在结构上竟然还是如此相似。
当然,位置嵌入已经从绝对位置演进到旋转位置(RoPE),Multi-Head Attention 基本上让位给了 Grouped-Query Attention,更高效的 SwiGLU 也取代了 GELU 之类的激活函数。但在这些细微改良之下,我们真的见到了开创性的变化吗,还是只是在打磨同一套架构地基?
对比 LLM、找出哪些关键成分造就了它们好(或者不那么好)的表现,是出了名的困难:数据集、训练技巧、超参数千差万别,而且往往没有被好好记录下来。
不过我认为,考察架构本身的结构变化仍然很有价值,能看出 LLM 开发者们在 2025 年都在做什么。(其中一部分展示在下面的图 1 里。)
所以在这篇文章里,我不写 benchmark 表现、也不写训练算法,而是聚焦于定义了当今旗舰开源模型的架构进展。
(你可能还记得,我不久前写过多模态 LLM2;在这篇文章里我只关注近期模型的文本能力,多模态能力的讨论留到以后。)
1 DeepSeek V3/R1
想必你已经不止一次听说过,DeepSeek R13 在 2025 年 1 月发布时造成了很大的冲击。DeepSeek R1 是一个建立在 DeepSeek V3 架构4之上的推理模型,而后者是 2024 年 12 月推出的。
尽管我这里关注的是 2025 年发布的架构,我认为把 DeepSeek V3 纳进来是合理的,因为它是在 2025 年 DeepSeek R1 发布之后才获得广泛关注和采用的。
如果你对 DeepSeek R1 的训练本身感兴趣,我今年早些时候的那篇文章可能也有用5。
本节我聚焦 DeepSeek V3 引入的两项关键架构技术,它们提升了计算效率,也把它和许多其他 LLM 区分开来:
- Multi-Head Latent Attention(MLA)
- Mixture-of-Experts(MoE)
1.1 Multi-Head Latent Attention(MLA)
在讨论 Multi-Head Latent Attention 多头潜在注意力(MLA)之前,我们先简单过一下背景,说明它为什么被用起来。为此,先从 Grouped-Query Attention 分组查询注意力(GQA)说起——近几年它已经成了 Multi-Head Attention 多头注意力(MHA)的新标准替代品,在计算和参数上都更高效。
那么,这里是 GQA 的一段简短总结。MHA 里每个 head 都有自己的一套 key 和 value;GQA 与之不同,为了减少内存占用,它把多个 head 分组,让它们共享同一套 key 和 value 投影。
举例来说,如下面图 2 进一步展示的,如果有 2 个 key-value 组和 4 个 attention head,那么 head 1 和 head 2 可能共享一套 key 和 value,而 head 3 和 head 4 共享另一套。这减少了 key 和 value 的计算总量,从而降低内存占用、提升效率(根据消融实验,且不会明显影响建模表现)。
所以 GQA 背后的核心想法是:通过让多个 query head 共享 key 和 value,来减少 key 和 value head 的数量。这样做(1)降低了模型的参数量,(2)减少了推理期间 key 和 value 张量的内存带宽占用,因为需要从 KV cache 里存取的 key 和 value 变少了(KV-Cache 基础)。
(如果你好奇 GQA 在代码里长什么样,我的 GPT-2 到 Llama 3 转换指南6里有一个不带 KV cache 的版本,带 KV cache 的变体在这里7。)
虽然 GQA 主要是 MHA 的一种计算效率变通方案,但消融实验(比如原始 GQA 论文8和 Llama 2 论文9里的那些)表明,在 LLM 建模表现上它和标准 MHA 相当。
现在说 MLA。它提供了一种不同的省内存策略,而且和 KV caching 配合得特别好。MLA 不像 GQA 那样共享 key 和 value head,而是在把 key 和 value 张量存进 KV cache 之前,先把它们压缩到一个更低维的空间里。
推理时,这些被压缩的张量在使用前会被投影回原来的尺寸,如下面图 3 所示。这多出一次矩阵乘法,但减少了内存占用(DeepSeek MLA)。
(顺带一提,query 也会被压缩,但只在训练时,推理时不压缩。)
另外,MLA 并不是 DeepSeek V3 才有的新东西,它的前身 DeepSeek-V210 就用过(而且正是它提出的)。此外,V2 论文里有几个有意思的消融实验,可能解释了 DeepSeek 团队为什么选 MLA 而不是 GQA(见下面图 4)。
如上面图 4 所示,GQA 看起来比 MHA 差,而 MLA 提供了比 MHA 更好的建模表现,这大概就是 DeepSeek 团队选 MLA 而不选 GQA 的原因。(要是能看到 MLA 与 GQA 之间「每 token KV Cache」的节省对比就更有意思了!)
在进入下一个架构组件之前先小结一下本节:MLA 是一个聪明的技巧,它减少了 KV cache 的内存占用,同时在建模表现上甚至还略微超过 MHA。
1.2 Mixture-of-Experts(MoE)
DeepSeek 里另一个值得一提的主要架构组件,是它对 Mixture-of-Experts 混合专家(MoE)层的使用。MoE 不是 DeepSeek 发明的,但它今年重新火了起来,我们后面会讲到的许多架构也都采用了它(MoE)。
你大概已经熟悉 MoE 了,但快速回顾一下可能有帮助。
MoE 的核心想法是把 transformer block 里的每个 FeedForward 模块替换成多个 expert 层,而这些 expert 层每一个也都是一个 FeedForward 模块。也就是说,我们把单个 FeedForward block 换成多个 FeedForward block,如下面图 5 所示。
transformer block 里的那个 FeedForward block(上图中深灰色的块)通常包含了模型总参数的很大一部分。(注意 transformer block、进而 FeedForward block,在一个 LLM 里会重复很多次;DeepSeek V3 的情况是 61 次。)
所以把单个 FeedForward block 替换成多个 FeedForward block(MoE 的做法)会大幅增加模型的总参数量。但关键的技巧在于,我们不会为每个 token 都用上(「激活」)所有 expert。相反,一个 router 只为每个 token 选出一小部分 expert。(考虑到时间,或者说文章篇幅,router 我以后再详细讲。)
因为同一时刻只有少数 expert 是激活的,MoE 模块常被称为稀疏的,与之相对的是总是用上全部参数的稠密模块。不过 MoE 带来的巨大总参数量提升了 LLM 的容量,意味着它在训练时能吸收更多知识。而稀疏性又让推理保持高效,因为我们不会同时用上所有参数。
举例来说,DeepSeek V3 每个 MoE 模块有 256 个 expert,总参数 6,710 亿。但推理时同一时刻只有 9 个 expert 是激活的(1 个 shared expert 加上 router 选出的 8 个)。这意味着每个推理步只用到 370 亿参数,而不是全部 6,710 亿。
DeepSeek V3 的 MoE 设计里有一个值得注意的特性,是 shared expert 的使用。这是一个对每个 token 都始终激活的 expert。这个想法并不新,DeepSeek 2024 年的 MoE 论文11和 2022 年的 DeepSpeedMoE 论文12里就已经引入了。
拥有 shared expert 的好处最早是在 DeepSpeedMoE 论文里被注意到的,他们发现相比不带 shared expert,它提升了整体建模表现。这大概是因为,常见或重复出现的模式不必被多个独立的 expert 分别学一遍,从而给它们留出更多空间去学更专门化的模式。
1.3 DeepSeek 小结
总结一下,DeepSeek V3 是一个庞大的 6,710 亿参数模型,发布时它的表现超过了包括 405B Llama 3 在内的其他开源权重模型。尽管它更大,但得益于 Mixture-of-Experts(MoE)架构每个 token 只激活一小部分参数(仅 370 亿),它在推理时高效得多。
另一个关键的区别性特性,是 DeepSeek V3 用 Multi-Head Latent Attention(MLA)而不是 Grouped-Query Attention(GQA)。在使用 KV caching 时,MLA 和 GQA 都是标准 Multi-Head Attention(MHA)的推理高效替代品。虽然 MLA 实现起来更复杂,DeepSeek-V2 论文里的一项研究表明它能给出比 GQA 更好的建模表现。
2 OLMo 2
非营利机构 Allen Institute for AI 的 OLMo 系列模型值得注意,原因在于它在训练数据和代码上的透明度,以及相对详细的技术报告。
虽然你大概不会在任何 benchmark 或排行榜的顶部看到 OLMo 模型,但它们相当干净,更重要的是,得益于这份透明度,它们是开发 LLM 的一份很好的蓝图。
而且,虽然 OLMo 模型是因为透明而受欢迎的,它们也并不差。事实上,在 1 月发布时(Llama 4、Gemma 3 和 Qwen 3 之前),OLMo 213 模型正处在算力—性能的 Pareto 前沿上,如下面图 7 所示。
如本文前面提到的,为了把篇幅控制在可管理的范围内,我只关注 LLM 的架构细节(不谈训练和数据)。那么 OLMo 2 里有意思的架构设计选择是什么?主要归结为归一化:RMSNorm 层的位置,以及 QK-Norm 的加入,下面我会讨论这两点。
另一件值得一提的事是,OLMo 2 仍然用传统的 Multi-Head Attention(MHA),而不是 MLA 或 GQA。
2.1 归一化层的位置
总体上,OLMo 2 大体沿用了最初的 GPT 模型架构,和其他同期 LLM 类似。不过有一些值得注意的偏离。我们先从归一化层说起。
和 Llama、Gemma 以及大多数其他 LLM 类似,OLMo 2 从 LayerNorm 切换到了 RMSNorm。
但既然 RMSNorm 已经是老话题了(它基本上就是可训练参数更少的简化版 LayerNorm),我就跳过 RMSNorm 与 LayerNorm 的讨论。(好奇的读者可以在我的 GPT-2 到 Llama 转换指南14里找到 RMSNorm 的代码实现。)
不过 RMSNorm 层的位置值得讨论。最初的 transformer(出自「Attention is all you need」论文15)把 transformer block 里的两个归一化层分别放在 attention 模块和 FeedForward 模块之后。
这也被称为 Post-LN 或 Post-Norm。
GPT 以及此后大多数 LLM 把归一化层放在 attention 和 FeedForward 模块之前,这被称为 Pre-LN 或 Pre-Norm。Post-Norm 和 Pre-Norm 的对比见下图。
2020 年,Xiong 等人16表明 Pre-LN 在初始化时能得到更良性的梯度。此外,研究者们提到,Pre-LN 即使不做细致的学习率 warm-up 也能工作良好,而 warm-up 对 Post-LN 来说是个关键工具。
我提这个的原因是,OLMo 2 采用了一种形式的 Post-LN(但用的是 RMSNorm 而不是 LayerNorm,所以我称它为 Post-Norm)。
在 OLMo 2 里,归一化层不是放在 attention 和 FeedForward 层之前,而是放在它们之后,如上图所示。但请注意,与最初的 transformer 架构不同,这些归一化层仍然位于残差层(skip connection)内部。
那么,他们为什么要移动归一化层的位置?原因是这有助于训练稳定性,如下图所示。
遗憾的是这张图把重排序的结果和 QK-Norm 一起展示了,而 QK-Norm 是另一个独立的概念。所以很难判断归一化层重排序本身贡献了多少。
2.2 QK-Norm
既然上一节已经提到了 QK-Norm,而且我们后面要讨论的其他 LLM(比如 Gemma 2 和 Gemma 3)也用了 QK-Norm,那就简单讲讲它是什么。
QK-Norm 本质上就是又一个 RMSNorm 层。它被放在 Multi-Head Attention(MHA)模块内部,在施加 RoPE 之前作用于 query(q)和 key(k)。为了说明这一点,下面是我为自己的 Qwen3 从零实现17写的一个 Grouped-Query Attention(GQA)层的节选(GQA 里 QK-Norm 的施加方式和 OLMo 的 MHA 类似):
|
|
如前所述,QK-Norm 和 Post-Norm 一起稳定了训练。注意 QK-Norm 不是 OLMo 2 发明的,它可以追溯到 2023 年的 Scaling Vision Transformers 论文18。
2.3 OLMo 2 小结
简而言之,OLMo 2 架构里值得注意的设计决策主要是 RMSNorm 的位置:RMSNorm 放在 attention 和 FeedForward 模块之后而不是之前(一种 Post-Norm 的变体),以及在 attention 机制内部为 query 和 key 加上 RMSNorm(QK-Norm),两者合在一起有助于稳定训练 loss。
下面这张图进一步把 OLMo 2 和 Llama 3 并排对比;可以看到,除了 OLMo 2 仍然用传统 MHA 而不是 GQA 这一点,两者的架构在其他方面相对相似。(不过 OLMo 2 团队三个月后发布了一个用 GQA 的 32B 变体19。)
3 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 用了一个不同的「技巧」来降低计算成本,也就是 sliding window attention。
3.1 Sliding Window Attention
借助 sliding window attention 滑动窗口注意力(SWA,最初在 2020 年的 LongFormer 论文20里提出,Gemma 221 也已经用过),Gemma 3 团队大幅减少了 KV cache 的内存需求,如下图所示。
那么什么是 sliding window attention?如果我们把常规自注意力看成一种全局注意力机制——因为每个序列元素都能访问其他所有序列元素——那么我们可以把 sliding window attention 看成局部注意力,因为这里我们把上下文尺寸限制在当前 query 位置的周围。下图说明了这一点。
请注意 sliding window attention 既可以和 Multi-Head Attention 一起用、也可以和 Grouped-Query Attention 一起用;Gemma 3 用的是 grouped-query attention。
如上所述,sliding window attention 也被称为局部注意力,因为那个局部窗口围绕着当前 query 位置、并随之移动。相比之下,常规注意力是全局的,因为每个 token 都能访问所有其他 token。
现在,如上面简要提到的,前代 Gemma 2 架构此前也用过 sliding window attention。Gemma 3 的不同之处在于,他们调整了全局(常规)注意力与局部(滑动)注意力之间的比例。
举例来说,Gemma 2 用的是一种把滑动窗口(局部)和全局注意力按 1:1 比例结合的混合注意力机制。每个 token 能注意到一个 4k token 的邻近上下文窗口。
Gemma 2 是每隔一层用一次 sliding window attention,而 Gemma 3 现在是 5:1 的比例,意味着每 5 个滑动窗口(局部)注意力层才有 1 个全注意力层;此外,滑动窗口的尺寸也从 4096(Gemma 2)减到了仅 1024(Gemma 3)。这把模型的重心推向更高效的、局部化的计算。
根据他们的消融实验,使用 sliding window attention 对建模表现的影响很小,如下图所示。
虽然 sliding window attention 是 Gemma 3 最值得注意的架构方面,我还想简单过一下归一化层的位置,作为前面 OLMo 2 那节的后续。
3.2 Gemma 3 的归一化层位置
一个小而有趣的点是,Gemma 3 在它的 grouped-query attention 模块周围,同时以 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。
我觉得这种归一化层的位置安排是一个相对直观的做法,因为它两头的好处都拿到了:Pre-Norm 和 Post-Norm。在我看来,多一点归一化不会有坏处。最坏的情况下,如果这些额外的归一化是冗余的,那也只是通过冗余增加了一点低效。但实践中,既然 RMSNorm 在整个大局里相对便宜,这应该不会有任何明显影响。
3.3 Gemma 3 小结
Gemma 3 是一个表现良好的开源权重 LLM,在我看来它在开源圈子里有点被低估。最有意思的部分是用 sliding window attention 来提升效率(未来把它和 MoE 结合起来会很有意思)。
此外,Gemma 3 有一套独特的归一化层位置安排,把 RMSNorm 层同时放在 attention 和 FeedForward 模块之前和之后。
3.4 附带:Gemma 3n
Gemma 3 发布几个月后,Google 分享了 Gemma 3n22,这是一个为小设备效率做了优化的 Gemma 3 模型,目标是能在手机上跑。
Gemma 3n 为获得更好效率所做的改动之一,是所谓的 Per-Layer Embedding(PLE)参数层。这里的核心想法是只把模型参数的一个子集保留在 GPU 内存里。token-层特定的 embedding,比如文本、音频和视觉各模态的那些,则按需从 CPU 或 SSD 流式取入。
下图说明了 PLE 的内存节省,图中给标准 Gemma 3 模型列的是 54.4 亿参数。这大概指的是 Gemma 3 的 40 亿变体。
54.4 亿和 40 亿这个参数量的差异,是因为 Google 有一套有意思的 LLM 参数量报告方式。他们经常把 embedding 参数排除在外,让模型显得更小,除了像这种把它们算进来更方便、能让模型显得更大的情形。这不是 Google 独有的,这种做法在整个领域里已经变得很常见。
另一个有意思的技巧是 MatFormer 概念23(Matryoshka Transformer 的简称,即俄罗斯套娃 Transformer)。举例来说,Gemma 3n 用单一的共享 LLM(transformer)架构,它可以被切成更小的、能独立使用的模型。每个切片都被训练成能自己单独工作,所以推理时我们可以只跑需要的那一部分(而不是整个大模型)。
4 Mistral Small 3.1
Mistral Small 3.1 24B24 在 3 月、也就是 Gemma 3 之后不久发布,值得注意之处在于它在若干 benchmark 上超过了 Gemma 3 27B(数学除外),同时还更快。
Mistral Small 3.1 相比 Gemma 3 推理延迟更低的原因,大概在于他们自己的 tokenizer,以及缩小了 KV cache 和层数。除此之外它是个标准架构,如下图所示。
有意思的是,早期的 Mistral 模型曾用过 sliding window attention,但如果看官方 Model Hub 配置文件25里的默认设置("sliding_window": null),他们在 Mistral Small 3.1 里似乎放弃了它。而且 model card26 里也完全没提到它。
所以,既然 Mistral 用的是常规 Grouped-Query Attention 而不是 Gemma 3 那种带滑动窗口的 Grouped-Query Attention,也许因为能用上更优化的代码(也就是 FlashAttention),会带来额外的推理算力节省。举例来说,我推测虽然 sliding window attention 减少了内存占用,但它并不必然减少推理延迟,而后者才是 Mistral Small 3.1 关注的东西。
5 Llama 4
本文前面关于 Mixture-of-Experts(MoE)那段冗长的引入,在这里又派上用场了。Llama 427 也采用了 MoE 方案,除此之外遵循一个相对标准的架构,和 DeepSeek V3 非常相似,如下图所示。(Llama 4 包含原生多模态支持,和 Gemma、Mistral 这类模型类似。但既然本文聚焦语言建模,我们只关注文本模型。)
虽然 Llama 4 Maverick 的架构整体上和 DeepSeek V3 非常像,还是有一些值得一提的有趣差异。
首先,Llama 4 和它的前代一样用 Grouped-Query Attention,而 DeepSeek V3 用的是我们在本文开头讨论过的 Multi-Head Latent Attention。其次,DeepSeek V3 和 Llama 4 Maverick 都是非常大的架构,DeepSeek V3 的总参数量大约大 68%。然而,以 370 亿激活参数计,DeepSeek V3 的激活参数是 Llama 4 Maverick(170 亿)的两倍多。
Llama 4 Maverick 用的是一种更经典的 MoE 配置,expert 更少但更大(2 个激活 expert,每个隐层尺寸 8,192),相比 DeepSeek V3(9 个激活 expert,每个隐层尺寸 2,048)。另外,DeepSeek 在每个 transformer block 里都用 MoE 层(前 3 个除外),而 Llama 4 是每隔一个 transformer block 交替使用 MoE 和稠密模块。
考虑到架构之间存在这么多细小差异,很难确定它们对最终模型表现的确切影响。不过主要的结论是,MoE 架构在 2025 年的流行度显著上升了。
6 Qwen3
Qwen 团队持续交付高质量的开源权重 LLM。我在 NeurIPS 2023 协助共同指导 LLM 效率挑战赛时,记得胜出的头部方案全都是基于 Qwen2 的。
现在,Qwen3 又是一个在各自尺寸档位排行榜顶部的热门模型系列。有 7 个稠密模型:0.6B、1.7B、4B、8B、14B 和 32B。还有 2 个 MoE 模型:30B-A3B 和 235B-A22B。
译注:原文写「7 个稠密模型」,但后面只列出 6 个尺寸(0.6B / 1.7B / 4B / 8B / 14B / 32B),Qwen3 的稠密档实际也是这 6 个,「7」疑为笔误。
(顺带一提,注意「Qwen3」里没有空格不是打字错误;我只是尽量保留 Qwen 开发者自己选的原始写法。)
6.1 Qwen3(稠密)
我们先讨论稠密模型架构。在写这篇文章时,0.6B 模型很可能是目前最小的当代开源权重模型。而且根据我个人的经验,考虑到它这么小的体量,它表现得相当好。如果你打算本地跑,它有很好的 token/秒 吞吐和很低的内存占用。不仅如此,由于体量小,它还很容易在本地训练(用于教学目的)。
所以对我来说,Qwen3 0.6B 在大多数用途上已经取代了 Llama 3 1B。这两个架构的对比见下图。
如果你对一份不依赖任何外部第三方 LLM 库、人类可读的 Qwen3 实现感兴趣,我最近从零实现了 Qwen3(纯 PyTorch)28。
上图里的计算性能数字,来自我自己的从零 PyTorch 实现在一张 A100 GPU 上的运行结果。可以看到,Qwen3 的内存占用更小,因为它整体上是个更小的架构,而且用了更小的隐层和更少的 attention head。不过它用了比 Llama 3 更多的 transformer block,这导致运行时更慢(token/秒 的生成速度更低)。
6.2 Qwen3(MoE)
如前所述,Qwen3 也有两个 MoE 版本:30B-A3B 和 235B-A22B。为什么有些架构,比如 Qwen3,会同时出常规(稠密)和 MoE(稀疏)变体?
如本文开头提到的,MoE 变体有助于降低大型 base 模型的推理成本。同时提供稠密和 MoE 版本,让用户能根据自己的目标和约束灵活选择。
稠密模型通常在微调、部署,以及跨各种硬件做优化上更直截了当。
另一方面,MoE 模型是为 scaling 推理而优化的。举例来说,在固定的推理预算下,它们能取得更高的整体模型容量(也就是因为更大而在训练时吸收更多知识),而推理成本不必成比例增加。
通过同时发布两种类型,Qwen3 系列可以支持更广泛的使用场景:稠密模型用于稳健性、简洁性和微调,MoE 模型用于大规模高效服务。
为了收尾本节,我们来看看 Qwen3 235B-A22B(注意 A22B 代表「220 亿激活参数」)对 DeepSeek V3,后者的激活参数几乎是它的两倍(370 亿)。
如上图所示,DeepSeek V3 和 Qwen3 235B-A22B 的架构相似得惊人。不过值得注意的是,Qwen3 模型不再使用 shared expert 了(更早的 Qwen 模型,比如 Qwen2.5-MoE29,确实用过 shared expert)。
遗憾的是,Qwen3 团队没有披露他们放弃 shared expert 的任何理由。如果要我猜,也许只是当他们把 expert 从 2 个(Qwen2.5-MoE)增加到 8 个(Qwen3)之后,shared expert 对他们那套设置的训练稳定性来说已经不必要了。然后他们就能通过只用 8 个而不是 8+1 个 expert 来省下额外的算力和内存开销。(不过这没法解释为什么 DeepSeek V3 还在保留他们的 shared expert。)
更新。Qwen3 的开发者之一 Junyang Lin 回应如下30:
当时我们没有发现 shared expert 带来足够显著的提升,而且我们担心 shared expert 会给推理侧的优化带来麻烦。老实说,这个问题没有直接的答案。
7 SmolLM3
SmolLM331 或许远没有本文涵盖的其他 LLM 那么受欢迎,但我认为它仍然是个值得纳入的有趣模型,因为它在一个相对小而方便的 30 亿参数尺寸上提供了相当好的建模表现,正好落在 Qwen3 的 1.7B 和 4B 之间,如下图所示。
此外,它也分享了大量训练细节,和 OLMo 类似,这很罕见,也总是令人感激!
如下面的架构对比图所示,SmolLM3 的架构看起来相当标准。不过或许最有意思的方面是它对 NoPE(No Positional Embeddings)的使用。
7.1 No Positional Embeddings(NoPE)
在 LLM 的语境里,NoPE 是一个更早的想法,可以追溯到 2023 年的一篇论文32(The Impact of Positional Encoding on Length Generalization in Transformers),主张移除显式的位置信息注入(比如早期 GPT 架构里那种经典的绝对位置嵌入层,或者如今的 RoPE)。
在基于 transformer 的 LLM 里,位置编码通常是必要的,因为自注意力对待 token 时不考虑顺序。绝对位置嵌入通过增加一个额外的嵌入层来解决这个问题,该层把信息加到 token embedding 上。
而 RoPE 则是通过按 token 位置旋转 query 和 key 向量来解决这个问题。
但在 NoPE 层里,完全不加任何这类位置信号:不加固定的、不加学出来的、不加相对的。什么都不加。
即便没有位置嵌入,模型仍然知道哪些 token 在前面,这要归功于因果注意力掩码。这个掩码阻止每个 token 去注意未来的 token。结果是位置 t 上的 token 只能看到位置 ≤ t 的 token,从而保住了自回归的顺序性。
所以虽然没有显式加入的位置信息,模型的结构里仍然烘焙进了一种隐式的方向感,而 LLM 在常规的基于梯度下降的训练中,如果发现这对优化目标有利,是可以学会利用它的。(更多信息见 NoPE 论文里的定理。)
所以总体上,NoPE 论文不仅发现不需要注入位置信息,还发现 NoPE 有更好的长度泛化,也就是说 LLM 的回答表现随序列长度增加而退化得更少,如下图所示。
注意上面展示的实验是在一个约 1 亿参数的相对小的 GPT 式模型上、以及相对小的上下文尺寸下做的。这些发现能多好地泛化到更大的当代 LLM 上,还不清楚。
正因如此,SmolLM3 团队大概只在每第 4 层「施加」了 NoPE(或者更准确地说,省掉了 RoPE)。
8 Kimi K2 与 Kimi K2 Thinking
Kimi K233 最近在 AI 社区引起了很大的波澜,因为它是一个表现好得惊人的开源权重模型。根据 benchmark,它和最好的闭源模型(Google 的 Gemini、Anthropic 的 Claude、OpenAI 的 ChatGPT 系列)不分上下。
一个值得注意的方面是它使用了相对新的 Muon 优化器34的一个变体,而不是 AdamW。据我所知,这是 Muon 第一次在这个体量的任何生产模型上取代 AdamW(此前它只被证明能 scale 到 16B35)。这带来了非常漂亮的训练 loss 曲线,大概也帮助这个模型被推上了前面说的那些 benchmark 的顶部。
虽然有人评论说这条 loss 特别平滑(因为没有尖刺),我认为它并不算特别平滑(比如可以看下图里 OLMo 2 的 loss 曲线;另外,梯度的 L2 范数大概是追踪训练稳定性的更好指标)。不过,真正值得注意的是这条 loss 曲线衰减得有多好。
但如本文引言里提到的,训练方法论是另一个话题,以后再谈。
译注:图 24 的原始图注把 OLMo 2 论文的链接写成了
arxiv.org/abs/2305.19466,那其实是上一节 NoPE 论文的编号;OLMo 2 论文是arxiv.org/abs/2501.00656,也就是第 2 节引的那篇13。
模型本身有 1 万亿参数,这真的很了不起。
在写这篇文章时,它可能是这一代里最大的 LLM(前提是 Llama 4 Behemoth 没有发布、闭源 LLM 不算,而 Google 那个 1.6 万亿的 Switch Transformer36 是上一代的 encoder-decoder 架构)。
这也算是绕回了原点,因为 Kimi K2 用的就是我们本文开头讲过的 DeepSeek V3 架构,只不过他们把它做得更大了,如下图所示。
如上图所示,Kimi K2 基本上和 DeepSeek V3 一样,除了它在 MoE 模块里用了更多 expert、在 Multi-Head Latent Attention(MLA)模块里用了更少的 head。
Kimi K2 不是凭空出现的。更早的 Kimi 1.5 模型,也就是「Kimi k1.5: Scaling Reinforcement Learning with LLMs」论文37里讨论的那个,同样令人印象深刻。然而它运气不好,DeepSeek R1 的论文正好在同一天、1 月 22 日发表。此外,据我所知 Kimi 1.5 的权重从未公开分享。
所以 Kimi K2 团队大概是把这些教训记在心上了,在 DeepSeek R2 发布之前就把 Kimi K2 作为开源权重模型分享了出来。在写这篇文章时,Kimi K2 是最令人印象深刻的开源权重模型。
更新:2025 年 11 月 6 日,Kimi K2 团队还发布了他们新的「Thinking」模型变体( 后续的 K2.5)。架构与上面的 Kimi K2 相比没有变化,除了他们把上下文尺寸从 128k 扩到了 256k。
根据 Kimi 团队分享的 benchmark38,这个模型超过了领先的闭源 LLM 的表现。(遗憾的是没有和 DeepSeek R1 的直接对比。)
9 GPT-OSS
在我写完这篇文章大约一周之后,OpenAI 发布了39 gpt-oss-120b 和 gpt-oss-20b,这是他们自 2019 年 GPT-2 以来的首批开源权重模型。既然 OpenAI 的开源权重模型被期待了这么久,我更新了这篇文章把它们纳入进来。本节我会写得简短,但我另外写了一篇专门讲 gpt-oss 模型的、详细得多的文章40。
在总结那些有意思的点之前,我们先看看这两个模型 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 用了 sliding window attention(和 Gemma 3 类似,但是每隔一层用一次,而不是 5:1 的比例)。
9.1 宽还是深
图 27 显示 gpt-oss 和 Qwen3 用的是相似的组件。但如果仔细看这两个模型,会发现 Qwen3 是一个深得多的架构,它有 48 个 transformer block 而不是 24 个。
另一方面,gpt-oss 是一个宽得多的架构:
- embedding 维度是 2880 而不是 2048
- expert(前馈)的中间投影维度同样是 2880 而不是 768
还值得注意的是,gpt-oss 用了两倍多的 attention head,但这并不直接增加模型的宽度。宽度是由 embedding 维度决定的。
在参数量固定的前提下,两种做法哪个更有优势?作为一条经验法则,更深的模型有更多灵活性,但由于梯度爆炸和梯度消失带来的不稳定问题,可能更难训练(RMSNorm 和 shortcut connection 就是为了缓解这些问题)。
更宽的架构的优势在于推理时更快(有更高的 token/秒 吞吐),因为并行化更好,代价是更高的内存开销。
至于建模表现,遗憾的是我不知道有什么好的同条件对比(参数量和数据集保持不变的那种),只有 Gemma 2 论文里的一项消融实验(Table 9)41,它发现对一个 9B 参数的架构,更宽的配置略好于更深的配置。在 4 项 benchmark 上,更宽的模型取得 52.0 的平均分,更深的模型取得 50.8。
9.2 少而大 vs 多而小的 expert
如上面图 27 所示,还值得注意的是 gpt-oss 的 expert 数量少得出人意料(32 个而不是 128 个),而且每个 token 只用 4 个而不是 8 个激活 expert。不过它每个 expert 都比 Qwen3 里的 expert 大得多。
这很有意思,因为近期的趋势和进展都指向更多、更小的 expert 更有益。在总参数量恒定的前提下,这一变化在下面来自 DeepSeekMoE 论文的图 28 里被很好地展示了出来。
不过值得注意的是,和 DeepSeek 的模型不同,gpt-oss 和 Qwen3 都没有用 shared expert。
9.3 Attention Bias 与 Attention Sink
gpt-oss 和 Qwen3 都用 grouped query attention。主要区别是,如前所述,gpt-oss 在每隔一层里通过 sliding window attention 限制了上下文尺寸。
不过有一个有意思的细节引起了我的注意。gpt-oss 似乎给 attention 权重用了 bias 项,如下面图 29 所示。
我自 GPT-2 时代以来就没见过这些 bias 项被用了,它们通常被认为是冗余的。事实上,我找到一篇近期的论文42,从数学上证明了至少对 key 变换(k_proj)来说这是成立的。此外,实证结果显示带不带 bias 项差别很小(见下面图 30)。
你可能注意到的另一个细节,是图 30 那张代码截图里 sinks 的定义。一般模型里,attention sink 是放在序列开头的特殊「始终被注意」token,用来稳定 attention,这在长上下文场景里特别有用。也就是说,如果上下文变得非常长,开头这个被特别注意的 token 仍然会被注意到,它可以学会存下一些关于整个序列的、普遍有用的信息。(我想它最初是在「Efficient Streaming Language Models with Attention Sinks」论文43里提出的。)
在 gpt-oss 的实现里,attention sink 不是输入序列里真实的 token。相反,它们是学出来的、per-head 的 bias logit,被追加到 attention 分数上(图 31)。目标和上面说的 attention sink 一样,但不用修改 tokenize 后的输入。
关于 gpt-oss 的更多信息,以及它和 GPT-2 的对比,请看我另一篇 gpt-oss 文章40。
10 Grok 2.5
这篇文章首次上线几周后,xAI 放出了他们 2,700 亿参数的 Grok 2.5 模型的权重。
我觉得值得把它放在这里,因为 Grok 2.5 是 xAI 去年的旗舰生产模型。在此之前我们讨论的所有模型,都是从一开始就以开源权重形式发布的。举例来说,gpt-oss 大概不是 GPT-4 的开源权重克隆,而是专门为开源社区训练的定制模型。
有了 Grok 2.5,我们难得地看到了一个真实的生产系统,即便它是去年的。
架构上,Grok 2.5 整体看起来相当标准(图 32),但有几个值得注意的细节。
举例来说,Grok 2.5 用的是少量的大 expert(八个),这反映的是一个更早的趋势。如前面讨论过的,更近期的设计,比如 DeepSeekMoE 论文里的那些,偏好数量更多、尺寸更小的 expert(Qwen3 里也是这样)。
另一个有意思的选择,是使用了实质上相当于 shared expert 的东西。图 32 左侧展示的那个额外的 SwiGLU 模块,起的就是一个常开的 shared expert 的作用。它和经典的 shared expert 设计并不完全相同,因为它的中间维度翻了倍,但想法是一样的。(我还是觉得 Qwen3 省掉 shared expert 这件事很有意思,也很想看到 Qwen4 及以后的模型会不会改变这一点。)
11 GLM-4.5
GLM-4.544 是今年另一个重要发布。
它是一个类似 Qwen3 的 instruction/reasoning 混合模型,但对 function calling 和 agent 式上下文优化得更好。
如图 34 所示,GLM-4.5 有两个变体。旗舰的 3,550 亿参数模型在 12 项 benchmark 上的平均表现超过 Claude 4 Opus,只略微落后于 OpenAI 的 o3 和 xAI 的 Grok 4。还有一个 GLM-4.5-Air,是更紧凑的 1,060 亿参数版本,表现只比 3,550 亿那个略低一点。
图 35 把 3,550 亿那个架构和 Qwen3 做了对比。
译注:这两句里的图号在原文里错位了,上一句说的是刚才那张 benchmark 图(图 33),下一句说的是紧接着的架构图(图 34);图注本身的编号是对的。这篇文章连载增补了九个月,正文里的交叉引用有几处没跟上编号:9.3 节说「图 30 那张代码截图」实际指图 29,第 22 节说「第 19 和 20 节」实际指第 20 和 21 节。本译文照原文译,遇到对不上的按图注编号看即可。
两者的设计大体相似,但 GLM-4.5 采用了一个最早由 DeepSeek V3 引入的结构性选择:3 个稠密层排在 Mixture-of-Experts(MoE)block 之前。为什么?因为在大型 MoE 系统里,以若干稠密层开头能改善收敛稳定性和整体表现。如果立刻引入 MoE routing,稀疏 expert 选择的不稳定性会干扰早期的句法和语义特征抽取。所以可以说,保持最初几层是稠密的,确保了模型在 routing 决策开始塑造更高层处理之前,先形成稳定的低层表示。
另外,GLM-4.5 也和 DeepSeek V3 一样用了 shared expert(不像 Qwen3)。
(有意思的是,GLM-4.5 还保留了 GPT-2 和 gpt-oss 里用的 attention bias 机制。)
12 Qwen3-Next
2025 年 9 月 11 日,Qwen3 团队发布了 Qwen3 Next 80B-A3B(图 35),有 Instruct 和 Thinking 两个变体。虽然它的设计建立在前面讨论过的 Qwen3 架构之上,我还是把它作为独立的一节放在这里,一是为了保持图编号的连贯,二是想让大家注意它的一些设计变化。
12.1 expert 的大小与数量
新的 Qwen3 Next 架构之所以突出,是因为尽管它比之前的 235B-A22B 模型小了 3 倍(图 35),它引入了四倍多的 expert,甚至还加了一个 shared expert。这两个设计选择(高 expert 数量、以及纳入 shared expert)都是我在这次发布之前指出过的未来方向,特别是在本文顶部链接的那个视频版本里。
12.2 Gated DeltaNet + Gated Attention 混合
另一个亮点是,他们把常规注意力机制换成了 Gated DeltaNet 加 Gated Attention 的混合,这在内存占用方面支撑起了原生 262k token 的上下文长度(之前的 235B-A22B 模型原生支持 32k,用 YaRN 缩放支持 131k)。
那么这套新的注意力混合是怎么工作的?相比 grouped-query attention(GQA)——它仍然是标准的 scaled dot-product attention,如前面讨论的那样让 K/V 在 query head 组之间共享以削减 KV cache 尺寸和内存带宽,但它的 decode 成本和 cache 仍随序列长度增长——他们的混合机制把 Gated DeltaNet block 和 Gated Attention block 按 3:1 的比例混起来,如图 36 所示。
我们可以把 gated attention block 想成是能用在 GQA 里的标准 scaled-dot-product attention,只是在上面加了几处调整。gated attention 和普通 GQA block 的主要差别是:
- 一个 output gate(由 sigmoid 控制,通常是 per-channel 的),在 attention 结果被加回残差之前对它做缩放;
- QKNorm 用的是 zero-centered RMSNorm,而不是标准的 RMSNorm;
- partial RoPE(只作用在一部分维度上)。
注意这些本质上只是对 GQA 的稳定性改动。
Gated DeltaNet 才是更实质的变化(线性注意力:Delta-Net)。在 DeltaNet block 里,q、k、v 和两个 gate(α、β)由线性层和带归一化的轻量卷积层产生,这一层用一个 fast-weight 的 delta rule 更新取代了 attention。
不过代价是,DeltaNet 提供的基于内容的检索没有全注意力那么精确,这就是为什么还保留了一个 gated attention 层。
考虑到 attention 是二次增长的,加入 DeltaNet 组件是为了帮助内存效率。在「线性时间、无 cache」这一族里,DeltaNet block 本质上是 Mamba 的一个替代品。Mamba 用一个学出来的状态空间滤波器(本质上是时间维度上的动态卷积)来维护状态。DeltaNet 维护一小块 fast-weight 记忆,用 α 和 β 来更新它,再用 q 去读它,小卷积只用来帮助形成 q、k、v、α、β。
12.3 Multi-Token Prediction
上面两个小节描述的是两项面向效率的设计决策。既然好事成三,Qwen3 还在上面又加了一项效率技术:Multi-Token Prediction 多 token 预测(MTP,MTP)。
(注意 DeepSeek V3 与 V3.2、以及后来的 GLM-4.5 和 MiniMax-M2 都在训练时用了 MTP;但既然它是一项训练技术,我在架构对比里没有明确讨论它。)
Multi-token prediction 训练 LLM 在每一步预测若干个未来 token,而不是一个。这里,在每个位置 t 上,额外的小 head(线性层)为 t+1…t+k 输出 logit,我们把这些偏移上的交叉熵 loss 加起来(在 MTP 论文45里研究者推荐 k=4)。这个额外的信号加快了训练,而推理时可以仍然一次生成一个 token。不过这些额外的 head 可以被用在 speculative 多 token 解码里(Speculative Decoding:投机解码),Qwen3-Next 似乎就是这么做的,然而细节仍然有点稀少:
Qwen3-Next 引入了原生的 Multi-Token Prediction(MTP)机制,它不仅产出一个在 Speculative Decoding 上具有高接受率的 MTP 模块,还提升了整体表现。此外,Qwen3-Next 专门优化了 MTP 的多步推理表现,通过保持训练与推理一致的多步训练,进一步提高了真实场景下 Speculative Decoding 的接受率。来源:Qwen3-Next 博文46
12.4 Qwen3-Coder-Next
2026 年 2 月初,Qwen3 团队分享了 80B 的 Qwen3-Coder-Next 模型(30 亿激活参数),它因为在编码任务上超过了 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 作为 base 模型来训练 Qwen3-Coder-Next)。既然本文是讲 LLM 架构的,训练细节超出了范围。不过感兴趣的读者可以在他们发在 GitHub 上的详细技术报告47里找到更多信息。
13 MiniMax-M2
最近,开源权重 LLM 的开发者们分享了他们核心架构的一些面向效率优化的版本。一个例子是 Qwen3-Next(见上一节),它把一部分全注意力 block 换成了快速的 gated DeltaNet 模块。另一个例子是 DeepSeek V3.2,它用了 sparse attention,一种拿一部分建模表现换取更好计算表现的线性注意力变体(我打算在后续文章里更详细地讲这个机制)。
现在,MiniMax-M148 和上面那些模型属于类似的范畴,因为它用了一种线性注意力变体(lightning attention),比常规(全)注意力效率更高。我原本没有涵盖 MiniMax M1,因为它没有这里讨论的其他一些模型那么受欢迎。不过他们新的 MiniMax-M249 发布目前被认为是最好的开源权重模型(按 benchmark 表现算),这让它大到无法忽视。
如下面的总览图所示,我把 MiniMax-M2 归到了其他 decoder 式 transformer LLM 一组,因为它没有用 MiniMax-M1 提出的那种高效的 lightning attention 变体。相反,开发者们回到了全注意力,大概是为了提升建模(和 benchmark)表现。
总体上,MiniMax-M2 和 Qwen3 相似得出人意料。除了改动层数、尺寸等等,它用的整体组件是一样的。
13.1 Per-Layer QK-Norm
这里或许唯一值得一提的亮点是,MiniMax-M2 用了所谓的「per_layer」QK-Norm,而不是常规的 QK-Norm。仔细看代码会发现,它在 attention 机制内部是这样实现的:
|
|
这里 hidden_size 等于拼接起来的所有 head(num_heads * head_dim),所以这个 RMSNorm 的 scale 向量对每个 head(以及每个 head 维度)都有各自独立的参数。
所以「per_layer」的意思是,这个 RMSNorm(如前所述用作 QK-Norm)在每个 transformer block 里都有定义(这和常规 QK-Norm 一样),但除此之外,它不是在各个 attention head 之间复用,而是每个 attention head 都有自己独有的 QK-Norm。
模型配置文件里还包含一个滑动窗口注意力的设置(和第 3 节的 Gemma 3 类似),但和第 4 节讨论的 Mistral 3.1 一样,它默认是关掉的。
除了 per-layer QK-Norm,其他方面这个架构和 Qwen3 非常相似,如下图所示。
13.2 MoE 稀疏度
如下图所示的其他有意思的点,还包括他们不用 shared expert(和 Qwen3 一样,但不同于 Qwen3-Next)。如前所述,在我看来 shared expert 是有用的,因为它们减少了其他 expert 之间的冗余。
另外,从上图也能看出,MiniMax-M2 的「稀疏」程度是 Qwen3 的两倍。也就是说,在和 Qwen3 235B-A22B 大致相同的尺寸下,MiniMax-M2 每 token 只有 10B 而不是 22B 的激活 expert(也就是 MiniMax-M2 每个推理步用到 4.37% 的参数,而 Qwen3 用 9.36%)。
13.3 Partial RoPE
最后,和 MiniMax-M1 类似,MiniMax-M2 在 attention 模块内部用「partial」而不是常规 RoPE 来编码位置信息。和常规 RoPE 类似,旋转是在施加 QK-Norm 之后作用于 query 和 key 的。
这里的 partial RoPE 意思是,每个 head 只有前 rotary_dim 个通道拿到旋转位置编码,剩下的 head_dim - rotary_dim 个通道保持不变。
在官方的 M1 README 文件50里,开发者们提到
Rotary Position Embedding(RoPE)作用于 attention head 维度的一半,base 频率为 10,000,000
我们可以这样想象它:
|
|
在上面这个概念性的图示里,「r」表示被旋转(编码了位置)的维度,破折号是未被触碰的维度。
这么做的意义何在?在 M1 论文51里,开发者们说
……在 softmax attention 维度的一半上实现 RoPE,能在不损失表现的前提下做长度外推。
我的推测是,这防止了长序列上「过度」的旋转,尤其是那些比训练数据集里最长文档还要长的序列。也就是说,这里的道理可能是:不旋转,好过一个模型在训练中从没见过的「糟糕」或「过于极端」的旋转。
14 Kimi Linear
最近线性注意力机制出现了一波复兴,用来提升 LLM 的效率(线性注意力 Attention)。
「Attention Is All You Need」论文(2017)里引入的注意力机制,也就是 scaled-dot-product attention,仍然是当今 LLM 里最流行的注意力变体。除了传统的 multi-head attention,它也被用在更高效的那些版本里,比如 grouped-query attention、sliding window attention 和 multi-head latent attention。
14.1 传统注意力与二次代价
最初的注意力机制随序列长度二次增长:
$$\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d}}\right)V$$这是因为 query(Q)、key(K)和 value(V)都是 n 乘 d 的矩阵,其中 d 是 embedding 维度(一个超参数),n 是序列长度(也就是 token 数)。
关于注意力的更多细节可以看我另一篇文章52,也可以看 当计算撞上内存墙:Attention!注意力机制及其优化算法浅析。
14.2 线性注意力
线性注意力变体已经存在很久了,我记得在 2020 年代看到过大量论文。举例来说,我记得最早的一篇是 2020 年的「Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention」53,研究者们在那里近似了注意力机制:
$$\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 \times n$ 的注意力矩阵 $QK^T$,也就是不去执行全部的成对 token 交互(那需要 $O(n^2d)$ 的时间和内存)。
我不想在这些更早的尝试上停留太久。但结论是它们把时间和内存复杂度都从 $O(n^2)$ 降到了 $O(n)$,让注意力在长序列上高效得多。
不过它们从来没有真正流行起来,因为它们会让模型精度退化,而且我从没真正见过其中任何一个变体被用在开源权重的 state-of-the-art LLM 上。
14.3 线性注意力的复兴
今年下半年,线性注意力变体出现了一波小小的复兴。第一个值得注意的模型是带 lightning attention 的 MiniMax-M1,一个 4,560 亿参数的 mixture-of-experts(MoE)模型、460 亿激活参数,它在 6 月就出来了。
然后在 8 月,Qwen3 团队跟上了 Qwen3-Next,我在上面更详细地讨论过。接着在 9 月,DeepSeek 团队宣布了 DeepSeek V3.2。这三个模型(MiniMax-M1、Qwen3-Next、DeepSeek V3.2)都在它们大部分或全部层里,把传统的二次注意力变体换成了高效的线性变体。
有意思的是,最近出现了一个转折:MiniMax 团队发布了他们新的 2,300 亿参数 M2 模型(在第 13 节讨论过),没有用线性注意力,回到了常规注意力。团队表示线性注意力在生产 LLM 里很难搞。它在常规 prompt 上看起来还行,但在推理和多轮任务上精度很差,而这些任务不仅对常规聊天会话重要,对 agentic 应用也重要。
这本来可能是一个转折点,说明线性注意力终究不值得追求。但事情变得更有意思了。10 月,Kimi 团队发布了他们新的带线性注意力的 Kimi Linear 模型54。
顺带一提:我本可以把 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 那个框里,把它们合成一类也是有理由的。
14.4 Kimi Linear vs. Qwen3-Next
Kimi Linear 和 Qwen3-Next 有若干结构上的相似之处。两个模型都依赖一种混合注意力策略。具体来说,它们把轻量的线性注意力和更重的全注意力层结合起来。具体而言,两者都用 3:1 的比例,意思是每三个采用线性 Gated DeltaNet 变体的 transformer block,就有一个用全注意力,如下图所示。
Gated DeltaNet 是一种线性注意力变体,灵感部分来自循环神经网络,包括来自「Gated Delta Networks: Improving Mamba2 with Delta Rule」论文55的一个门控机制。某种意义上,Gated DeltaNet 就是带 Mamba 式门控的 DeltaNet,而 DeltaNet 是一种线性注意力机制。由于本文的总览性质,DeltaNet 会是以后单独一篇文章的好题目。
注意上图 Kimi Linear 那一侧省掉 RoPE 那一格是刻意的。Kimi 在 multi-head latent attention(MLA)层(全局注意力)里施加了 NoPE(No Positional Embedding)。如作者们所说,这让 MLA 在推理时能当作纯 multi-query attention 来跑,也避免了为长上下文 scaling 而重新调 RoPE(位置偏置据称由 Kimi Delta Attention block 来处理)。关于 MLA 以及 multi-query attention(它是 grouped-query attention 的一个特例)的更多信息,请看我的 The Big LLM Architecture Comparison 一文1。
另外,我在这里更详细地写过 Gated DeltaNet56。
14.5 Kimi Delta Attention
Kimi Linear 用 Kimi Delta Attention(KDA)机制修改了 Qwen3-Next 的线性注意力机制,KDA 本质上是 Gated DeltaNet 的一次精化。Qwen3-Next 施加的是一个标量 gate(每个 attention head 一个值)来控制记忆衰减速率,而 Kimi Linear 把它换成了对每个特征维度做 channel-wise 的门控。按作者们的说法,这给了对记忆更多的控制,进而改善了长上下文推理。
此外,对于全注意力层,Kimi Linear 把 Qwen3-Next 的 gated attention 层(本质上是带输出门控的标准 multi-head attention 层)换成了 Multi-Head Latent Attention(MLA)。这就是我们前面在 DeepSeek V3/R1 那节讨论过的同一个 MLA 机制,只是多了一个门。(复述一下,MLA 压缩 key/value 空间来减小 KV cache 尺寸。)
没有和 Qwen3-Next 的直接对比,但相比 Gated DeltaNet 论文里的 Gated DeltaNet-H1 模型(它本质上是 Gated DeltaNet 加滑动窗口注意力),Kimi Linear 在保持相同 token 生成速度的同时取得了更高的建模精度。
此外,根据 DeepSeek-V2 论文里的消融实验,在超参数被仔细选择的情况下,MLA 和常规全注意力是相当的。
而 Kimi Linear 在长上下文和推理 benchmark 上对 MLA 的有利对比,让线性注意力变体对更大的 state-of-the-art 模型再次变得有希望。话虽如此,Kimi Linear 有 480 亿参数,但它比 Kimi K2 小 20 倍。看 Kimi 团队会不会在他们即将到来的 K3 模型上采用这个方案,会很有意思。
15 Olmo 3 Thinking
Allen AI 在 11 月 20 日发布了57他们新的 Olmo 3 7B 和 32B 模型。(官方拼写从 OLMo 改成了 Olmo,所以本节我也跟着改。)
如前所述,Olmo 模型总是很有意思,因为它们是完全开源的。在这里,这意味着团队还分享了详细的训练报告、多个 checkpoint、训练数据的信息等等。换句话说,Olmo 模型是完全透明的。
这一次,Olmo 套件还多了一个推理模型版本(在 base 和 instruct 模型之外),而且 Olmo 3 的技术报告58里有大量关于训练的有意思的细节。不过既然本文是讲架构对比的,本节只关注 Olmo 3 的架构。
最适合拿来和 Olmo 3 对比的模型是 Qwen3,因为 Qwen3 系列有两个尺寸相近的模型,而且 Qwen3 模型的表现也相近。
我们先看两个里较小的那个,Olmo 3 7B。
可以看到,Olmo 3 的架构和 Qwen3 相对相似。不过值得注意的是,这大概本质上是受它的前代 Olmo 2 启发,而不是受 Qwen3 启发。
和 Olmo 2 类似,Olmo 3 仍然用 post-norm 而不是 pre-norm,因为他们在 Olmo 2 论文里发现这样能稳定训练。
有意思的是,7B 模型仍然和 Olmo 2 一样用 multi-head attention。不过为了更高效、缩小 KV cache 尺寸,他们现在用了 sliding window attention(比如和 Gemma 3 类似)。
接下来我们看 32B 模型。
总体上,这是同一套架构,只是放大了。而且各种比例(比如从前馈层的输入尺寸到中间尺寸,等等)也和 Qwen3 里的大致吻合。
我猜这个架构最初因为词表更小而比 Qwen3 略小一些,然后他们把中间尺寸的扩张倍数从 Qwen 3 的 5 倍提到 Olmo 3 的 5.4 倍,以便有一个 32B 模型来做直接对比。
另外注意 32B 模型用的是 grouped query attention。
或许最后一个小细节是,Olmo 3 用 YaRN 做上下文扩展,以支持 64k 的上下文长度,但只在全局(非滑动窗口注意力)层上用。(YaRN 本质上是一种细致的 RoPE 重缩放技术,能在长上下文尺寸下更好地保住模型质量。)
在 Qwen3 里,YaRN 是可选的,用来把原生 32k token 的上下文扩到 131k token。
如果你对更多架构细节感兴趣,我在一个独立的 notebook 里从零实现了 Olmo 359。
16 DeepSeek V3.2
这篇文章是以 DeepSeek V3 开头的,它在 2024 年 12 月发布。从那以后 DeepSeek 有过多次发布,但我大体上跳过了它们,因为它们不像 DeepSeek V3 和 DeepSeek R1 那样是重大的旗舰模型发布。
不过 DeepSeek V3.2 是一次真正重大的发布,因为它在某些 benchmark 上和当前的 GPT-5.1 及 Gemini 3.0 Pro 模型不分上下。
它的架构整体上和 DeepSeek V3 相似,但他们加了一个 sparse attention 机制来提升效率。
我原本打算为这篇文章写一个关于 DeepSeek V3.2 的短小章节,但它变成了一篇 5000 词以上的长文,所以我把它移到了一篇独立的文章里60。
17 Mistral 3
2025 年 12 月 2 日,也就是 DeepSeek V3.2 发布之后一天,Mistral 团队发布了他们新的 Mistral 3 模型套件61。这包括三个较小的稠密模型(3B、8B 和 14B),以 Ministral 3 为名,以及他们新的旗舰模型 Mistral 3 Large,一个 6,750 亿参数的 MoE(410 亿参数激活)。更具体地说,Mistral 3 Large 模型由以下部分构成:
- 一个 673B 参数、39B 激活的 MoE 语言模型
- 一个 2.5B 的视觉 encoder
(既然本文聚焦 LLM 方面,本节我们忽略视觉 encoder。不过我或许该在什么时候更新一下我的多模态 LLM 那篇文章2。)
首先,有意思的是这是 Mistral 自 2023 年 Mixtral 以来的第一个 MoE(本文前面我写过 Mistral 放弃了 MoE,而去年 DeepSeek V3 开启了一波 MoE 复兴)。
发布博文说所有尺寸都有 base、instruct 和 reasoning 变体,这很好。不过他们 6,750 亿那个模型的 reasoning 版本还不可用。
另一个有意思的点是,据他们的公告,Mistral 在这里和 NVIDIA 合作,在 Blackwell 芯片上优化了 token/秒 吞吐。这很好,因为这意味着 Ministral 模型在我那台小 DGX Spark 上会比同类模型跑得快一点(我还得测一下)。
除了 Mistral 3 的 token/秒 速度优势,按质量 benchmark 看,他们较小的那些模型 Ministral 看起来和 Qwen3 相当。较大的旗舰模型和 DeepSeek V3.1 相当。
既然 Mistral 3 的发布就在 DeepSeek V3.2 发布之后一天,他们的文章里没有包含任何 V3.2 的对比(除了 LMArena Elo 分数,那里 DeepSeek V3.2 以 1423 对 1418 略微领先)。
遗憾的是现在没法做同条件对比,因为 Mistral 3 Large 目前没有 reasoning 模型,而 DeepSeek V3.2 又没有分享他们非思考模式的 benchmark 结果。但如果你好奇,我把 DeepSeek V3.2-Thinking 的数字(出自 DeepSeek V3.2 报告62)叠在了 Mistral 3 Large 的 benchmark 图上。
把 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 上的模型权重可以分析63。那我们就更仔细地看看 Mistral 3 Large。
结果发现,Mistral 3 Large 和 DeepSeek V3 及 V3.1 是完全相同的架构!唯一的差别是他们把 expert 的尺寸放大了 2 倍,同时把 expert 的数量按同样的倍数减少了。
不过,虽然它实际上是同一套架构,Mistral 团队很可能是从零训练 Mistral 3 的,而不是从 DeepSeek V3 初始化再继续训练,因为 Mistral 用的是他们自己的 tokenizer。
继 Kimi K2 之后,Mistral 3 现在是第二个使用 DeepSeek V3 架构的模型系列。不过 Kimi K2 团队是把模型尺寸从 671B 放大到 1 万亿,而 Mistral 3 团队只改了 expert 的尺寸比例,并加了一个视觉 encoder 来做多模态支持。但是,为什么不呢?我觉得 DeepSeek V3 是一个相当扎实的架构设计,加上它还有 MoE 和 MLA 这些不错的效率方面。所以,没坏的东西何必改?如今很多秘诀也在训练 pipeline 以及推理 scaling 策略里。
18 Nemotron 3 Nano 与 Super
本文不是一份现存所有 LLM 的详尽清单。为了保持可管理,我聚焦于主要亮点。这里「亮点」的意思是它们要么非常受欢迎、要么表现非常好、要么有一个有意思的架构组件。
话虽如此,是时候终于把 NVIDIA 的一个模型加进这份清单了。NVIDIA 刚刚在 2025 年 12 月 15 日发布了 Nemotron 系列的最新成员 Nemotron 3。Nemotron 好的地方在于,它不只带来开源权重和技术报告64,NVIDIA 还像 Olmo 3 那样分享了数据集65和训练代码66。
据公告文章67,Nemotron 3 有三个尺寸:
- Nano(30B-A3B),
- Super(100B),(后来这个被更新成 120B,见 18.1 节)
- 以及 Ultra(500B)。
18.1 Nemotron 3 Nano
架构上,这些模型是 Mixture-of-Experts(MoE)的 Mamba-Transformer 混合架构。在写这段时(12 月 17 日),只有 Nano 模型作为开源权重模型发布了,所以下面的讨论会聚焦它,如下图所示。
如上图所示,Nemotron 3 Nano(30B-A3B)是一个 52 层的 Mamba-Transformer 混合模型,它把 Mamba-2 序列建模 block 和稀疏的 Mixture-of-Experts(MoE)前馈层交错排列,只在一小部分层里使用自注意力。
上图里的信息很多,但简单说,这个架构被组织成 13 个宏块,里面是重复的 Mamba-2 → MoE 子块,再加上少数几个 Grouped-Query Attention 层。总的来说,如果我们把宏块和子块乘起来,这个架构里有 52 层。
至于 MoE 模块,每个 MoE 层包含 128 个 expert,但每个 token 只激活 1 个 shared 和 6 个 routed expert。
Mamba-2 层68本身够写一整篇文章来讲(也许以后再说)。不过现在,从概念上你可以把它们想成类似我上面介绍过的、Qwen3-Next 和 Kimi-Linear 用的 Gated DeltaNet 方案。你也可以在我另一篇 Beyond Standard LLMs 文章69里读到更多。
Gated DeltaNet 和 Mamba-2 层的相似之处在于,两者都用一个门控的状态空间更新取代了标准注意力。这类状态空间式模块背后的想法是:维护一个运行中的隐状态,并通过学出来的门把新输入混进去。与注意力不同,它随输入序列长度线性而不是二次增长。
这个架构真正让人兴奋的地方,是它相比同尺寸的纯 transformer 架构有相当好的表现,同时取得高得多的 token/秒 吞吐。
总体上这是一个有意思的方向,在只用少数几个注意力层这一点上,它比 Qwen3-Next 和 Kimi-Linear 更极端。不过 transformer 架构的强项之一,是它在(真正)大规模下的表现。我很好奇 Nemotron 3 Super、尤其是 Ultra,和 DeepSeek V3.2 之类的模型比起来会怎样。
18.2 Nemotron 3 Super
2026 年 3 月 11 日,NVIDIA 现在也把 120B 的 Super 版本作为开源权重模型70发布到了 Hugging Face Hub 上,同时还有一份不错的、专门讲「Super」的新技术报告71(Nemotron 3 Super:LatentMoE、NVFP4 预训练与 agentic 后训练)。
相比 Nano 模型,除了把架构放大,这个架构还有两处主要改动。
首先,Nemotron 3 Super 用了 Multi-Token Prediction(MTP),这是一种训练 LLM 在每一步预测多个未来 token 而不是单个的技术。
MTP 不是只用标准的 next-token 目标来训练模型,它还训练模型从同一个位置预测多个未来 token 偏移。这提供了更丰富的训练信号,而且据 Super 报告,它同时改善了建模质量和推理效率。
和 MTP 的标准用法(也就是我在上面图 51.2 里画的那种)的一个关键差别是,Nemotron 3 Super 不是只在训练时用它。
Nemotron 3 Super 明确在推理时也用 MTP,那个共享权重的 MTP head 充当内部的 draft 模型,用于原生的 speculative decoding。生成过程中,模型可以先提出候选续写,再用主模型去验证。这在不需要一个独立的外部 draft 模型的前提下降低了推理延迟。
既然这不太算标准的 MTP,把 Nemotron 3 Super 描述成「用共享权重 MTP 做 speculative decoding」,或许比像其他架构那样叫它「MTP-3」更准确(比如我在这里72写过的 Step 3.5 Flash,另见 Step 3.5 Flash 技术报告全文)。
相比 Nano 的第二处主要差别是,Super 架构用了 latent expert,意思是那些 expert 在潜空间里工作(MoE 层的输入先从 4096 维下投影到 1024 维,施加 expert,然后输出再从 1024 维上投影回 4096 维)。
benchmark 方面,Nemotron 3 Super 和 Qwen3.5 122B-A10B 及 GPT-OSS 120B 相当,但吞吐——得益于前面说的那些「技巧」(MTP、latent MoE 和混合注意力)——很棒:比 Qwen3.5 122B-A10B 快 2 倍,而(就 NVFP4 版本而言)比 GPT-OSS 120B 快 2.2 倍。
19 Xiaomi MiMo-V2-Flash
2025 年 12 月还有另一个令人印象深刻的成员。小米发布了他们最新的 Xiaomi MiMo-V2-Flash,benchmark 表现令人印象深刻地追平了 DeepSeek V3.2,而参数只有一半、推理还更快。它是一个 3,090 亿参数的 Mixture-of-Experts(MoE)模型,每 token 激活 150 亿参数(MiMo-V2-Flash 技术报告全文)。
有意思的是,它用 sliding window attention(SWA)与全局(常规)注意力按 5:1 的比例配合,和 Gemma 3 类似(见第 3 节)。不过它用了激进得多的滑动窗口尺寸(128),比 Gemma 3(1024)小 8 倍。
据我所知,这是迄今为止最大的滑动窗口注意力模型。
此外,小米这个模型还用了 multi-token prediction(MTP),如前面 12.3 节所述。
20 Arcee AI Trinity Large
距离上一次加入新的 LLM 架构已经有一段时间了。1 月 27 日,Arcee AI(一家在那之前还没进我视野的公司)开始在 model hub 上陆续发布他们 4,000 亿参数的开源权重 Trinity Large LLM73,还有两个更小的变体。
他们的旗舰大模型是一个 4,000 亿参数的 MoE(130 亿激活参数)。两个更小的变体是 Trinity Mini(260 亿参数、30 亿激活)和 Trinity Nano(60 亿参数、10 亿激活)。
除了模型权重,Arcee AI 还发布了一份细节丰富的技术报告74。
那我们就更仔细地看看这个 4,000 亿的旗舰模型。下图把它和前面讨论过的 GLM 4.5(第 11 节)做了对比,后者大概是最相似的、尺寸也相对接近。另外,Trinity 技术报告显示 Trinity Large 和 GLM-4.5 的 base 模型建模表现实际上一模一样(我猜他们没有和更近期的 base 模型对比,是因为如今很多公司只公开他们微调后的模型)。
但可以看到,Trinity 模型加了好几个有意思的架构组件。
首先,是像前面 Gemma 3、Olmo 3、Xiaomi MiMo 等等那样交替的局部:全局(滑动窗口)注意力层。但他们没有用 Gemma 3 和小米那种常见的 5:1 比例,而是选了和 Olmo 3 类似的 3:1,以及一个相对大的 4096 滑动窗口尺寸(同样和 Olmo 3 类似)。
在 QK-Norm(第 2 节 OLMo 2 里讲过)之外,他们还在全局层里用了 NoPE(NoPE 在第 7 节 SmolLM3 里讨论过)。
他们也有一种形式的 gated attention。他们没有完整的 GatedDeltaNet(第 12 节讨论过),但用了和 Qwen3-Next 注意力机制里类似的门控。
不过他们修改了标准注意力,在 scaled dot-product 之后、输出线性投影之前加了 elementwise 门控(如下图所示),这减少了 attention sink,也改善了长序列泛化。此外,它还有助于训练稳定性。
你可能注意到了前面那张 Trinity Large 架构图里用了四个(而不是两个)RMSNorm 层。这就是他们所谓的 depth-scaled sandwich norm,它基于此前的工作,但我在主流架构里还没见过。总体上它看起来像 Gemma 3 那种 RMSNorm 位置安排,但这里的花招在于,(每个 block 里)第二个 RMSNorm 的 gain 是按深度缩放的,也就是被初始化成大约 1 / sqrt(L)(L 是总层数)。所以训练早期,残差更新从很小开始,随着模型学到正确的尺度而增长。
MoE 是 DeepSeek 式的、带大量小 expert 的 MoE,但他们把它做得更粗了,因为那样有助于推理吞吐(我们在 Mistral 3 Large 采用 DeepSeek V3 架构时也见过这一点)。
最后,训练改进方面还有一些有意思的细节(一种新的 MoE 负载均衡策略,另一个是用 MuOpt 优化器),但既然这是一篇讲架构的文章,这些超出了范围。
21 GLM-5
中国春节已经变成了一个出人意料地可靠的强力开源权重发布窗口。举例来说,GLM-4 和 Qwen 1.5 是 2024 年 1 月和 2 月发布的,DeepSeek R1 和 Qwen 2.5 是 2025 年发布的。
今年,z.AI(智谱 AI)又一次(同样相对早地)以 2026 年 2 月 11 日的 GLM-5 打响了头炮,大约在 2 月 17 日农历新年前一周(GLM-5:从 vibe coding 到 agentic engineering)。
相比我在本文前面讲过的 GLM-4.5(见第 11 节,2025 年夏发布),它的后继者 GLM-5 尺寸翻了倍:从 3,550 亿参数涨到 7,440 亿,把它推进了 DeepSeek-V3.2 和 Kimi K2 之间的区间。
和 GLM-4.5 类似,GLM-5 是一个 Mixture-of-Experts(1.2 节)模型,而每 token 的激活参数只略有增加:GLM-5 是 400 亿,GLM-4.5 是 320 亿。
有意思的是,如上面图 56 所示,GLM-5 采用了 DeepSeek 的 multi-head latent attention(MLA,见 1.1 节)以及 DeepSeek Sparse Attention(我在我那篇 DeepSeek V3.2 文章60里更详细地讲过)。这些改动的动机是降低处理长上下文时的推理成本。
除此之外,架构相对相似。尺寸增加主要来自更多的 expert(256 个而不是 160 个)和略微加大的层尺寸。举例来说,embedding 维度和 expert 尺寸现在是 6,144(从 5,120 涨上来),中间投影尺寸也从 1,536 略涨到 2,048。有意思的是,层数(transformer block 数)从 92 减到了 78。我猜这是为了降低推理成本、让模型更快(因为层深度没法并行化)。
我通常不在这里放 benchmark,因为本文聚焦架构。如果要把训练细节和评测都放进来,这篇文章的范围和长度会彻底失控。话虽如此,我看到自己在 2025 年 7 月放过 GLM-4.5 的 benchmark,那我在这里也再破例一次,因为这些 benchmark 看起来真的令人印象深刻,和所有主要旗舰 LLM 产品(GPT-5.2 extra-high、Gemini Pro 3、Claude 4.6 Opus)不分上下。但同样值得强调的是,benchmark 表现不一定等于真实世界表现。
22 2026 年 2 月的更多发布:从 Kimi K2.5 到 Tiny Aya
2026 年 1 月到 2 月之间,总共有 10 个有意思的开源权重 LLM 发布:
- Arcee AI 的 Trinity Large(2026 年 1 月 27 日)
- Moonshot AI 的 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 个架构单独写了一篇文章,信息更全72。
23 Gemma 4
3 月 Nemotron 3 Super 发布之后,这个月剩下的时间在旗舰开源权重模型发布上相对平静。虽然我还在等 DeepSeek-V4,4 月至少给我们带来了 Google 的 Gemma 4。
架构上,Gemma 4(31B)和 Gemma 3(27B)相比几乎没变,如下图所示。
(注意 Gemma 4 现在也有多模态模型支持,但图像 encoder 那部分我留到以后单独一篇文章;这里我们只关注文本部分。)
如上图所示,Gemma 4 保持了那套相对独特的 Pre-norm 加 Post-norm 配置,并保持相对经典:5:1 的混合注意力机制,把一个滑动窗口(局部)层和一个全注意力(全局)层结合起来。注意力机制本身也是经典的 Grouped Query Attention(GQA)。
不过相比 Gemma 3 有一个容易被忽略的小改动:对全局(全)注意力层,他们在注意力机制里复用 key。也就是说,他们把 values 设成等于 keys,这应该会进一步减小 KV cache 尺寸。
此外,Gemma 4 还用了 p-RoPE,只有 25% 的频率对拿到位置信息。这有助于减少长上下文场景下的位置噪声。
但别被架构上缺少(较)大改动骗了。看 benchmark,Gemma 4 相比 Gemma 3 是一次巨大的飞跃!举例来说,在 AI Arena 排行榜76上,Gemma 4(31B)的排名和大得多的 Qwen3.5-397B-A17B 模型相当。但正如我在模型评测那篇文章77(链接在下面)里讨论过的,arena 分数有点问题,因为它们可以被刷,而且偏向人类(风格)偏好。
不过如果我们看其他一些常见 benchmark,也就是我在下面画的这些,可以看到它确实是相对 Gemma 3 的一次非常明显的飞跃,排名和 Qwen3.5 27B 相当。
注意还有一个 Mixture-of-Experts(MoE)版的 Gemma 4,下面把它和一个尺寸相近的 Qwen3 模型放在一起。
如上图所示,两者的方案相对相似,只是 Gemma 4 用了前面讨论过的那套独特的 Pre-norm 加 Post-norm 位置安排。
benchmark 方面,Gemma 4 的 MoE 变体总参数比 Gemma 4(31B)稠密变体少 40 亿,而表现相对接近。
如果你对这里涵盖的所有架构想要一个可视化总览,我在这里整理了一个 LLM 架构画廊80。
这么多年过去,LLM 的发布仍然让人兴奋,我很好奇接下来会是什么!
-
The Big LLM Architecture Comparison, https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison ↩︎ ↩︎
-
Understanding Multimodal LLMs, https://magazine.sebastianraschka.com/p/understanding-multimodal-llms ↩︎ ↩︎
-
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning, https://arxiv.org/abs/2501.12948 ↩︎
-
DeepSeek-V3 Technical Report, https://arxiv.org/abs/2412.19437 ↩︎
-
Understanding Reasoning LLMs, https://magazine.sebastianraschka.com/p/understanding-reasoning-llms ↩︎
-
GPT-2 到 Llama 3 转换指南, https://github.com/rasbt/LLMs-from-scratch/blob/main/ch05/07_gpt_to_llama/converting-llama2-to-llama3.ipynb ↩︎
-
带 KV cache 的 Llama 3 实现, https://github.com/rasbt/LLMs-from-scratch/blob/main/pkg/llms_from_scratch/llama3.py ↩︎
-
GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints, https://arxiv.org/abs/2305.13245 ↩︎
-
Llama 2: Open Foundation and Fine-Tuned Chat Models, https://arxiv.org/abs/2307.09288 ↩︎
-
DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model, https://arxiv.org/abs/2405.04434 ↩︎
-
DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models, https://arxiv.org/abs/2401.06066 ↩︎
-
DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale, https://arxiv.org/abs/2201.05596 ↩︎
-
OLMo 2 Furious, https://arxiv.org/abs/2501.00656 ↩︎ ↩︎
-
GPT-2 到 Llama 2 转换指南, https://github.com/rasbt/LLMs-from-scratch/blob/main/ch05/07_gpt_to_llama/converting-gpt-to-llama2.ipynb ↩︎
-
Attention Is All You Need, https://arxiv.org/abs/1706.03762 ↩︎
-
On Layer Normalization in the Transformer Architecture, https://arxiv.org/abs/2002.04745 ↩︎
-
Qwen3 从零实现, https://github.com/rasbt/LLMs-from-scratch/tree/main/ch05/11_qwen3 ↩︎
-
Scaling Vision Transformers to 22 Billion Parameters, https://arxiv.org/abs/2302.05442 ↩︎
-
OLMo-2-0325-32B-Instruct, https://huggingface.co/allenai/OLMo-2-0325-32B-Instruct ↩︎
-
Longformer: The Long-Document Transformer, https://arxiv.org/abs/2004.05150 ↩︎
-
Gemma 2: Improving Open Language Models at a Practical Size, http://arxiv.org/abs/2408.00118 ↩︎
-
Introducing Gemma 3n, https://developers.googleblog.com/en/introducing-gemma-3n/ ↩︎
-
MatFormer: Nested Transformer for Elastic Inference, https://arxiv.org/abs/2310.07707 ↩︎
-
Mistral Small 3.1, https://mistral.ai/news/mistral-small-3-1 ↩︎
-
Mistral-Small-3.1-24B-Instruct-2503 的 config.json, https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503/blob/main/config.json ↩︎
-
Mistral-Small-3.1-24B-Instruct-2503 model card, https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503 ↩︎
-
The Llama 4 herd, https://ai.meta.com/blog/llama-4-multimodal-intelligence/ ↩︎
-
Qwen3 纯 PyTorch 从零实现, https://github.com/rasbt/LLMs-from-scratch/tree/main/ch05/11_qwen3 ↩︎
-
Qwen2.5-Max, https://qwenlm.github.io/blog/qwen2.5-max/ ↩︎
-
Junyang Lin 的回应, https://x.com/JustinLin610/status/1947364862184853626 ↩︎
-
SmolLM3: smol, multilingual, long-context reasoner, https://huggingface.co/blog/smollm3 ↩︎
-
The Impact of Positional Encoding on Length Generalization in Transformers, https://arxiv.org/abs/2305.19466 ↩︎
-
Kimi K2: Open Agentic Intelligence, https://moonshotai.github.io/Kimi-K2/ ↩︎
-
Muon 优化器, https://github.com/KellerJordan/Muon ↩︎
-
Muon is Scalable for LLM Training, https://arxiv.org/abs/2502.16982 ↩︎
-
Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity, https://arxiv.org/abs/2101.03961 ↩︎
-
Kimi k1.5: Scaling Reinforcement Learning with LLMs, https://arxiv.org/abs/2501.12599 ↩︎
-
Kimi K2 Thinking, https://moonshotai.github.io/Kimi-K2/thinking.html ↩︎
-
Introducing gpt-oss, https://openai.com/index/introducing-gpt-oss/ ↩︎
-
From GPT-2 to gpt-oss: Analyzing the Architectural Advances, https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the ↩︎ ↩︎
-
Gemma 2 论文 Table 9, https://arxiv.org/abs/2408.00118 ↩︎
-
Simplicity Bias in Transformers and their Ability to Learn Sparse Boolean Functions, https://arxiv.org/pdf/2302.08626 ↩︎
-
Efficient Streaming Language Models with Attention Sinks, https://arxiv.org/abs/2309.17453 ↩︎
-
GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models, https://arxiv.org/abs/2508.06471 ↩︎
-
Better & Faster Large Language Models via Multi-token Prediction, https://arxiv.org/abs/2404.19737 ↩︎
-
Qwen3-Next 博文, https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&from=research.latest-advancements-list ↩︎
-
Qwen3-Coder-Next 技术报告, https://github.com/QwenLM/Qwen3-Coder/blob/main/qwen3_coder_next_tech_report.pdf ↩︎
-
MiniMax-M1: Scaling Test-Time Compute Efficiently with Lightning Attention, https://arxiv.org/abs/2506.13585 ↩︎
-
MiniMax-M2, https://huggingface.co/MiniMaxAI/MiniMax-M2 ↩︎
-
MiniMax-01 README, https://github.com/MiniMax-AI/MiniMax-01 ↩︎
-
MiniMax-01: Scaling Foundation Models with Lightning Attention, https://arxiv.org/abs/2501.08313 ↩︎
-
Understanding and Coding Self-Attention, Multi-Head Attention, Causal-Attention, and Cross-Attention in LLMs, https://magazine.sebastianraschka.com/p/understanding-and-coding-self-attention ↩︎
-
Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention, https://arxiv.org/abs/2006.16236 ↩︎
-
Kimi Linear: An Expressive, Efficient Attention Architecture, https://arxiv.org/abs/2510.26692 ↩︎
-
Gated Delta Networks: Improving Mamba2 with Delta Rule, https://arxiv.org/abs/2412.06464 ↩︎
-
DeltaNet 章节, https://sebastianraschka.com/llms-from-scratch/ch04/08_deltanet/ ↩︎
-
Olmo 3 发布博文, https://allenai.org/blog/olmo3 ↩︎
-
Olmo 3 技术报告, https://www.datocms-assets.com/64837/1763662397-1763646865-olmo_3_technical_report-1.pdf ↩︎
-
Olmo 3 从零实现 notebook, https://github.com/rasbt/LLMs-from-scratch/blob/main/ch05/13_olmo3/standalone-olmo3.ipynb ↩︎
-
A Technical Tour of the DeepSeek Models from V3 to V3.2, https://magazine.sebastianraschka.com/p/technical-deepseek ↩︎ ↩︎
-
Mistral 3, https://mistral.ai/news/mistral-3 ↩︎
-
DeepSeek-V3.2 报告, https://arxiv.org/abs/2512.02556 ↩︎
-
Mistral-Large-3-675B-Instruct-2512-NVFP4 的 params.json, https://huggingface.co/mistralai/Mistral-Large-3-675B-Instruct-2512-NVFP4/blob/main/params.json ↩︎
-
NVIDIA Nemotron 3 Nano 技术报告, https://research.nvidia.com/labs/nemotron/files/NVIDIA-Nemotron-3-Nano-Technical-Report.pdf ↩︎
-
NVIDIA Nemotron 数据集, https://huggingface.co/nvidia/datasets?search=nemotron&p=0 ↩︎
-
Nemotron-Pretraining-Code-v2, https://huggingface.co/datasets/nvidia/Nemotron-Pretraining-Code-v2 ↩︎
-
NVIDIA debuts Nemotron 3 family of open models, https://nvidianews.nvidia.com/news/nvidia-debuts-nemotron-3-family-of-open-models ↩︎
-
Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality, https://arxiv.org/abs/2405.21060 ↩︎
-
Beyond Standard LLMs, https://magazine.sebastianraschka.com/p/beyond-standard-llms ↩︎
-
NVIDIA-Nemotron-3-Super-120B-A12B-BF16, https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 ↩︎
-
NVIDIA Nemotron 3 Super 技术报告, https://research.nvidia.com/labs/nemotron/files/NVIDIA-Nemotron-3-Super-Technical-Report.pdf ↩︎
-
A Dream of Spring for Open-Weight LLMs: 10 Architectures from Jan-Feb 2026, https://magazine.sebastianraschka.com/p/a-dream-of-spring-for-open-weight ↩︎ ↩︎
-
Trinity Large collection, https://huggingface.co/collections/arcee-ai/trinity-large ↩︎
-
Trinity Large 技术报告, https://github.com/arcee-ai/trinity-large-tech-report ↩︎
-
GLM-5 发布博文, https://z.ai/blog/glm-5 ↩︎
-
AI Arena 排行榜, https://arena.ai/leaderboard/text ↩︎
-
Understanding the 4 Main Approaches to LLM Evaluation (From Scratch), https://magazine.sebastianraschka.com/p/llm-evaluation-4-approaches ↩︎
-
google/gemma-4-31B, https://huggingface.co/google/gemma-4-31B ↩︎
-
Qwen/Qwen3.5-27B, https://huggingface.co/Qwen/Qwen3.5-27B ↩︎
-
LLM Architecture Gallery, https://sebastianraschka.com/llm-architecture-gallery/ ↩︎
Author houmin
Publish July 30, 2026
LastMod July 31, 2026
License 本作品采用 CC BY-NC-ND 4.0 许可协议进行许可,转载时请注明原文链接
如果你在浏览博客的过程中发现了任何问题,欢迎在对应文章下评论。如果你有其他事情想要咨询,可以通过邮件联系我。