从 DeepSeek-V3 到 Kimi K2 ,一文看懂 LLM 主流架构

B站影视 电影资讯 2025-08-07 18:02 1

摘要:如果从 2019 年的 GPT-2 出发,回顾至 2024–2025 年的 DeepSeek-V3 和 LLaMA 4,不难发现一个有趣的现象:尽管模型能力不断提升,但其整体架构在这七年中保持了高度一致。

选自 Ahead of AI

作者:Sebastian Raschka

机器之心编译

自首次提出 GPT 架构以来,转眼已经过去了七年。

如果从 2019 年的 GPT-2 出发,回顾至 2024–2025 年的 DeepSeek-V3 和 LLaMA 4,不难发现一个有趣的现象:尽管模型能力不断提升,但其整体架构在这七年中保持了高度一致

当然,细节上仍有不少演进。例如,位置编码从最初的绝对位置(Absolute Positional Encoding)发展为旋转位置编码(RoPE);注意力机制也从标准的多头注意力(Multi-Head Attention)逐步过渡为更高效的分组查询注意力(Grouped-Query Attention);而激活函数方面,则从 GELU 被更高效的 SwiGLU 所取代。

然而,这些变化中究竟有没有「颠覆性创新」?七年间,大语言模型的架构是否真正迎来了质的飞跃,还是仍在原有框架上不断精雕细琢?

本文博客来自于 Sebastian Raschka,知名 AI 研究者和博主、《Python 机器学习》作者。

博客详细列举了 8 个主流大语言模型,包含 DeepSeek 和 Kimi 等国产大模型,硬核拆解了每个大模型的架构设计和革新思路,深度介绍了现代最新大语言模型的架构设计以及大模型的架构演进趋势。

图 1:本文所涵盖的部分 LLM 架构示意图。

DeepSeek V3/R1

DeepSeek R1 在 2025 年 1 月发布时引起了巨大反响。

DeepSeek R1 是一个以 DeepSeek V3 架构为基础构建的推理模型,而 DeepSeek V3 最初于 2024 年 12 月推出。尽管本文重点讨论 2025 年发布的架构,但作者认为应当将 DeepSeek V3 纳入其中。

本节将重点介绍 DeepSeek V3 引入的两项关键架构技术,这些技术提升了其计算效率,也使其在众多大型语言模型中脱颖而出。

若对 DeepSeek V3 关键技术感兴趣,请参照技术报告:

论文标题:DeepSeek-V3 Technical Report论文链接:https://arxiv.org/abs/2412.19437

多头潜在注意力机制 (MLA)

在讨论多头潜在注意力机制之前,应从近年来被广泛采用的分组查询注意力机制(GQA)说起,它已成为相较于传统多头注意力机制(Multi-Head Attention, MHA)更具计算与参数效率的新标准替代方案。

下面是对 GQA 的简要说明:与 MHA 中每个注意力头都有自己的一组键(key)和值(value)不同,GQA 的做法是将多个注意力头分组,让它们共享相同的 key 和 value 投影,从而降低内存使用。

如下图 2 所示,假设有 2 组 key-value 和 4 个注意力头,那么注意力头 1 和 2 可以共享第一组 key 和 value,而注意力头 3 和 4 共享第二组。这种做法减少了总的 key 和 value 计算量,降低了内存使用,提高了效率。

图 2:多头注意力机制(MHA)与分组查询注意力机制(GQA)的对比示意图。

GQA 的核心思想是:通过让多个 query 头共享一组 key 和 value,从而减少 key 和 value 的总数。这带来了两个主要好处:

1. 降低模型参数总量;

2. 在推理时减少 KV 缓存中 key 和 value 张量的内存带宽使用,因为需要存取的键值对变少了。

接下来介绍的 多头潜在注意力机制(MLA),则提供了一种 不同的内存节省策略,并且它与 KV 缓存机制的配合更加紧密。

与 GQA 通过「共享键值头」不同,MLA 是将 key 和 value 张量压缩到一个低维潜在空间后再存入 KV 缓存。而在推理过程中,这些压缩张量会被重新投影回原始维度再使用(如图 3 所示)。这一过程中虽然引入了一次额外的矩阵乘法,但大大节省了内存使用。

图 3:多头潜在注意力机制(MLA,应用于 DeepSeek V3 和 R1)与常规多头注意力机制(MHA)的对比。

值得说明的是,MLA 并不是 DeepSeek V3 首创的技术,它的前代模型 DeepSeek V2 就已经使用(甚至首次提出)了该机制。

MLA 是一种非常巧妙的技术手段,能够在提升模型表现的同时,大幅降低 KV 缓存的内存占用。相比之下,它甚至略优于传统的 MHA。接下来将进入下一个架构模块的分析。

Mixture-of-Experts (MoE)

DeepSeek 架构中另一个值得重点关注的重要组成部分是它对 MoE(Mixture-of-Experts,专家混合)层的应用。虽然 MoE 并非由 DeepSeek 首创,但这一技术在 2025 年迎来了回归,在后文介绍的许多架构中也能看到它的身影。

MoE 的核心思想是:将 Transformer 中的每个前馈模块(FeedForward)替换为多个「专家层」(每个专家层本质上也是一个前馈网络)。也就是说,原本单一的前馈结构被替换为多个并行的前馈子模块,具体如图 5 所示。

图 5:右图展示了 DeepSeek V3/R1 中 Mixture-of-Experts(MoE)模块的结构,对比左图中标准 LLM 所使用的普通前馈模块。

在 Transformer 块内部的前馈模块(上图中的深灰色块)通常占据了模型总参数量的很大一部分。

因此,将一个前馈模块替换为多个前馈模块(即构建 MoE 结构)会显著增加模型的总参数量。不过,关键的技巧在于:并不为每个 token 启用所有的专家模块(experts),而是由一个「路由器(router)」为每个 token 挑选出其中一小部分进行激活。MoE 的这种设计使得模型拥有极大的参数容量,在训练阶段能吸收更多知识;但在推理时由于稀疏激活,大幅降低了计算开销。

举个例子:DeepSeek-V3 每个 MoE 模块中拥有 256 个专家,总参数量高达 6710 亿。但在推理时,每个 token 实际只激活其中 9 个专家(1 个共享专家 + 路由选出的 8 个专家)

图 6:DeepSeekMoE 的注释图

关于 DeepSeek MoE 的更多细节,请参阅以下论文:

论文标题:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models论文链接:https://arxiv.org/abs/2401.06066

在 DeepSpeedMoE 论文中首次指出,引入「共享专家」(shared expert)可以显著提升模型整体的建模性能。其原理很可能是:对于通用或重复性强的模式,不需要多个专家分别学习;只需由共享专家统一处理,从而释放出其他专家的容量,专注于学习更加专业的知识模式。

OLMo 2

由非营利机构 Allen Institute for AI 发布的OLMo 系列模型,因其在训练数据、代码和技术报告方面的高度透明而备受关注。

OLMo 模型结构清晰、设计规范,更重要的是,由于极高的透明度,它们为大语言模型的开发提供了极佳的参考范式。

在 OLMo 2 中有哪些值得注意的架构设计选择呢?

主要集中在归一化策略上:包括 RMSNorm 层的位置安排,以及 QK-norm(Query-Key 归一化) 的引入。

另一个值得一提的是,OLMo 2仍采用传统的多头注意力机制(MHA),并未采用 MLA 或 GQA 等新型注意力结构。

关于更多 OLMo 2 的细节信息,请参照论文:

论文标题:2 OLMo 2 Furious论文链接:https://arxiv.org/abs/2501.00656

归一化层位置选择

总体而言,OLMo 2 在架构上大体沿用了最初 GPT 模型的设计,与当前多数主流大型语言模型相似。但它也存在一些值得关注的不同之处,先从归一化层的设计说起。

与 Llama、Gemma 以及大多数现代 LLM 一样,OLMo 2将归一化方法从 LayerNorm 替换为 RMSNorm

真正值得讨论的是 RMSNorm 的位置选择。在最初的 Transformer 架构中,两个归一化层分别位于注意力模块和前馈模块之后,这种结构被称为 Post-LN 或 后归一化(Post-Norm)。

而 GPT 及其后大多数的 LLM 模型,则将归一化层放在注意力模块和前馈模块的之前,这种做法称为 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 中,归一化层并不是放在注意力层和前馈网络之前,而是放在之后,如上图所示。然而,与最初 Transformer 架构不同的是,这些归一化层仍然嵌套在残差层内部。

那么,他们为何要调整归一化层的位置呢?

原因在于这种设计有助于提升训练的稳定性,这一点将在下图中进行展示。

图 9:展示了 Pre-Norm(如 GPT-2、Llama 3 等所采用)与 OLMo 2 所采用的 Post-Norm 变体在训练稳定性方面的对比。

不过遗憾的是,这张图展示的结果同时包含了归一化顺序调整和 QK-Norm 两个因素,而后者是一个独立的概念。因此很难明确判断,归一化位置的改变对训练稳定性的提升到底贡献了多少。

QK-Norm

QK-Norm 本质上是另一个 RMSNorm 层,它被放置在 多头注意力模块内部,在应用旋转位置编码(RoPE)之前,对 Query 和 Key 进行归一化处理。

如前所述,QK-Norm 与 Post-Norm 结合使用,有助于稳定训练过程。关于 QK-Norm 更多细节,请参阅以下论文:

论文标题:Scaling Vision Transformers论文链接:https://arxiv.org/abs/2106.04560

简而言之,OLMo 2 架构中的主要设计亮点是RMSNorm 的放置方式:将 RMSNorm 放置在注意力模块和前馈模块之后(属于 Post-Norm 的一种变体),并在注意力机制中对 query 和 key 引入额外的 RMSNorm(即 QK-Norm)。这两项改动结合使用,有助于稳定训练损失。

下图展示了 OLMo 2 与 Llama 3 的架构对比;可以看到,除了 OLMo 2 仍使用传统的 MHA 而非 GQA 外,二者在整体结构上相对接近。

图 10:Llama 3 与 OLMo 2 的架构对比图。

Gemma 3

谷歌的 Gemma 系列模型一直表现非常出色,但相比于 Llama 系列等热门模型,它们的关注度似乎总是略显不足。

Gemma 3 在架构上使用了另一种「技巧」来降低计算成本:滑动窗口注意力(sliding window attention)。

借助滑动窗口注意力机制,Gemma 3 团队成功大幅降低了 KV 缓存的内存需求,具体效果如下图所示。

图 11:Gemma 3 的 KV 缓存内存节省效果。

如果把常规的自注意力看作一种「全局」注意力机制,因为序列中的每个元素都可以访问其他所有元素,那么滑动窗口注意力则可以看作是一种「局部」注意力机制,因为它限制了当前查询位置周围的上下文范围。下图展示了这一机制的原理。

图 12:常规注意力机制(左)与滑动窗口注意力机制(右)的对比图。

需要注意的是,滑动窗口注意力机制既可以与多头注意力配合使用,也可以与分组查询注意力(GQA)一起使用;Gemma 3 就采用了 GQA。

如上所述,滑动窗口注意力也被称为「局部注意力」,因为其关注的上下文仅限于围绕当前查询位置的一个局部窗口,并且该窗口会随着查询位置的移动而滑动。相对地,常规注意力机制则是「全局」的,每个 token 都可以访问所有其他 token。

虽然滑动窗口注意力是 Gemma 3 架构中最显著的特点,但作为对前文 OLMo 2 部分的补充,在此简要介绍一下 Gemma 3 中归一化层的放置方式

一个小但有趣的细节是:Gemma 3 在其 GQA 模块周围同时使用了 RMSNorm 的 Pre-Norm 和 Post-Norm 形式

这与 Gemma 2 的做法类似,但依然值得强调,因为它不同于以下几种主流做法:

1. 原始 Transformer 架构使用的 Post-Norm;

2. 由 GPT-2 推广、并被许多后续架构采用的 Pre-Norm;

3. 前文在 OLMo 2 中看到的、特殊的 Post-Norm 变体。

Gemma 3 的这种双重归一化策略展示了一种不同寻常的归一化设计选择,可能与其在推理效率和训练稳定性之间的权衡有关。

图 14:OLMo 2 与 Gemma 3 的架构对比;请注意 Gemma 3 中额外的归一化层。

这种归一化层的放置方式相对直观,因为它结合了 Pre-Norm 和 Post-Norm 的优势。

作者认为,多加一点归一化并无坏处

关于 Gemma 3 的更多细节,请参阅技术报告:

论文标题:Gemma 3 Technical Report论文链接:https://arxiv.org/abs/2503.19786

Mistral Small 3.1

Mistral Small 3.1 24B 于今年 3 月发布,紧随 Gemma 3 之后。它值得关注的一个原因是,在多个基准测试中,其表现优于 Gemma 3 27B,同时推理速度更快。

造成 Mistral Small 3.1 推理延迟低于 Gemma 3 的主要原因,可能在于其定制的分词器(tokenizer),以及更小的 KV 缓存和更少的层数。除此之外,它整体上采用的是标准架构,如下图所示。

图 16:Gemma 3 27B 与 Mistral 3.1 Small 24B 的架构对比图。

有趣的是,早期的 Mistral 模型曾使用滑动窗口注意力机制,但在 Mistral Small 3.1 中似乎放弃了这一设计。

与使用滑动窗口的 Gemma 3 不同,Mistral 采用了常规的 GQA。

作者推测,尽管滑动窗口注意力可以降低内存使用,但它并不一定能降低推理延迟,而这正是 Mistral Small 3.1 所优先关注的性能指标。

Llama 4

前文对专家混合模型(MoE)的详细介绍又派上用场了。

Llama 4 同样采用了 MoE 架构,其余部分则延续了较为标准的设计,整体架构与 DeepSeek-V3 非常相似,如下图所示。

图 17:DeepSeek V3(6710 亿参数)与 Llama 4 Maverick(4000 亿参数)架构对比图。

尽管 Llama 4 Maverick 的整体架构看起来与 DeepSeek-V3 非常相似,但其中仍有一些值得注意的差异。

首先,Llama 4 采用了与其前代模型相同的 GQA,而 DeepSeek-V3 则使用了 MLA。

这两款模型都是非常庞大的架构,DeepSeek-V3 的总参数量大约比 Llama 4 Maverick 多出 68%。但从实际推理中参与计算的参数数量来看,DeepSeek-V3 启用的参数达 370 亿,是 Llama 4 Maverick(170 亿)的两倍多。

在 MoE 设置方面,Llama 4 Maverick 使用的是更为传统的架构:每次仅激活 2 个专家,每个专家的隐藏层维度为 8192;而 DeepSeek-V3 每次激活 9 个专家,每个专家的隐藏层维度为 2048。此外,DeepSeek 在除了前 3 层外的每个 Transformer Block 中都插入了 MoE 层,而 Llama 4 则是交替使用 MoE 模块和密集(Dense)模块,即每隔一个 Block 加一次 MoE。

可以明确的一点是,MoE 架构在 2025 年迎来了显著的发展与普及

Qwen3

Qwen 团队一直以来都在稳定输出高质量的开源大语言模型。在 NeurIPS 2023 的 LLM 效率挑战赛时,最终获胜的方案全部基于 Qwen2 构建。

而如今,Qwen3 系列再次成为各自参数规模下的榜单冠军,表现依旧亮眼。

Qwen3 (Dense)

先来看看 Qwen3 Dense 模型架构。截至目前,Qwen3 0.6B 可能是当前世代中体量最小的开源权重模型之一。

在本地运行时,它具有很高的每秒生成 token 数(token/sec)和很低的显存占用,非常适合轻量部署。而且因为参数量小,对于想在本地进行训练实验(例如教学用途)的人来说,也非常友好。

图 18:Qwen3 0.6B 与 Llama 3 1B 架构对比图。可以看到,Qwen3 架构更深(有更多的 transformer 层),而 Llama 3 架构更宽(具有更多的注意力头)。

Qwen3 (MoE)

如前所述,Qwen3 系列还包括两个 MoE(Sparse)变体。那么,为什么像 Qwen3 这样的架构会同时发布普通(Dense)和 MoE(Sparse)版本呢?

正如本文开头所提到的,MoE 变体旨在降低大规模基础模型的推理成本。提供 Dense 和 MoE 两种版本,可以让用户根据不同的目标与资源约束灵活选择。

通过同时发布这两类模型,Qwen3 系列能够覆盖更广泛的应用场景:致密模型强调鲁棒性、简单性和可微调性;MoE 模型则面向大规模部署中的推理效率。

图 19:DeepSeek-V3 与 Qwen3 235B-A22B 架构对比。

如上图所示,DeepSeek-V3 和 Qwen3 235B-A22B 在架构上非常相似。不过值得注意的是,Qwen3 模型取消了共享专家(此前的 Qwen2.5-MoE 等模型采用了共享专家机制)。

遗憾的是,Qwen3 团队并未公开说明他们放弃共享专家的原因。

作者猜测,可能是因为在将专家数量从 Qwen2.5-MoE 的 2 个增加到 Qwen3 的 8 个之后,训练稳定性已经不再依赖共享专家。因此,他们选择省略共享专家,以节省额外的计算和显存开销(避免从 8 个增加到 8+1 个专家)。不过,这并不能解释为何 DeepSeek-V3 至今仍保留共享专家机制。

SmolLM3

SmolLM3 或许不像本文其他提到的大模型那样广为人知,但作者认为它依然值得纳入讨论,因为该模型在仅有约 30 亿参数的体量下,展现出非常出色的建模性能,定位介于 Qwen3 的 17 亿参数模型与 40 亿参数模型之间,如下图所示。

此外,SmolLM3 也像 OLMo 一样公开了大量训练细节,这在业内并不常见,因此尤为值得称赞。

图 20:SmolLM3 相较于 Qwen3 1.7B 和 4B,以及 Llama 3 3B 和 Gemma 3 4B 的胜率比较。

如下面的架构对比图所示,SmolLM3 的整体结构相对标准。不过,其中最有趣的一点或许是它采用了 无位置嵌入(NoPE)机制。

图 21:Qwen3 4B 与 SmolLM3 3B 的并排架构对比图。

在 LLM 的背景下,NoPE 是一种较早提出的理念,该方法旨在移除显式的位置编码信息注入机制,例如早期 GPT 架构中常用的绝对位置嵌入,或当前主流的 RoPE(旋转位置编码)。

在基于 Transformer 的语言模型中,位置编码通常是必要的,因为自注意力机制默认对输入序列中的 token 顺序不敏感,即每个 token 被独立处理。为了解决这一问题,绝对位置嵌入通过添加一个额外的嵌入层,将位置信息与 token 嵌入相加,从而为模型提供序列顺序感知能力。

图 22:展示了绝对位置嵌入的机制。

相比之下,RoPE 通过将 Query 和 Key 向量按 token 的位置进行旋转来注入位置信息。

而在 NoPE 层中,则完全不加入任何位置编码信息:没有固定的、没有可学习的,也没有相对位置编码 —— 什么都没有。

即使没有显式的位置编码,模型依然可以通过因果注意力掩码知道哪些 token 是在前面。这个掩码会阻止每个 token 访问其后的 token,从而保证了自回归顺序的正确性。也就是说,位于位置 t 的 token 只能「看到」位置小于等于 t 的 token。

总结来说,NoPE 不仅不需要注入位置编码,还在序列长度泛化方面更具优势。也就是说,随着输入序列长度的增加,模型的表现下降幅度更小。如下图所示:

图 23:展示了 NoPE 在长度泛化上的优势表现。

正因如此,SmolLM3 团队在实际应用中,并未在每一层都使用 NoPE,而是选择在每 4 层中使用一次 NoPE(或说每 4 层省略一次 RoPE),作为一种折中策略。

关于 NoPE 的更多细节,请参阅以下论文:

论文标题:The Impact of Positional Encoding on Length Generalization in Transformers论文链接:https://arxiv.org/abs/2305.19466

Kimi K2

Kimi K2 最近因其出色的性能在 AI 社区引起了巨大反响。作为一个开源权重模型,它在多个基准测试中表现堪比 Google 的 Gemini、Anthropic 的 Claude 和 OpenAI 的 ChatGPT 等顶级闭源模型。

一个值得注意的方面是,它在训练中首次在此规模的生产级模型中使用了 Muon 优化器的变体,而非传统的 AdamW

据作者所知,这是 Muon 优化器首次在超大模型中应用(此前仅在最多 160 亿参数规模上展示过可扩展性)。这一选择带来了极为理想的训练损失曲线,很可能正是 Kimi K2 能在上述各项基准测试中脱颖而出的重要原因。

Kimi K2 的参数规模达到了 1 万亿(1T),这无疑令人印象深刻。它可能是目前这一代中最大的 LLM(截至本文撰写时),在不考虑尚未发布的 Llama 4 Behemoth、闭源模型以及架构不同的 Google 1.6 万亿 Switch Transformer(其为编码器 - 解码器模型)前提下,Kimi K2 几乎是无出其右的。

从架构上看,Kimi K2 基于本文开头提到的 DeepSeek-V3 架构,但进行了更大规模的扩展和增强,如下图所示(图略)。这也标志着一种「循环回归」:Kimi K2 将 DeepSeek-V3 的设计理念推向了极致。

如上图所示,Kimi K2 在整体架构上基本与 DeepSeek V3 保持一致,主要的差异在于:

Kimi K2 在 MoE 模块中使用了更多的专家,在 MLA 模块中使用了更少的注意力头(heads)。

在历经数年之后,LLM 的发布依然充满惊喜与期待。新技术永远让人心潮澎湃,永远期待更多的大模型架构改进的出现。

来源:新浪财经

相关推荐