
8种LLM架构设计大比拼:从 DeepSeek-V3 到 Kimi K2,究竟有啥不同 精华
自从GPT-2(2019)开启Decoder-only模型以来,到今天DeepSeek-V3和Llama 4(2024-2025),大家会觉得这些模型在结构上仍然相似。 当然,位置嵌入已经从绝对到旋转(RoPE)发展,多头注意力在很大程度上让位于Grouped-Query Attention,更高效的SwiGLU已经取代了像GELU这样的激活函数。
接下来,将重点介绍一下,模型的变迁
1.DeepSeek V3/R1 号
DeepSeek R1在2025年1月发布时产生了巨大影响。DeepSeek R1 是一个基于 DeepSeek V3 架构构建的推理模型,该模型于 2024 年 12 月推出。
虽然我们专注于2025年发布的架构,但我们认为包括DeepSeek V3是合理的,因为它在2025年推出DeepSeek R1后才获得广泛关注和采用。
在本节中,我将重点介绍DeepSeek V3中引入的两种关键架构技术,这些技术提高了其计算效率,并将其与许多其他LLM区分开来:
- 多头潜在注意力(MLA)
- 混合专家(MoE)
1.1 多头潜在注意力(MLA)
在讨论多头潜在注意力(MLA)之前,先简要地回顾一下一些背景,为什么使用它。让我们从Grouped-Query Attention(GQA)开始,它已成为近年来多头注意力(MHA)的更计算和参数效率替代品的新标准替代品。
这里有一个简短的GQA摘要。与MHA不同,每个头部都有自己的键和值集,以减少内存使用,GQA对多个头进行分组,以共享相同的键和值预测。
例如,如下图2所示,如果有2个键值组和4个注意头,则头1和2可能共享一组键和值,而头3和4共享另一组键和值。这减少了密钥和值计算的总数,从而降低内存使用率和效率提高(根据消融研究,在不明显影响建模性能的情况下)。
IMG
在这里,组大小为2,其中一个键和值对在2个查询之间共享。
因此,GQA背后的核心思想是通过跨多个查询头共享key和value header来减少key和value的数量。 这么做:(1)降低了模型的参数计数,(2)在推理过程中降低了键和值张量的内存带宽使用,因为需要从KV缓存中存储和检索更少的键和值。
现在,多头潜在注意力(MLA)提供了一种不同的内存保存策略,与KV缓存特别匹配。MLA 不再像 GQA 那样共享key和value header,而是将键和值张量压缩到低维空间中,然后将它们存储在 KV 缓存中。
在推理时,这些压缩张量在被使用之前被投射回其原始大小,如下图所示。这增加了额外的矩阵乘法,但减少了内存的使用。
IMG
备注:查询也被压缩,但仅在训练期间,而不是推理。
顺便说一句,MLA在DeepSeek V3中并不新鲜,DeepSeek-V2 predecessor因为它的DeepSeek-V2前身也使用(甚至引入)它。此外,V2论文包含一些有趣的消融研究,可以解释为什么DeepSeek团队选择MLA而不是GQA。
如上图所示,GQA似乎比MHA表现更差,而MLA提供比MHA更好的建模性能,这可能是DeepSeek团队选择MLA而不是GQA的原因。MLA是一个巧妙的技巧,可以减少KV缓存内存的使用,同时在建模性能方面甚至略显优于MHA。
1.2 混合专家(MoE)
DeepSeek中值得强调的另一个主要建筑组件是它使用混合专家(MoE)层。
MoE核心思想是用多个专家层替换transformer块中的每个FeedForward模块,其中每个专家层也是FeedForward模块。这意味着我们将单个 FeedForward 块替换为多个 FeedForward 块,如下图 所示。
transformer块内的FeedForward块(如上图中的暗灰色块)通常包含大量模型的总参数。(请注意transformer块是FeedForward块,在LLM中重复多次;在DeepSeek-V3的情况下,61次。
因此,用多个FeedForward 块替换单个FeedForward 块(如在 MoE 设置中所做的那样)可大大增加模型的总参数计数。然而,关键的诀窍是,不使用(“激活”)所有专家的token。相反,路由器每个令牌只选择一小部分专家。
由于只有少数专家一次处于活动状态,因此MoE模块通常被称为稀疏模块,dense密集模块始终使用完整的参数集。然而,通过MoE的大量参数增加了LLM的容量,这意味着它可以在训练期间占用更多的知识。然而,稀疏性保持推理效率,因此不会同时使用所有参数。
例如,DeepSeek-V3每个MoE模块有256名专家,共6710亿个参数。然而,在推理过程中,一次只有9名专家处于活动状态(1个共享专家加上路由器选择的8个)。这意味着每个推理步骤仅使用370亿个参数,而所有6710亿个参数。
DeepSeek-V3的MoE设计的一个显着特点是使用共享专家。这是一个专家,总是活跃于每一个token。这个想法并不新鲜,已经在DeepSeek 2024MoE和2022 DeepSpeedMoE论文中引入。
DeepSpeedMoE paper拥有共享专家的好处在DeepSpeedMoE论文中首次指出,他们发现与没有共享专家相比,它提高了整体建模性能。这可能是因为常见的或重复的模式不必由多个专家学习,这使他们有更多的学习更专业模式的空间。
1.3 DeepSeek 总结
DeepSeek-V3是一款6710亿参数的庞大型号,在发布时优于其他开放重量型车型,包括405B Llama 3。尽管规模更大,但由于其混合专家(MoE)架构,它在推理时间效率要高得多,该架构仅激活每个令牌的一小部分(仅37B)参数。
另一个关键特征是DeepSeek-V3使用多头潜在注意力(MLA)而不是分组查询注意力(GQA)。MLA和GQA都是标准多头注意(MHA)的推理效率替代品,特别是在使用KV缓存时。虽然MLA的实施更为复杂,但DeepSeek-V2论文中的一项研究表明,它比GQA提供了更好的建模性能。
2.OLMo 2
OLMo系列模型因为它在训练数据和代码方面具有透明度,以及相对详细的技术报告。
虽然可能不会在任何基准或排行榜的顶部找到OLMo模型,但它们非常干净,更重要的是,由于其透明度,它们是开发LLM的绝佳蓝图。
OLMo2中有趣设计是什么?
它主要归结为正常化:RMSNorm层的放置以及添加QK-norm
备注:OLMo 2仍然使用传统的多头注意(MHA)而不是MLA或GQA。
2.1 规范化层放置
OLMo 2在很大程度上遵循原始GPT模型的架构。让我们从规范化层开始。
与Llama,Gemma和大多数其他LLM类似,OLMo 2从LayerNorm切换到RMSNorm。
RMSNorm基本上是LayerNorm的简化版本,可训练参数较少。 然而,值得讨论RMSNorm层的放置。原始transformer(Attention is all you need替换了两层正则层,分别将两个规范层放在transformer block中的的注意力模块和FeedForward模块之后。这也被称为Post-LN或Post-Norm。
GPT和大多数其他LLM在注意和FeedForward模块之前放置了归化层前,这被称为Pre-LN或Pre-Norm。后规范和前规范之间的比较如下图所示。
IMG
Pre-LN在初始化时会产生更多表现良好的梯度。此外,研究人员提到,Pre-LN甚至在没有仔细学习率热身的情况下,也工作得很好。
OLMo 2采用了一种Post-LN形式(但使用RMSNorm而不是LayerNorm,所以我称之为Post-Norm_)。
在 OLMo 2 中,它们不是将归化层放在注意层和 FeedForward 层之前,而是将它们放在后面,如上图所示。但是,请注意,与原始transormer架构相反,归一化层仍然位于残差层(跳过连接)内。
那么,他们为什么要移动归一化层的位置呢?原因是它有助于训练稳定性,如下图所示。
IMG
不幸的是,这个数字显示了与QK-Norm一起重新排序的结果,这是一个单独的概念。因此,很难说归一化层重新排序本身贡献了多少。
2.2 QK-规范
Gemma 2和Gemma 3,中使用QK-norm。
QK-Norm本质上是另一个RMSNorm层。它放置在多头注意(MHA)模块中,并在应用RoPE之前应用于查询(q)和键(k)。 与Post-Norm一起,QK-Norm稳定了训练。请注意,QK-Norm不是由OLMo 2发明的,而是追溯到2023年Scaling Vision Transformers论文。
2.3 OLMo 2 总结
简而言之,的OLMo 2架构设计决策主要是RMSNorm位置:RMSNorm不是在注意力和FeedForward模块之前(后规范的一种),而是在之后,以及为注意力机制(QK-Norm)内的查询和键添加RMSNorm,它们一起有助于稳定训练损失。
3. Gemma 3
谷歌的Gemma模型一直很好,我认为与其他流行型号(如Llama系列)相比,它们一直有点不受欢迎。
Gemma与其他模型相比,最大的的区别是相当大的词汇量(更好地支持多种语言),以及更关注27B大小(相对于8B或70B)。
但请注意,Gemma2的尺寸也更小:1B,4B和12B。
27B尺寸达到了一个非常好的点:它比8B更强大,但不像70B型号那样资源密集。
那么,《Gemma 3》中还有什么有趣的呢? 如前所述,其他模型如Deepseek-V3/R1使用混合专家(MoE)架构来降低推理时的内存需求,给定一个固定的模型大小。
Gemma 3使用不同的“技巧”来降低计算成本,即滑动窗口注意力。
3.1 滑动窗口注意
随着滑动窗口的注意(LongFormer paper in 2020,最初在2020年的LongFormer论文中引入,并且Gemma 2已经使用),Gemma 3团队能够将KV缓存中的内存要求减少大量,如下图所示。
IMG
那么,什么是滑动窗口注意力呢? 如果我们将定期的自我关注视为一种全局注意力机制,因为每个序列元素都可以访问所有其他序列元素,那么我们可以将滑动窗口注意力视为局部注意力,因为在这里我们限制当前查询位置周围的上下文大小。如下图所示。
请注意,滑动窗口注意力可以同时使用多头注意和分组查询注意力;Gemma3使用分组查询注意力。
如上所述,滑动窗口注意力也称为本地关注,因为本地窗口环绕并移动当前查询位置。相比之下,定期关注是全局性的,因为每个token都可以访问所有其他token。
现在,如上所述,Gemma 2前身架构之前也使用滑动窗口注意。Gemma3的区别在于它们调整了全局(常规)和本地(滑动)注意力之间的比例。
例如,Gemma 2使用混合注意力机制,将滑动窗口(本地)和全局注意力以1:1的比例组合在一起。每个token都可以进入附近上下文的4k令牌窗口。
Gemma2在其他层中使用滑动窗口注意力,Gemma3现在有5:1的比例,这意味着每5个滑动窗口(局部)注意力层只有1个完整的注意力层; 此外,滑动窗口尺寸从4096(Gemma 2)减少到1024(Gemma3)。这将模型的重点转移到更高效的本地化计算上。
根据他们的消融研究,使用滑动窗口注意力对建模性能的影响最小,如下图所示。
上图显示滑动窗口注意力对LLM生成的输出复杂性几乎没有影响。
虽然滑动窗口注意是Gemma 3中最值得注意的架构方面,但我也想简要介绍归一化层的放置,作为上一个OLMo 2部分的后续。
3.2 Gemma3中的规范化层放置
需要强调的是,Gemma 3在预规范和后规范设置中都使用RMSNorm,围绕其分组查询注意力模块。
这类似于Gemma 2,但仍然值得强调:
(1)原始transformer中使用的后规范(“注意是您需要的一切”)不同
(2)由GPT-2普及并随后用于许多其他架构的预规范
(3)我们之前看到的OLMo 2中的后规范风味。
上图:OLMo2和Gemma 3之间的架构比较;请注意Gemma 3中的附加规范化层。
这种规范化层放置是一种相对直观的方法,因为它得到了两全其美:前规范和后规范。 一点额外的正常化不会伤害。在最坏的情况下,如果额外的规范化是多余的,这增加了一些通过冗余的低效率。 在实践中,由于RMSNorm相对便宜,这不应该产生任何明显的影响。
3.3 Gemma 3 总结
Gemma 3是一个表现良好的开放重量LLM,在开源圈子中有点被低估。最有趣的部分是使用滑动窗口注意来提高效率(将来将其与MoE相结合会很有趣)。
此外,Gemma 3具有独特的归一化层放置,在注意和FeedForward模块之前和之后放置RMSNorm图层。
3.4 Bonus: Gemma 3n
在Gemma 3发布几个月后,Google共享Gemma 3n,这是一款Gemma 3型号,经过优化,以实现小型设备效率,目标是在手机上运行。
Gemma 3n 为提高效率而发生的变化之一是所谓的“每层嵌入”(PLE)参数层。这里的关键思想是在GPU内存中只保留模型参数的子集。令牌层特定嵌入,例如文本,音频和视觉模式的嵌入,然后按需从CPU或SSD流式传输。
下图显示了PLE内存的节省,列出了标准Gemma 3模型的54.4亿个参数。这可能指的是Gemma 3 40亿变种。
54.4亿对40亿参数差异是因为Google在LLM中报告参数计数的有趣方式。它们通常排除嵌入参数以使模型看起来更小,除非在这种情况下,它很方便地包含它们,使模型看起来更大。这并不是谷歌独有的,因为这种方法已经成为整个领域的常见做法。
MatFormer另一个有趣的技巧是MatFormer概念(Matryoshka Transformer的缩写)。 例如,Gemma 3n使用单个共享的LLM(变压器)架构,可以切成更小的独立可用的模型。每个切片都经过训练以自行运行,因此在推理时间,我们可以运行您需要的部分(而不是大型模型)。
4.Mistral Samll 3.1
Mistral Small 3.1 24B于3月在Gemma 3发布后不久发布,值得注意的是在几个基准测试(数学除外)上优于Gemma 3 27B,同时更快。
Mistral Small 3.1 over Gemma 3 的推论延迟较低的原因可能是由于它们的自定义标记化器,以及缩小 KV 缓存和图层数。否则,它是如下图所示的标准架构。
早期的Mistral模型利用了滑动窗口的注意力,但它们似乎在Mistral Small 3.1中放弃了它。 因此,由于Mistral使用常规的Grouped-Query Attention而不是Gemma 3中的滑动窗口的Grouped-Query Attention,因此可能由于能够使用更优化的代码(即FlashAttention)而节省额外的推理计算节省。例如,我推测,虽然滑动窗口注意力会减少内存使用,但它并不一定会降低推论延迟,这正是Mistral Small 3.1所关注的。
5.Llama 4
前文关于混合专家(MoE)的广泛介绍性讨论再次得到回报。Llama4 还采用了MOE方法,并遵循相对标准的架构,与DeepSeek-V3非常相似,如下图所示。(Llama 4包括原生多模式支持,类似于Gemma和Mistral等模型)
虽然Llama 4 Maverick架构看起来与DeepSeek-V3非常相似,但有一些有趣的差异值得强调。
首先,Llama 4使用类似于其前辈的Grouped-Query Attention,而DeepSeek-V3使用多头潜在注意力。
现在,DeepSeek-V3和Llama 4 Maverick都是非常大的架构,DeepSeek-V3的总参数数量大约为68%。
然而,DeepSeek-V3拥有370亿个有源参数,其活性参数是Llama 4 Maverick(17B)的两倍多。
与DeepSeek-V3(9名活跃专家,每个2名隐藏尺寸为2名活跃专家,每个8,192个隐藏尺寸)相比,Llama 4 Maverick使用更经典的MOE设置,具有更少但更大的专家(每个专家,2,048个隐藏尺寸)。此外,DeepSeek在每个transformer块(前3个除外)中使用MoE层,而Llama 4在所有其他变压器块中交替使用MoE和密集模块。
鉴于架构之间的许多小差异,很难确定它们对最终模型性能的确切影响。然而,主要的收获是,MOE架构在2025年的受欢迎程度显着上升。
6.Qwen3
Qwen团队始终如一地提供高质量的开放式LLM。 现在,Qwen3是排行榜顶部的另一个热门系列,适合他们的尺寸类。有7个密集型号:0.6B,1.7B,4B,8B,14B和32B。有2种MoE型号:30B-A3B和235B-A22B。
6.1 Qwen3(Dense)
先讨论密集的模型架构。0.6B型号可能是最小的当前一代开放型号。它具有出色的令牌/秒吞吐量和低内存占用空间,如果您计划在本地运行它。但更重要的是,由于规模小,也很容易在本地进行训练。
因此,Qwen3 0.6B已经取代了Llama 3 1B。下面显示了这两种架构的比较。
IMG
上图是Qwen3 0.6B和Llama 3 1B之间的架构比较;请注意,Qwen3是一个更深层次的架构,具有更多的图层,而Llama 3是一个更广泛的架构,具有更多的注意力。
可以看出Qwen3的内存占用空间较小,因为它总体上是一个较小的架构,但也使用更小的隐藏层和更少的注意力。然而,它使用比Llama 3更多的transformer块,这导致运行时更慢(较低的令牌/秒生成速度)。
6.2 Qwen3(MOE)
Qwen3还有两种MoE口味:30B-A3B和235B-A22B。 为什么一些架构,如Qwen3作为常规(密集)和MoE(稀疏)变体?
MOE变体有助于降低大型基础模型的推理成本。提供密集版和MoE版,根据用户的目标和限制为用户提供灵活性。
密集的模型通常更直接地在各种硬件上进行微调、部署和优化。
另一方面,MoE模型针对缩放推理进行了优化。例如,在固定的推理预算下,它们可以实现更高的整体模型容量(即由于更大而在训练期间吸收知识),而不会按比例增加推理成本。
通过发布这两种类型,Qwen3系列可以支持更广泛的用例:用于鲁棒性,简单性和微调的密集模型,以及用于大规模高效服务的MoE模型。
IMG
如上图所示,DeepSeek-V3和Qwen3 235B-A22B架构非常相似。不过,值得注意的是,Qwen3模型不再使用共享专家(Qwen3模型早期的Qwen模型,Qwen2.5-MoE如Qwen2.5-MoE确实使用了共享专家)。
Qwen3团队没有透露他们离开共享专家的原因。猜测,当他们将专家从2(Qwen2.5-MoE)增加到8(在Qwen3中)时,也许根本没有必要为他们的设置训练稳定性。
然后,他们能够通过使用8而不是8+1专家来节省额外的计算/内存成本。(然而,这并不能解释为什么DeepSeek-V3仍然保留他们的共享专家。
7.SmolLM3
SmolLM3SmolLM3可能不像本文所涵盖的其他LLM那样受欢迎,但它仍然是一个有趣的模型,因为它在相对较小且方便的30亿个参数模型尺寸下提供了非常好的建模性能,位于1.7B和4B Qwen3模型之间,如下图所示。
而且,它还分享了很多训练细节,类似于OLMo,这是罕见的,总是值得赞赏!
如下图所示,SmolLM3架构看起来相当标准。也许最有趣的方面是它使用NoPE(没有位置嵌入),不过。
IMG
7.1 无位置嵌入(NoPE)
在LLM中,NoPE是一个较早的想法,可以追溯到2023年的论文(位置编码对变压器中长度泛化的影响),以删除显式位置信息注入(例如通过早期GPT架构或现在的RoPE中的经典绝对位置嵌入层)。
在基于transormer的LLM中,位置编码通常是必要的,因为自我注意独立于顺序对待token。绝对位置嵌入通过添加一个额外的嵌入层来解决这个问题,该层为token嵌入添加信息。
IMG
另一方面,RoPE通过旋转查询和键向量相对于其令牌位置来解决这个问题。
然而,在NoPE层中,根本不添加这样的位置信号:不是固定的,没有学习的,不是相对的,什么都没有。
即使没有位置嵌入,由于因果注意掩码,模型仍然知道之前有哪些token。这个mask阻止每个token关注未来。因此,位于 t位置的token只能看到位置 ≤ t的token,这保留了自动递归顺序。
因此,虽然没有明确添加的位置信息,但模型的结构中仍然存在隐含的方向感,并且LLM在常规梯度下降训练中,如果发现它有利于优化目标,则可以学习利用它。
因此,总体而言NoPE论文不仅发现不需要位置信息注入,而且还发现NoPE具有更好的长度泛化,这意味着LLM应答性能随着序列长度的增加而恶化较少,如下图所示。
请注意,上述实验是使用相对较小的GPT风格模型进行的,该模型具有约1亿个参数和相对较小的上下文大小。目前尚不清楚这些发现对更大的当代LLM的推广程度。
出于这个原因,SmolLM3团队可能只在每个第4层“应用”NoPE(或更确切地说是省略的RoPE)。
8.Kimi 2
Kimi2 最近在AI社区掀起了巨浪,因为它是一个开放式模型,性能非常好。根据基准测试,它与谷歌的Gemini,Anthropic的Claude和OpenAI的ChatGPT模型等最好的专有模型相当。
Muon一个值得注意的方面是它使用相对较新的Muon优化器的变体而不是AdamW。
这是Muon第一次被使用超过AdamW用于这种尺寸的任何生产型号(以前,它只被证明可以扩展到16B)。这导致了非常好的训练损失曲线,这可能有助于将这个模型弹射到上述基准的顶部。
虽然人们评论说损失非常顺利(由于缺乏峰值),我认为它不是特别顺利(例如,在下图中看到OLMo 2损失曲线;此外,梯度的L2规范可能是跟踪训练稳定性的更好指标)。然而,值得注意的是损失曲线衰减的程度。
它可能是这一代最大的LLM(考虑到Llama 4 Behemoth没有发布的限制,专有的LLM不计算在内,Switch TransformerGoogle的1.6万亿switch transformer是来自不同一代的编码器解码器架构)。
Kimi 2使用了在本文开头介绍的DeepSeek-V3架构,使它们更大,如下图所示。
IMG
如上图所示,Kimi 2.5与DeepSeek V3基本相同,除了它使用了更多的MoE模块专家,在多头潜在注意(MLA)模块中使用了更少的头部。
因此,在DeepSeek R2发布之前,最有可能的是Kimi K2团队将这些课程牢记在心,并将Kimi K2作为开放重量模型分享。在撰写本文时,Kimi K2是最令人印象深刻的开放重量模型。
https://sebastianraschka.com/blog/2025/the-big-llm-architecture-comparison.html
本文转载自CourseAI,作者:CourseAI
