时间:2025-08-03 16:24 作者:蛮荒血兔
万亿参数狂欢!一文刷爆2025年七大顶流大模型架构
新智元报道
编辑:英智
【新智元导读】从GPT-2到DeepSeek-V3和Kimi K2,架构看似未变,却藏着哪些微妙升级?本文深入剖析2025年顶级开源模型的创新技术,揭示滑动窗口注意力、MoE和NoPE如何重塑效率与性能。
从最初的GPT架构问世以来,已经过去七年了。
回顾2019年GPT-2,再看2024-2025年的DeepSeek-V3和Llama 4,你会发现,这些模型的结构依然惊人地相似。
当然,位置嵌入已从绝对位置编码演变为旋转位置编码(RoPE),多头注意力(Multi-Head Attention)大多被分组查询注意力(Grouped-Query Attention)取代,更高效的SwiGLU激活函数也逐渐取代了GELU。
但在这些细微改进之下,我们真的见证了突破性的变化吗?还是只是在打磨相同的架构?
图1 本文提到的模型架构
本文没有聚焦于基准测试性能或训练算法,而是关注当今旗舰开源模型的架构发展。
研究这些架构本身的结构变化仍然具有很大价值,可以追踪2025年LLM研究者的最新动态。
DeepSeek V3/R1
DeepSeek R1在2025年1月发布时引起了巨大反响。
R1是一个基于DeepSeek V3构建的推理模型,DeepSeek V3于2024年12月首次亮相。
本节重点介绍DeepSeek V3中引入的两种关键架构技术,这显著提升了计算效率:
多头潜在注意力
先从分组查询注意力(Grouped-Query Attention, GQA)说起。
近年来,GQA已成为替代多头注意力(Multi-Head Attention, MHA)的新标准,因为在计算和参数效率上表现更优。
传统的MHA中,每个注意力头都有自己独立的键和值。
而GQA为了降低内存占用,会将多个注意力头分组,让它们共享相同的键和值投影。
举个例子(如下图2所示),假如有2个键-值组和4个注意力头,那么头1和头2会共享一组键和值,头3和头4共享另一组。
这样就减少了键和值的计算总量,从而降低了内存使用量,提高了效率。
根据消融研究,这种方式在不明显影响模型性能的情况下实现了更高的效率。
图2 MHA与GQA的比较,组大小为2,其中两个查询共享一个键值对
GQA 的核心思想是通过让多个查询头共享键和值来减少键和值头的数量。这带来了两个好处:
降低了模型的参数量;
推理过程中减少了键和值张量的内存带宽使用,因为需要存储和从键值缓存中检索的键和值更少。
虽然GQA主要是为了提升MHA的计算效率,但消融研究表明,GQA在语言模型性能上与标准的MHA表现相当。
多头潜在注意力提供了一种不同的内存节省策略,尤其适合与键-值缓存搭配使用。
与GQA通过共享键和值头不同,MLA的方法是将键和值张量压缩到一个低维空间,然后再存储到键值缓存中。
在推理时,这些压缩的张量会在使用前被投影回原始尺寸,如图3所示。
虽然会增加一次额外的矩阵乘法,但显著降低了内存使用量。
图3 MLA工作流程(用于DeepSeekV3和R1)与常规MHA的比较
顺便提一句,查询在训练时也会被压缩,但在推理时不会。
MLA并不是DeepSeek V3首创的技术,它的前身DeepSeek-V2就已经引入了这种技术。
此外,DeepSeek-V2论文中包含了一些有趣的消融研究,解释了为什么DeepSeek团队选择MLA而不是GQA。
图4 DeepSeek-V2论文中的表格,来自https://arxiv.org/abs/2405.04434
如图所示,GQA的表现似乎不如MHA,而MLA在建模性能上优于MHA。
MLA是一种能减少键值缓存的内存使用量的技巧,同时在建模性能上略胜MHA一筹。
专家混合模型(MoE)
DeepSeek的另一个值得关注的架构组件是其使用的专家混合(Mixture-of-Experts, MoE)层。
MoE的核心思想是将Transformer中的每个前馈网络(FeedForward)模块替换为多个专家层,而每个专家层本身也是一个前馈网络模块。
简单来说,就是用多个前馈网络块替换单个前馈网络块,如下图所示。
图5 DeepSeek V3/R1中的MoE模块(右)与标准前馈网络模块(左)
因此,用多个前馈网络模块替换单一前馈网络模块,会显著增加模型的总参数量。
关键的技巧在于,不会为每个token激活所有专家。相反,一个router会为每个token选择一小部分专家。
由于每次只激活少数专家,MoE模块通常被称为「稀疏」模块。
通过MoE增加的大量总参数提升了模型的容量,这意味着模型在训练时可以吸收更多知识。
而稀疏性则保证了推理的高效,因为不会同时使用所有参数。
例如,DeepSeek-V3每个MoE模块有256个专家,总计671B参数。但在推理过程中,每次只激活9个专家。
这意味着每次推理步骤只使用37B参数,而不是全部参数。
DeepSeek-V3的MoE设计中一个特点是使用了一个共享专家。这个共享专家对每个token始终保持激活。
图6 来自DeepSeekMoE论文,https://arxiv.org/abs/2401.06066
研究发现,与没有共享专家的情况相比,共享专家能提升整体建模性能。
DeepSeek-V3是一个拥有671B参数的超大规模模型,在发布时超越了其他开源模型,包括405B参数的Llama 3。
尽管参数量巨大,但得益于MoE架构,DeepSeek-V3在推理时的效率非常高,每个token仅激活一小部分参数。
另一个关键的区别是DeepSeek-V3使用了多头潜在注意力(MLA)而非分组查询注意力(GQA)。
MLA和GQA都是比标准多头注意力(MHA)更高效的替代方案,尤其是在使用键值缓存时。
尽管MLA的实现更复杂,但DeepSeek-V2论文中的研究表明,MLA的建模性能优于GQA。
Kimi 2
Kimi 2最近在AI社区引发了巨大反响,因为它是一个性能卓越的开源权重模型。
根据基准测试,Kimi 2的表现可与顶尖模型(如Gemini、Claude和ChatGPT)相媲美。
优化器创新:Muon而非AdamW
一个值得注意的亮点是Kimi K2使用了一种相对较新的优化器Muon的变体,而非业界标准的AdamW。
这是Muon首次在如此大规模的生产模型中取代AdamW。
这带来了非常平滑的训练损失曲线,这很可能帮助Kimi K2在上述基准测试中名列前茅。
Kimi K2模型拥有1万亿个参数,规模令人震撼。
Kimi K2的出现并非偶然,它基于本文开头讨论的DeepSeek-V3架构,只是规模更大,如下图所示。
图7 DeepSeek V3与Kimi K2的架构对比
Kimi K2的架构与DeepSeek V3基本相同,区别在于它在专家混合(MoE)模块中使用了更多的专家,并在多头潜在注意力(MLA)模块中减少了注意力头的数量。
Kimi K2并非横空出世。此前的 Kimi 1.5模型也表现不俗。
然而,Kimi 1.5不幸与DeepSeek R1的论文在同一天发布。
因此,Kimi K2团队很可能吸取了这些教训,在DeepSeek R2发布之前,将Kimi K2作为开源权重模型发布。
截至本文撰写时,Kimi K2是最令人印象深刻的开源权重模型。
Qwen3
Qwen团队始终在提供高质量的开源LLM,位列排行榜前列。
Qwen3包括7个密集模型:0.6B、1.7B、4B、8B、14B和32B,以及2个专家混合模型:30B-A3B和235B-A22B。
Qwen3(Dense)
Qwen3 0.6B模型可能是当前一代开源模型中参数量最小的。
尽管规模小,但模型性能非常出色。如果在本地运行,它具有很高的token/秒吞吐量和低内存占用。
此外,由于其小规模,它也非常适合本地训练(例如用于教育目的)。
因此,Qwen3 0.6B已经取代了Llama 3 1B,成为大多数用途的首选模型。
以下是这两种架构的对比图。
图8 Qwen3 0.6B与Llama 3 1B的架构对比
Qwen3整体架构较小,隐藏层更小,注意力头更少,因此内存占用较小。
然而,它使用了比Llama 3更多的Transformer模块,这导致运行速度较慢(生成token/秒的速度较低)。
Qwen3(MoE)
Qwen3还推出了两种专家混合模型变体:30B-A3B和235B-A22B。
MoE变体有助于降低大模型的推理成本,针对推理的扩展性进行了优化。
在固定的推理预算下,MoE模型可以实现更高的模型容量,而不会成比例增加推理成本。
通过同时发布这两种类型的模型,Qwen3系列能够支持更广泛的用例:密集模型适用于稳健性、简单性和微调,而MoE模型则适合大规模高效推理。
图9 DeepSeek-V3与Qwen3 235B-A22B的架构对比
Qwen3模型放弃了使用共享专家。团队没有透露放弃共享专家的具体原因。
OLMo 2
由非营利组织Allen人工智能研究所开发的OLMo系列模型,因其在训练数据和代码的透明度而备受关注。
OLMo模型因透明度而广受欢迎,它们的性能也并不差。
1月份发布时,OLMo 2在计算成本与性能的Pareto frontier上表现突出,如图所示。
图10 不同大模型的建模基准性能与预训练成本的对比,来自OLMo 2论文 https://arxiv.org/abs/2501.00656
OLMo 2有哪些有趣的架构设计呢?
主要集中在normalization:RMSNorm层的位置以及新增的QK-Norm。
规范化层的位置
OLMo 2的架构在很大程度上沿袭了GPT,与其他当代LLM相似。
与Llama、Gemma一样,OLMo 2从LayerNorm切换到了RMSNorm。
不过,RMSNorm层的位置值得一提。
在原始Transformer中,两个规范化层分别被放置在注意力模块和前馈网络模块之后。这种方式被称为后规范化。
GPT以及之后的大多数LLM将规范化层放在注意力模块和前馈网络模块之前,这种方式被称为前规范化。
图11 后规范化、前规范化以及OLMo 2版本的后规范化的对比
前规范化在初始化时能产生更稳定的梯度。
此外,前规范化甚至在没有精心设计的学习率预热(learning rate warm-up)的情况下也能表现良好,学习率预热对后规范化来说是至关重要的工具。
OLMo 2采用了一种后规范化的形式(但使用的是RMSNorm而不是LayerNorm,因此称之为Post-Norm)。
在OLMo 2中,规范化层不再放在注意力模块和前馈网络模块之前,而是放在之后。
与原始Transformer不同的是,OLMo 2的规范化层仍然位于残差层内部。
那么,为什么要改变规范化层的位置呢?原因在于这有助于提高训练稳定性。
图12 前规范化(如GPT-2、Llama 3)与OLMo 2的后规范化的训练稳定性对比图
遗憾的是,这同时展示了规范化层重新排列和QK-Norm的效果,因此很难单独判断规范化层位置调整的具体贡献。
QK-Norm
QK-Norm实际上是另一个RMSNorm层。
它被放置在多头注意力(MHA)模块内部,在应用旋转位置编码(RoPE)之前,对查询和键进行规范化。
以下是为Qwen3从头实现的分组查询注意力(GQA)层的代码片段:
class GroupedQueryAttention(nn.Module):
def __init__(
self, d_in, num_heads, num_kv_groups,
head_dim=None, qk_norm=False, dtype=None
):
# ...
if qk_norm:
self.q_norm = RMSNorm(head_dim, eps=1e-6)
self.k_norm = RMSNorm(head_dim, eps=1e-6)
else:
self.q_norm = self.k_norm = None
def forward(self, x, mask, cos, sin):
b, num_tokens, _ = x.shape
# Apply projections
queries = self.W_query(x)
keys = self.W_key(x)
values = self.W_value(x)
# ...
# Optional normalization
if self.q_norm:
queries = self.q_norm(queries)
if self.k_norm:
keys = self.k_norm(keys)
# Apply RoPE
queries = apply_rope(queries, cos, sin)
keys = apply_rope(keys, cos, sin)
# Expand K and V to match number of heads
keys = keys.repeat_interleave(self.group_size, dim=1)
values = values.repeat_interleave(self.group_size, dim=1)
# Attention
attn_scores = queries @ keys.transpose(2, 3)
# ...
QK-Norm结合后规范化能稳定训练过程。
OLMo 2的亮点主要集中在RMSNorm的位置调整:将RMSNorm放置在注意力模块和前馈网络模块之后,以及在注意力机制中对查询和键添加RMSNorm(即QK-Norm)。
这两者结合有助于稳定训练过程中的损失,下图进一步对比了OLMo 2和Llama 3的架构。
除了OLMo 2仍然使用传统的多头注意力(MHA)而非分组查询注意力(GQA)外,两者的架构相似。
图13 Llama 3与OLMo 2的架构对比
Gemma 3
与Llama等热门模型相比,谷歌Gemma似乎被低估了。
Gemma的显著特点是其超大的词汇量,以及对27B模型的特别重视。
Gemma 3也提供了更小规模的版本:1B、4B和12B。
27B模型恰好达到了一个非常理想的平衡点:它的能力远超8B模型,但又不像70B模型那样需要大量计算资源。在Mac Mini上运行27B模型完全没有问题。
Gemma 3还有什么有趣的地方呢?
正如之前讨论的,DeepSeek-V3/R1采用了专家混合架构,通过推理时只激活部分参数来降低内存需求。
Gemma 3则使用了另一种方法来降低计算成本,即滑动窗口注意力(sliding window attention)。
滑动窗口注意力
滑动窗口注意力让Gemma 3团队大幅降低了键值缓存的内存需求,如下图所示。
图14 Gemma 3论文(https://arxiv.org/abs/2503.19786)通过滑动窗口注意力实现的键值缓存内存节省
如果把常规的自注意力(self-attention)看作一种全局注意力机制(因为每个序列元素可以访问所有其他序列元素)。
那么滑动窗口注意力可以看作一种局部注意力机制,它限制了当前查询位置周围的上下文范围。
图15 常规注意力(左)与滑动窗口注意力(右)的对比
滑动窗口注意力可以与多头注意力(MHA)和分组查询注意力(GQA)一起使用;Gemma 3使用的是分组查询注意力。
如上所述,滑动窗口注意力也被称为局部注意力,因为局部窗口会围绕当前查询位置并随其移动。
相比之下,常规注意力是全局的,因为每个token都可以访问所有其他token。
Gemma 2也已经使用了滑动窗口注意力。
Gemma 3的不同之处在于调整了全局注意力(常规注意力)和局部注意力(滑动窗口)的比例。
Gemma 2使用了一种混合注意力机制,将滑动窗口(局部)注意力和全局注意力以1:1的比例结合,每个token可以关注附近4096个token的上下文窗口。
在Gemma 3中,这一比例调整为5:1,即每5个滑动窗口(局部)注意力层才有一个全局注意力层;此外,滑动窗口的大小从Gemma 2的4096缩小到Gemma 3的1024。
这使得模型更专注于高效的局部计算。
根据消融研究,使用滑动窗口注意力对模型性能的影响微乎其微,如图所示。
图16 Gemma 3论文(https://arxiv.org/abs/2503.19786)显示滑动窗口注意力对模型输出的困惑度(perplexity)几乎没有影响
Gemma3规范化层位置
Gemma 3在其分组查询注意力(GQA)模块周围同时使用了前规范化和后规范化的RMSNorm设置。
这与Gemma 2的做法类似,但仍值得强调,因为它与以下情况不同:
GPT-2推广并被许多后续架构采用的前规范化(Pre-Norm);
之前提到的OLMo 2中使用的后规范化变体。
图17 OLMo 2与Gemma 3的架构对比;注意Gemma 3中额外的规范化层
Gemma 3是一款性能优异的开源LLM,它在开源社区中有些被低估。
最引人注目的是使用滑动窗口注意力来提高效率(未来与专家混合模型MoE结合可能会很有趣)。
此外,Gemma 3在规范化层的位置上也有独特的设计,在注意力模块和前馈网络模块前后都放置了RMSNorm层。
Gemma 3n
Gemma 3发布几个月后,谷歌推出了Gemma 3n,这是针对小型设备(如手机)优化的模型。
为了提升效率,Gemma 3n引入的一项变化是所谓的逐层嵌入(Per-Layer Embedding, PLE)参数层。
其核心思想是将模型的一部分参数保留在GPU内存中,而特定于token层的嵌入(例如文本、音频和视觉模态的嵌入)则根据需要从CPU或SSD流式传输。
下图展示了PLE的内存节省效果。
图18 谷歌Gemma 3n博客(https://developers.googleblog.com/en/introducing-gemma-3n/)
另一个有趣的技巧是MatFormer。
例如,Gemma 3n使用单一的共享大型语言模型(Transformer)架构,可以将其切片为更小的、独立可用的模型。
每个切片都经过训练可以独立运行,因此在推理时,可以只运行所需的切片(而不是整个大模型)。
Mistral Small 3.1
Mistral Small 3.1是继Gemma 3之后于3月发布的一款模型,拥有24B参数。
它在多项基准测试中超越了Gemma 3 27B,除了数学任务外表现更优,同时推理速度更快。
Mistral Small 3.1推理延迟较低的原因可能包括:
定制分词器(Tokenizer):优化的分词器可能提高了处理效率。
减少KV缓存和层数:通过缩小键值缓存(KV cache)和模型层数,降低了计算和内存需求。
标准架构:如下图所示,Mistral Small 3.1采用了较为常规的架构设计。
图19 Gemma 3 27B与Mistral Small 3.1 24B的架构对比
早期Mistral模型曾使用滑动窗口注意力,但Mistral Small 3.1中似乎放弃了这一机制。
Mistral Small 3.1使用的是常规的分组查询注意力,而不是像Gemma 3那样的带滑动窗口的GQA。
这可能带来额外的推理计算节省,因为可以利用更优化的代码。
虽然滑动窗口注意力可以减少内存使用量,但并不一定能降低推理延迟,而Mistral Small 3.1的重点正是优化推理延迟。
Llama 4
Llama 4同样采用了MoE架构,其整体架构与DeepSeek-V3非常相似,如下图所示。
图20 DeepSeek V3(671B参数)与Llama 4 Maverick(400B参数)的架构对比
虽然Llama 4 Maverick的整体架构看起来与DeepSeek-V3非常相似,但仍有一些值得注意的差异。
Llama 4沿用了其前身的分组查询注意力(GQA),而DeepSeek-V3使用了多头潜在注意力(MLA)。
DeepSeek-V3和Llama 4 Maverick都是超大规模架构,但DeepSeek-V3的总参数量比Llama 4大约多68%。
然而,在活跃参数方面,DeepSeek-V3每次推理使用37B个参数,是Llama 4 Maverick(17B活跃参数)的两倍多。
Llama 4 Maverick使用了更经典的MoE设置,专家数量较少但规模较大(每次激活2个专家,每个专家的隐藏层大小为8192)。
而DeepSeek-V3的MoE设置则有更多但较小的专家(每次激活9个专家,每个专家的隐藏层大小为2048)。
此外,DeepSeek-V3在每个Transformer中都使用了MoE层,而Llama 4则在每隔一个Transformer中交替使用MoE和密集模块。
参考资料:
https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison
2、我国连续12年保持全球最大工业机器人市场,2013年全球最大的工业机器人市场
3、50岁以上,牙龈条件不好,会日常性塞牙,更麻烦的是各种感染,50岁的人牙龈萎缩厉害怎么办