从DeepSeek到K2:大模型架构如何进化出惊人效果?
开源大模型架构演进速览(2025) 2025年主流开源大语言模型(LLM)在架构设计上呈现多样化创新: DeepSeek-V3/R1:采用多头潜在注意力(MLA)替代分组查询注意力(GQA),结合混合专家(MoE)架构,6710亿总参数仅激活370亿推理,显著提升效率。 OLMo2:坚持传统多头注意力(MHA),引入Post-Norm和QK-Norm设计以增强训练稳定性,注重透明性(公开训练数据与
万字长文带你了解开源大模型架构到底是如何演变的
2025 年主流开源大语言模型(LLM)的发展迅猛,相信很多同学感受到了最近大模型演进的恐怖之处。不禁有一疑问:大模型能力提升之下,它到底变了什么???下文带你快速了解~
友情提醒:蓝色栏目比较适合有基础的小伙伴做省略阅读,没有基础的小伙伴请拉到表格后面的绿色栏目做详细阅读~
开源大模型核心点速读
-
• DeepSeek V3/R1:采用多头潜在注意力(MLA)替代分组查询注意力(GQA),结合混合专家(MoE)架构,6710 亿总参数仅激活 370 亿进行推理,提升效率与性能。
-
• OLMo 2:注重透明度,采用 Post-Norm 归一化层位置设计和 QK-Norm(对查询和键应用 RMSNorm),有助于训练稳定,仍使用传统多头注意力(MHA)。
-
• Gemma 3:通过滑动窗口注意力减少 KV 缓存内存需求,调整全局与局部注意力比例为 5:1,归一化层同时采用 Pre-Norm 和 Post-Norm。
-
• Mistral Small 3.1:240 亿参数模型在多个基准测试中优于 Gemma 3 27B 且速度更快,使用常规分组查询注意力以降低推理延迟。
-
• Llama 4:采用 MoE 架构,与 DeepSeek-V3 类似但专家数量更少、规模更小,交替使用 MoE 和密集模块。
-
• Qwen3:包含密集和 MoE 版本,密集模型中 0.6B 参数模型体积小、性能佳;MoE 模型无共享专家,适合不同场景。
-
• SmolLM3:30 亿参数模型性能良好,每 4 层省略 RoPE(采用 NoPE 理念),利于长序列泛化。
-
• Kimi 2:1 万亿参数,使用 Muon 优化器,基于 DeepSeek-V3 架构扩大规模,性能媲美顶级专有模型。
八大模型对比表
模型名称 |
核心点 |
创新点 |
与其他模型的不同点 |
DeepSeek V3/R1 |
6710亿总参数,采用MoE架构,推理时仅激活370亿参数;使用MLA替代GQA |
1. 多头潜在注意力(MLA):压缩键值张量至低维空间存储,提升性能且减少KV缓存内存;2. MoE架构含共享专家,始终活跃,助力学习通用模式与专业模式 |
1. 注意力机制上,用MLA而非GQA,且MLA性能优于MHA和GQA;2. MoE架构中包含共享专家,与Qwen3 MoE等无共享专家的设计不同 |
OLMo 2 |
注重透明度,训练数据和代码公开;采用Post-Norm归一化层位置设计和QK-Norm;使用传统MHA |
1. Post-Norm归一化层位置:置于注意力和前馈模块后,结合残差连接助力训练稳定;2. QK-Norm:在注意力机制中对查询和键应用RMSNorm,增强训练稳定性 |
1. 坚持使用传统MHA,未采用MLA或GQA;2. 归一化层设计独特,与GPT的Pre-Norm、原始Transformer的Post-Norm不同 |
Gemma 3 |
270亿参数模型性能与效率平衡佳;使用滑动窗口注意力;归一化层同时采用Pre-Norm和Post-Norm |
1. 滑动窗口注意力:调整全局与局部注意力比例为5:1,窗口大小减至1024,大幅减少KV缓存内存;2. 归一化层同时采用Pre-Norm和Post-Norm,兼顾两者优势 |
1. 采用滑动窗口注意力优化效率,与DeepSeek的MoE、Mistral的常规GQA不同;2. 归一化层设计结合Pre和Post,独具特色 |
Mistral Small 3.1 |
240亿参数,性能优于Gemma 3 27B且速度更快;使用常规分组查询注意力 |
1. 优化分词器、缩减KV缓存和层数以降低推理延迟;2. 放弃滑动窗口注意力,改用常规GQA以利用更优代码优化(如FlashAttention) |
1. 专注降低推理延迟,性能优于同规模部分模型;2. 放弃滑动窗口注意力,与Gemma 3不同 |
Llama 4 |
4000亿参数,采用MoE架构;交替使用MoE和密集模块;使用GQA |
1. MoE架构中专家数量少但规模大,每次激活2个专家;2. 交替使用MoE和密集模块,平衡性能与效率 |
1. MoE设计中专家规模大、数量少,与DeepSeek的多小专家不同;2. 注意力机制用GQA,与DeepSeek的MLA不同 |
Qwen3 |
含密集(0.6B-32B)和MoE(30B、235B)版本;密集模型中小规模模型性能佳;MoE模型无共享专家 |
1. 密集模型中0.6B为当前最小开源模型之一,性能优异;2. MoE模型取消共享专家,可能为节省计算和内存成本 |
1. 同时提供密集和MoE版本,满足不同场景需求;2. MoE模型无共享专家,与DeepSeek的MoE设计不同 |
SmolLM3 |
30亿参数,性能良好;共享大量训练细节;采用NoPE理念 |
1. 采用NoPE理念,每4层省略RoPE,利于长序列泛化;2. 训练细节公开,类似OLMo,便于研究 |
1. 规模介于1.7B和4B模型之间,提供中间选择;2. 应用NoPE理念,与其他使用RoPE的模型不同 |
Kimi 2 |
1万亿参数,性能媲美顶级专有模型;使用Muon优化器;基于DeepSeek-V3架构扩大规模 |
1. 首次在超大规模模型(1万亿参数)中使用Muon优化器,训练损失曲线衰减良好;2. 基于DeepSeek-V3架构,扩大规模,调整专家数量和注意力头数 |
1. 参数规模达1万亿,为当前同代最大LLM之一;2. 使用Muon优化器,与其他使用AdamW的模型不同 |
大模型体系结构比较——从DeepSeek-V3到Kimi K2:现代LLM架构设计
Jul 19, 2025 by Sebastian Raschka
(原文为英文,下文为翻译版)
自从最初的GPT架构被开发以来,已经过去了七年。乍一看,回顾2019年的GPT-2并展望DeepSeek-V3和Llama 4(2024-2025年),人们可能会惊讶于这些模型在结构上仍然如此相似。
当然,位置嵌入已从绝对位置演变为旋转(RoPE)位置,多头注意力在很大程度上已被分组查询注意力所取代,更高效的SwiGLU已替代了GELU等激活函数。但在这些细微的调整之下,我们是否真正看到了突破性的变化,还是仅仅在打磨同一基础?
比较大型语言模型以确定对其性能良好(或不太良好)的关键因素向来极具挑战性:数据集、训练技术和超参数差异巨大且往往记录不详。
然而,我认为,研究这些架构本身的结构变化仍然具有很大的价值,以了解2025年大型语言模型开发者的动向。(其中一部分在下图1中展示。)
Figure 1: A subset of the architectures covered in this article.
所以,在本文中,我将重点介绍定义当今旗舰开放模型的架构发展,而不是撰写关于基准性能或训练算法的内容。
1. DeepSeek V3/R1
您可能已经不止一次听说过,DeepSeek R1 在 2025 年 1 月发布时产生了巨大影响。DeepSeek R1 是构建在 2024 年 12 月推出的 DeepSeek V3 架构之上的推理模型。
虽然我在这里的重点是 2025 年发布的架构,但我认为包含 DeepSeek V3 是合理的,因为它在 2025 年 DeepSeek R1 发布后才获得了广泛的关注和采用。
如果您对 DeepSeek R1 的训练特别感兴趣,您可能还会发现今年早些时候我写的文章很有用。
在本节中,我将重点介绍DeepSeek V3中引入的两项关键架构技术,这些技术提高了其计算效率,使其有别于许多其他大型语言模型(LLM):
● 多头潜在注意力(MLA)
● 专家混合(MoE)
1.1 多头潜在注意力(MLA)
在讨论多头潜在注意力(MLA)之前,让我们简要回顾一些背景信息,以了解其使用的原因。为此,让我们从分组查询注意力(GQA)开始,近年来它已成为替代多头注意力(MHA)的计算和参数效率更高的标准选择。
因此,以下是GQA的简要概述。与MHA不同,在MHA中每个头部都有自己的键和值集,为了减少内存使用,GQA将多个头部组合在一起共享相同的键和值投影。
例如,如下图2进一步所示,如果有2个键值组和4个注意力头部,那么头部1和2可能共享一组键和值,而头部3和4共享另一组。这减少了键和值计算的总数,从而降低了内存使用量(参见多项研究)。
Figure 2: A comparison between MHA and GQA. Here, the group size is 2, where a key and value pair is shared among 2 queries.
所以,GQA的核心思想是通过在多个查询头之间共享关键值头来减少关键值头的数量。这(1)降低了模型的参数数量,(2)由于需要从键值缓存中存储和检索的关键值更少,因此在推理过程中减少了键值张量的内存带宽使用。
(如果您好奇GQA在代码中的实现,请参阅我的GPT-2到Llama 3转换指南,其中包含一个没有键值缓存的版本,以及我在此处的键值缓存变体。)
虽然GQA主要是针对多头自注意力机制(MHA)计算效率问题的一种解决方案,但消融研究(如原始GQA论文和Llama 2论文中的研究)表明,在大型语言模型(LLM)建模性能方面,其表现与标准MHA相当。
现在,多头潜在注意力(MLA)提供了一种不同的内存节省策略,它也与键值缓存特别搭配。MLA不是像GQA那样共享关键值头,而是先将键值张量压缩到低维空间,然后再将其存储在键值缓存中。
在推理时,这些被压缩的张量会被投影回其原始大小后再使用,如下图3所示。这增加了一个额外的矩阵乘法,但减少了内存使用。
Figure 3: Comparison between MLA (used in DeepSeek V3 and R1) and regular MHA.
(作为补充说明,查询在训练过程中也被压缩了,但在推理过程中则没有。)
顺便说一下,MLA在DeepSeek V3中并不是新东西,因为其DeepSeek-V2的前身也曾使用过(甚至引入)它。此外,V2论文中还包含了一些有趣的消融研究,这些研究可能解释了为什么DeepSeek团队选择MLA而不是GQA(见下面的图4)。
表8 | 分别比较了7B密集模型与MHA、GQA和MQA的情况。在困难基准测试中,MHA相较于GQA和MQA表现出显著的优势。 表9 | 在硬性基准测试中MLA与MHA的比较。DeepSeek-V2表现出比MHA更好的性能,但需要显著更小的键值缓存量 (Figure 4: Annotated tables from the DeepSeek-V2 paper, https://arxiv.org/abs/2405.04434)
表8 | 分别比较了7B密集模型与MHA、GQA和MQA的情况。在困难基准测试中,MHA相较于GQA和MQA表现出显著的优势。
表9 | 在硬性基准测试中MLA与MHA的比较。DeepSeek-V2表现出比MHA更好的性能,但需要显著更小的键值缓存量
如上图4所示,GQA的表现似乎不如MHA,而MLA提供了比MHA更好的建模性能,这很可能是DeepSeek团队选择MLA而非GQA的原因。(同样有趣的是,我们也很想看到MLA与GQA在“每个标记的KV缓存”节省方面的对比!)
在我们继续讨论下一个架构组件之前,总结一下这一部分,MLA是一种巧妙的技巧,可以在减少KV缓存内存使用的同时,甚至在建模性能方面略微超越MHA。
1.2 专家混合(MoE)
在DeepSeek中值得重点介绍的其他主要架构组件是其使用专家混合(MoE)层。虽然DeepSeek并未发明MoE,但今年它又重新流行起来,我们稍后将要介绍的许多架构也采用了MoE。
您可能已经熟悉MoE,但快速回顾一下可能会有所帮助。
MoE的核心思想是用多个专家层替换变换器块中的每个前馈模块,而这些专家层本身也是前馈模块。这意味着我们用多个前馈模块替换了单个前馈模块,如下图5所示。
Figure 5: An illustration of the Mixture-of-Experts (MoE) module in DeepSeek V3/R1 (right) compared to an LLM with a standard FeedForward block (left).
在变压器块内部的前馈块(如上图中的深灰色块所示)通常包含大量模型的总参数。(请注意,在大型语言模型中,变压器块会重复多次;以DeepSeek-V3为例,共重复了61次。)
因此,用多个前馈块替换单个前馈块(如在MoE设置中所做的)会大幅增加模型的总参数数量。然而,关键技巧是我们并不对每个标记使用(“激活”)所有专家。相反,路由器每次只为每个标记选择一小部分专家(为了节省时间,或者更确切地说是文章篇幅,我将在另一个时间详细讨论路由器。)
因为一次只有少数专家处于活跃状态,MoE模块通常被称为稀疏的,与总是使用完整参数集的密集模块形成对比。然而,通过MoE的大量总参数增加了大型语言模型的容量,这意味着它在训练过程中可以吸收更多知识。尽管如此,稀疏性保持了推理的效率,因为我们不会同时使用所有参数。
例如,DeepSeek-V3的每个MoE模块有256个专家,总共有6710亿个参数。然而在推理过程中,每次只有9个专家处于活跃状态(1个共享专家加上路由器选择的8个)。这意味着每次推理步骤只使用了370亿个参数,而不是全部的6710亿个。
DeepSeek-V3的MoE设计的一个显著特点是使用了一个共享专家。这是一个对每个标记始终活跃的专家。这个想法并不新颖,已在DeepSeek 2024 MoE和2022 DeepSpeedMoE论文中介绍过。
早期MoE:拥有更大但更少的专家,并且只激活少量专家(这里:2个)
细粒度MoE使用更多但更小的专家,并激活更多专家(这里4个)
具有共享专家的MoE也使用许多小专家,但增加了一个始终处于激活状态的共享专家。
Figure 6: An annotated figure from "DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models", https://arxiv.org/abs/2401.06066
在DeepSpeedMoE论文中首次指出了拥有共享专家的益处,他们发现与没有共享专家相比,这提高了整体建模性能。这很可能是因为常见或重复的模式不必由多个个体专家学习,这为他们学习更专业模式留下了更多空间。
1.3 DeepSeek总结
总结来说,DeepSeek-V3是一个庞大的6710亿参数模型,在发布时,其性能超越了其他开源权重模型,包括405B参数的Llama 3。尽管它更大,但由于采用了专家混合(MoE)架构,它在推理时间上更为高效,该架构每个标记仅激活一小部分(仅370亿)参数。
另一个关键区别特征是DeepSeek-V3使用了多头潜在注意力(MLA),而不是分组查询注意力(GQA)。MLA和GQA都是标准多头注意力(MHA)的高效推理替代方案,尤其是在使用键值缓存时。虽然MLA实现起来更复杂,但DeepSeek-V2论文中的一项研究表明,它的建模性能优于GQA。
2. OLMo 2
由非营利组织艾伦人工智能研究所开发的OLMo系列模型因其训练数据和代码的透明度以及相对详细的技术报告而值得注意。
虽然你可能不会在任何基准测试或排行榜的顶部找到OLMo模型,但它们相当干净,更重要的是,由于其透明度,它们是开发大型语言模型(LLMs)的优秀蓝图。
而OLMo模型因其透明性而受到欢迎,但它们的表现也不差。实际上,在1月份(在Llama 4、Gemma 3和Qwen 3之前)发布时,OLMo 2模型在计算与性能的帕累托前沿上,如下图7所示。
Figure 7: Modeling benchmark performance (higher is better) vs pre-training cost (FLOPs; lower is better) for different LLMs. This is an annotated figure from the OLMo 2 paper, https://arxiv.org/abs/2501.00656
正如本文前面提到的,我旨在仅关注LLM架构细节(而非训练或数据),以保持其长度在可管理范围内。那么,在OLMo2中有哪些有趣的架构设计选择呢?主要涉及规范化处理:RMSNorm层的放置以及添加QK规范化,我将在下文讨论。
另一件值得一提的事情是,OLMo 2仍然使用传统的多头注意力(MHA),而不是MLA或GQA。
2.1 规范化层放置
总体而言,OLMo 2在很大程度上遵循了原始GPT模型的架构,与其他当代大型语言模型相似。然而,也有一些值得注意的差异。让我们从规范化层开始。
与Llama、Gemma和大多数其他大型语言模型一样,OLMo 2也从LayerNorm切换到RMSNorm。
但由于RMSNorm已经过时(它基本上是LayerNorm的简化版本,具有较少的可训练参数),我将跳过RMSNorm与LayerNorm的讨论。(好奇的读者可以在我的GPT-2转Llama指南中找到RMSNorm代码实现。)
然而,讨论RMSNorm层的放置是值得的。原始的Transformer(“注意力是你所需要的”论文中提出的)将两个规范化层分别放置在Transformer模块中的注意力模块和前馈模块之后。
这也被称作后规范化(Post-LN)或后规范化(Post-Norm)。
GPT以及其后的大多数大型语言模型将规范化层放置在注意力模块和前馈模块之前,这被称作前规范化(Pre-LN)或前规范化(Pre-Norm)。下图展示了后规范化与前规范化的比较。
【技术名词解读】Deepseek-LLM技术报告配套名词解读
Figure 8: A comparison of Post-Norm, Pre-Norm, and OLMo 2's flavor of Post-Norm.
在2020年,熊等人展示了预层归一化(Pre-LN)能够在初始化时产生更稳定的梯度。此外,研究人员提到,即使没有经过仔细的学习率热身,预层归一化也能很好地工作,而学习率热身对于后层归一化(Post-LN)来说通常是一个关键工具。
我提到这一点的原因是,OLMo 2采用了一种后层归一化的形式(但使用了RMS范数而非层范数,因此我称之为后范数)。
在OLMo 2中,不是将归一化层放在注意力机制和前馈层之前,而是将它们放在后面,如图所示。然而,请注意,与原始的Transformer架构相比,归一化层仍在残差层(跳跃连接)内部。
那么,他们为什么要移动归一化层的位置呢?原因在于这有助于提高训练稳定性,如下图所示。
*Figure 9: A plot showing the training stability for Pre-Norm (like in GPT-2, Llama 3, and many others) versus OLMo 2's flavor of Post-Norm.*
不幸的是,这张图表显示了重新排序的结果以及QK-范数,后者是一个独立的概念。因此,很难判断归一化层重新排序自身贡献了多少。
2.2 QK-范数
由于前一节已经提到了QK-范数,而且我们稍后讨论的其他大型语言模型(LLM),如Gemma 2和Gemma 3,也使用QK-范数,让我们简要讨论一下这是什么。
QK-范数本质上又是一个RMS范数层。它位于多头注意力(MHA)模块内部,并在应用RoPE之前应用于查询(q)和键(k)。为了说明这一点,下面是我为从头开始实现的Qwen3所写的一个分组查询注意力(GQA)层的摘录(GQA中的QK范数应用类似于OLMo中的MHA):
class GroupedQueryAttention(nn.Module):
def __init__(
self, d_in, num_heads, num_kv_groups,
head_dim=None, qk_norm=False, dtype=None
):
# ...
ifqk_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)
# ApplyRoPE
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)
# ...
如前所述,结合Post-Norm,QK-Norm稳定了训练。请注意,QK-Norm并非由OLMo 2发明,而是可以追溯到2023年的缩放视觉变换器论文(https://arxiv.org/abs/2302.05442)。
2.3 OLMo 2 总结
简而言之,值得注意的OLMo 2架构设计决策主要是RMSNorm的位置安排:在注意力模块和前馈模块之后(一种Post-Norm变体),而不是之前使用RMSNorm,以及在注意力机制内部对查询和键添加RMSNorm(QK-Norm),这两者共同帮助稳定训练损失。
下图进一步并排比较了OLMo 2和Llama 3;正如人们所看到的,除了OLMo 2仍然使用传统的多头注意力(MHA)而非全局问答(GQA)之外,两者的架构相对相似。(然而,OLMo 2团队三个月后发布了一个使用GQA的32B变体。)
Figure 10: An architecture comparison between Llama 3 and OLMo 2.
3. Gemma3
谷歌的Gemma系列模型一直表现出色,我认为与其他热门模型(如 llama 系列)相比,它们总是有些被低估。
Gemma的一个显著特点是其相当大的词汇量(以更好地支持多种语言),以及更侧重于270亿参数规模(相对于80亿或700亿参数规模)。但请注意,Gemma2也有较小规模的版本:10亿、40亿和120亿参数。
270亿参数规模达到了一个相当好的平衡点:它比80亿参数规模的模型能力更强,但不像700亿参数规模的模型那样资源密集,在我的Mac Mini上本地运行得很好。
那么,Gemma3中还有什么有趣的地方呢?如前所述,像DeepSeek-V3/R1这样的其他模型采用专家混合(MoE)架构来在推理时降低内存需求,前提是模型大小固定。(MoE方法也被我们稍后要讨论的几个其他模型所使用。)
Gemma3采用了不同的“技巧”来降低计算成本,即滑动窗口注意力机制。
3.1 滑动窗口注意力
借助滑动窗口注意力(最初在2020年的LongFormer论文中提出,并且Gemma2也使用了该技术),Gemma3团队能够大幅减少键值缓存中的内存需求,如下图所示。
Figure 11: An annotated figure from Gemma 3 paper (https://arxiv.org/abs/2503.19786) showing the KV cache memory savings via sliding window attention.
那么,滑动窗口注意力是什么?如果我们把常规的自注意力机制看作是一种全局注意力机制,因为每个序列元素都可以访问其他每一个序列元素,那么我们可以把滑动窗口注意力看作是一种局部注意力,因为在这里我们限制了当前查询位置周围的上下文大小。如下图所示。
Figure 12: A comparison between regular attention (left) and sliding window attention (right).
请注意,滑动窗口注意力机制既可用于多头注意力(Multi-Head Attention),也可用于分组查询注意力(Grouped-Query Attention);Gemma 3 使用的是分组查询注意力。
如上所述,滑动窗口注意力也被称为局部注意力(loca/attention),因为局部窗口围绕当前查询位置并随之移动。相比之下,常规注意力是全局的,因为每个标记可以访问所有其他标记。
现在,如上所述,Gemma 2 的前身架构也使用了滑动窗口注意力。Gemma 3 的不同之处在于他们调整了全局(常规)和局部(滑动)注意力的比例。
例如,Gemma 2 使用了一种混合注意力机制,以 1:1 的比例结合了滑动窗口(局部)和全局注意力。每个标记可以关注一个包含 4k 个标记的附近上下文窗口。
在 Gemma 2 中,每隔一层使用滑动窗口注意力,而 Gemma 3 现在的比例是 5:1,意味着每 5 个滑动窗口(局部)注意力层只有 1 个完整的注意力层;此外,滑动窗口大小也从 4096(Gemma 2)减少到仅 1024(Gemma 3)。这使模型的重点转向更高效的局部计算。
根据他们的消融研究,如图所示,使用滑动窗口注意力对建模性能的影响最小。
Figure 13: An annotated figure from Gemma 3 paper (https://arxiv.org/abs/2503.19786) showing that sliding window attention has little to no impact on the LLM-generated output perplexity.
虽然滑动窗口注意力是Gemma 3架构最显著的特点,但作为对上一节OLMo 2的补充,我也想简要回顾一下规范化层的放置。
3.2 Gemma 3中的规范化层放置
有一个小而有趣的信息值得指出,那就是Gemma 3在其分组查询注意力模块周围同时使用RMSNorm进行预规范化和后规范化。
这与Gemma 2相似,但仍然值得一提,因为它与(1)原始变压器中使用的后规范化(“注意力就是你所需的一切”),(2)由GPT-2推广并在许多其他架构中使用的预规范化,以及(3)我们之前在OLMo 2中看到的后规范化版本不同。
Figure 14: An architecture comparison between OLMo2 and Gemma 3; note the additional normalization layers in Gemma 3.
我认为这种规范化层放置是一种相对直观的方法,因为它兼具了预规范化和后规范化的优点。依我看,增加一些规范化不会有什么坏处。在最坏的情况下,如果额外的规范化是多余的,这将通过冗余增加了一些低效性。不过在实践中,由于RMS规范化在大体上成本相对较低,所以这不应该有任何明显的影响。
3.3 Gemma3总结
Gemma3是一款性能良好的开源大型语言模型,在我看来,它在开源社区中有些被低估了。最有趣的部分在于使用滑动窗口注意力来提高效率(将来将其与MoE结合会很有趣)。
此外,Gemma3采用了独特的规范化层放置方式,在注意力机制和前馈模块之前和之后都放置了RMS规范化层。
3.4 附加内容:Gemma3n
在Gemma3发布几个月后,谷歌分享了Gemma3n,这是一个针对小型设备效率进行了优化的Gemma3模型,旨在能在手机上运行。
为了实现更好的效率,Gemma3n的一个变化是所谓的逐层嵌入(PLE)参数层。其核心思想是在GPU内存中仅保留模型参数的一个子集。特定于标记层的嵌入,如文本、音频和视觉模态的嵌入,则按需从CPU或SSD流式传输。
下图展示了PLE的内存节省情况,列出了一个标准Gemma3模型的54.4亿个参数。这可能指的是Gemma3的40亿参数变体。
Figure 15: An annotated figure from Google's Gemma 3n blog (https://developers.googleblog.com/en/introducing-gemma-3n/) illustrating the PLE memory savings.
5.44与40亿参数差异的原因是,谷歌在报告大型语言模型(LLM)的参数数量时有一种有趣的方式。他们通常会排除嵌入参数以使模型看起来更小,除了像这种情况,包含它们可以使得模型看起来更大。这并非谷歌独有,因为这种做法已成为该领域的普遍做法。
另一个有趣的技巧是MatFormer概念(Matryoshka Transformer的简称)。例如,Gemma 3n使用一个单一的共享LLM(Transformer)架构,可以切割成更小的、独立可用的模型。每个切片都经过训练,使其能够独立运作,因此在推理时,我们只需运行你需要的部分(而不是整个大型模型)。
4. Mistral Small 3.1
Mistral Small 3.1 24B于三月份发布,紧随Gemma 3之后,它在多个基准测试中(数学除外)的表现优于Gemma 3 27B,同时还更快。
Mistral Small 3.1相对于Gemma 3推理延迟更低的原因可能归功于其自定义的分词器,以及缩小键值缓存和层数。除此之外,它采用如下图所示的标准架构。
Figure 16: An architecture comparison between Gemma 3 27B and Mistral 3.1 Small 24B.
有趣的是,早期的Mistral模型曾使用滑动窗口注意力机制,但在Mistral Small 3.1中似乎放弃了这一做法。因此,由于Mistral使用的是常规的分组查询注意力(Grouped-Query Attention),而不是像Gemma 3中那样的带滑动窗口的分组查询注意力,可能因为能够使用更优化的代码(即FlashAttention)而节省了额外的推理计算资源。例如,我推测虽然滑动窗口注意力减少了内存使用,但并不一定会减少推理延迟,这正是Mistral Small 3.1所关注的。
5. Llama 4
本文早些时候对专家混合(MoE)的广泛介绍再次得到验证。Llama 4也采用了MoE方法,并且大体上遵循与DeepSeek-V3非常相似的相对标准架构,如下图所示。(Llama 4包括原生多模态支持,类似于Gemma和Mistral等模型。然而,由于本文聚焦于语言建模,我们只关注文本模型。)
Figure 17: An architecture comparison between DeepSeek V3 (671-billion parameters) and Llama 4 Maverick (400-billion parameters).
图17:DeepSeek V3(拥有6710亿参数)与Llama 4 Maverick(拥有4000亿参数)之间的架构对比。
尽管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设置,具有较少但更大的专家(每个有8192个隐藏单元的2个活跃专家),相比之下,DeepSeek-V3则有9个活跃专家(每个有2048个隐藏单元)。此外,DeepSeek在每个变换器块中都使用MoE层(前三个除外),而Llama 4则在每两个变换器块中交替使用MoE和密集模块。
鉴于架构之间存在许多细微差别,很难确定它们对最终模型性能的确切影响。然而,主要的结论是,到2025年,MoE架构的受欢迎程度显著上升。
6. Qwen3
Qwen团队持续提供高质量的开放权重大型语言模型。当我在2023年的NeurIPS会议上协助指导LLM效率挑战时,我记得获胜的顶尖解决方案都是基于Qwen2的。
现在,Qwen3是领先榜单上另一款成功的模型系列,适用于其各个规模类别。共有7个密集模型:0.6B、1.7B、4B、8B、14B和32B。还有2个MoE模型:30B-A3B和235B-A22B。
(顺便说一下,“Qwen3”中缺失的空格并非打字错误;我只是想保留Qwen开发者选择的原始拼写。)
6.1 Qwen3(Dense)
让我们先讨论一下密集模型的架构。截至本文撰写时,0.6B模型可能是目前最小的开源全权重模型。根据我的个人经验,鉴于其较小的体积,它的表现确实非常好。如果你打算在本地运行它,它具有很高的每秒令牌吞吐量以及较低的内存占用。更重要的是,由于其体积小,它在本地训练起来也很容易(出于教育目的)。
因此,对于我来说,Qwen3 0.6B已经取代Llama 3 1B用于大多数用途。下面展示了这两种架构的比较。
Figure 18: An architecture comparison between Qwen3 0.6B and Llama 3 1B; notice that Qwen3 is a deeper architecture with more layers, whereas Llama 3 is a wider architecture with more attention heads.
如果您对无需依赖外部第三方大型语言模型库的可读性强的Qwen3实现感兴趣,我最近从零开始用纯PyTorch实现了Qwen3。
上图中的计算性能数据基于我在A100 GPU上运行的从零开始的PyTorch实现。正如所见,Qwen3的内存占用较小,因为其架构本身较小,同时也使用了较小的隐藏层和较少的注意力头。上图中的计算性能数据基于我的从零开始的每秒PyTorch生成令牌数)。
6.2 Qwen3(MoE)
如前所述,Qwen3也有两种MoE变体:30B-A3B和235B-A22B。为什么有些架构,如Qwen3,会有常规(密集)和MoE(稀疏)两种变体呢?
正如本文开头所提到的,MoE变体有助于降低大型基础模型的推理成本。提供密集和MoE两种版本可以让用户根据他们的目标和限制灵活选择。
密集模型通常更易于微调、部署和优化,适用于各种硬件。
另一方面,MoE模型则针对推理扩展进行了优化。例如,在固定的推理预算下,它们可以在不相应增加推理成本的情况下实现更高的整体模型容量(即训练期间由于模型更大而吸收的知识)。
通过发布这两种类型,Qwen3系列可以支持更广泛的使用场景:密集模型用于鲁棒性、简单性和微调;MoE模型用于大规模高效服务。
为了总结这一部分,让我们看看Qwen3 235B-A22B(注意A22B代表“22B个活动参数”)到DeepSeek-V3,后者的活动参数几乎是前者的两倍(370亿个)。
Figure 19: An architecture comparison between DeepSeek-V3 and 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仍然保留他们的共享专家。)
7. SmolLM3
SmolLM3可能没有像本文中涵盖的其他大型语言模型那样受欢迎,但我觉得将其作为一个有趣的模型包括进来还是很好的,因为它在相对较小且方便的三十亿参数模型大小下提供了非常好的建模性能,该模型大小介于17亿和40亿参数的Qwen3模型之间,如下图所示。
此外,它还分享了许多训练细节,类似于OLMo,这是罕见的,总是受到欢迎的!
Figure 20: An annotated figure from the SmolLM3 announcement post, https://huggingface.co/blog/smollm3, comparing the SmolLM3 win rate to Qwen3 1.7B and 4B as well as Llama 3 3B and Gemma 3 4B.
如下方的架构比较图所示,SmolLM3 架构看起来相当标准。不过,也许最有趣的方面是它使用了 NoPE(无位置嵌入)。
Figure 21: A side-by-side architecture comparison between Qwen3 4B and SmolLM3 3B.
7.1 无位置嵌入(NoPE)
在大型语言模型(LLM)的背景下,无位置嵌入是一个较旧的概念,可以追溯到2023年的一篇论文《位置编码对Transformer中长度泛化的影响》。该概念旨在移除显式的位置信息注入(如通过早期GPT架构中的经典绝对位置嵌入层或现今的RoPE)。
在基于变压器的LLM中,位置编码通常必不可少,因为自注意力机制独立于顺序处理标记。绝对位置嵌入通过添加一个额外的嵌入层来解决这一问题,该层向标记嵌入中添加信息。
Figure 22: A modified figure from my Build A Large Language Model (From Scratch) book
另一方面,RoPE 通过相对于它们的标记位置旋转查询向量和键向量来解决这个问题。然而,在 NoPE 层中,根本不会添加此类位置信号:不是固定的、不是学习的、也不是相对的。什么都没有。尽管没有位置嵌入,但由于因果注意力掩码,模型仍然知道哪些标记在前。这个掩码防止每个标记关注未来的标记。因此,位于位置 t 的标记只能看到位置 ≤t 的标记,这样就保留了自回归排序。所以,虽然没有明确添加位置信息,但在模型的结构中仍然隐含有一种方向感,而在常规基于梯度下降的训练中,大型语言模型(LLM)如果发现它有利于优化目标,就能够学会利用它。(欲了解更多信息,请查看 NoPE 论文中的定理。)总的来说,NoPE 论文不仅发现不需要注入位置信息,而且还发现 NoPE 具有更好的长度泛化能力,这意味着随着序列长度的增加,大型语言模型的答题表现下降得较少,如下图所示。
Figure 23: An annotated figure from the NoPE paper (https://arxiv.org/abs/2305.19466) showing better length generalization with NoPE.
8. Kimi 2
Kimi 2 最近在人工智能社区引起了轰动,因为它是一个开放权重模型,且性能极为出色。根据基准测试,它的表现与谷歌的Gemini、Anthropic的Claude以及OpenAI的ChatGPT等最佳专有模型不相上下。
值得注意的是,它使用了相对较新的Muon优化器变体,而非AdamW。据我所知,这是首次将Muon用于任何如此规模的量产模型(此前,仅被证明可以扩展到160亿参数规模)。这导致了非常漂亮的训练损失曲线,可能帮助该模型在上述基准测试中脱颖而出。
虽然人们评论说损失异常平滑(由于缺乏尖峰),但我认为它并非异常平滑(例如,请参见下图中的OLMo 2损失曲线;此外,梯度的L2范数可能是跟踪训练稳定性的更好指标)。然而,值得注意的是损失曲线的衰减情况非常好。
然而,正如本文引言中所提到的,训练方法论是另一个话题。
该模型本身有1万亿参数,确实令人印象深刻。
截至本文撰写时,它可能是这一代最大的语言模型(考虑到Llama 4 Behemoth尚未发布、专有语言模型不计入以及谷歌的1.6万亿Switch Transformer是采用不同代的编码器-解码器架构)。
同时,它也回到了起点,因为Kimi 2使用了我们在文章开头提到的DeepSeek-V3架构,只不过他们将模型做得更大了,如下图所示。
Figure 25: An architecture comparison between DeepSeek V3 and Kimi K2.
如上图所示,Kimi 2.5基本上与DeepSeek V3相同,除了它在MoE模块中使用了更多专家,在多头潜在注意力(MLA)模块中使用了较少的头。
Kimi 2并非毫无缘由地出现。早期在《用大型语言模型扩展强化学习》论文《Kimi k1.5》中讨论的Kimi 1.5模型也令人印象深刻。然而,它运气不佳,DeepSeek R1模型的论文恰好在同一天,即1月22日发布。而且据我所知,Kimi 1.5的权重从未公开分享。
因此,很可能Kimi K2团队吸取了这些教训,并在DeepSeek R2发布之前,将Kimi K2作为一个开放权重模型公开。截至本文撰写时,Kimi K2是最令人印象深刻的开放权重模型。
一、大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K(数据来源:BOSS直聘报告)
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
二、如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具 2️⃣ RAG系统:让大模型精准输出行业知识 3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你: ✔️ 大厂内部LLM落地手册(含58个真实案例) ✔️ 提示词设计模板库(覆盖12大应用场景) ✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
-
大模型 AI 能干什么?
-
大模型是怎样获得「智能」的?
-
用好 AI 的核心心法
-
大模型应用业务架构
-
大模型应用技术架构
-
代码示例:向 GPT-3.5 灌入新知识
-
提示工程的意义和核心思想
-
Prompt 典型构成
-
指令调优方法论
-
思维链和思维树
-
Prompt 攻击和防范
-
…
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
-
为什么要做 RAG
-
搭建一个简单的 ChatPDF
-
检索的基础概念
-
什么是向量表示(Embeddings)
-
向量数据库与向量检索
-
基于向量检索的 RAG
-
搭建 RAG 系统的扩展知识
-
混合检索与 RAG-Fusion 简介
-
向量模型本地部署
-
…
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
-
为什么要做 RAG
-
什么是模型
-
什么是模型训练
-
求解器 & 损失函数简介
-
小实验2:手写一个简单的神经网络并训练它
-
什么是训练/预训练/微调/轻量化微调
-
Transformer结构简介
-
轻量化微调
-
实验数据集的构建
-
…
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
-
硬件选型
-
带你了解全球大模型
-
使用国产大模型服务
-
搭建 OpenAI 代理
-
热身:基于阿里云 PAI 部署 Stable Diffusion
-
在本地计算机运行大模型
-
大模型的私有化部署
-
基于 vLLM 部署大模型
-
案例:如何优雅地在阿里云私有部署开源大模型
-
部署一套开源 LLM 项目
-
内容安全
-
互联网信息服务算法备案
-
…
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)