当前位置: 首页 > news >正文

大模型结构比较

文章目录

  • The Big LLM Architecture Comparison
    • DeepSeek V3/R1
      • 多头潜在注意力(MLA)
      • 混合专家(MoE)
      • DeepSeek总结
    • OLMo 2
      • Normalization层的布局
      • QK-Norm
      • OLMo 2 总结
    • Gemma 3
      • Sliding Window Attention
      • Gemma 3 中的normalization层放置
      • Gemma3总结
      • Bonus: Gemma 3n
    • Mistral Small 3.1
    • Llama 4
    • Qwen3
      • Qwen3(Dense)
      • Qwen3(moe)
    • SmolLM3
      • No Positional Embeddings (NoPE)
    • Kimi-k2

The Big LLM Architecture Comparison

  • 原文

    https://sebastianraschka.com/blog/2025/the-big-llm-architecture-comparison.html

  • 从 DeepSeek-V3 到 Kimi K2:现代 LLM 架构设计概览

    从最初的GPT架构被开发出来到现在已经过去七年了。乍一看,回顾2019年的GPT-2,再展望2024-2025年的DeepSeek-V3和Llama 4,人们可能会对这些模型在结构上仍然如此相似感到惊讶。

    当然,位置嵌入已经从绝对嵌入演进到旋转嵌入(RoPE),多头注意力机制已基本被分组查询注意力机制所取代,而更高效的 SwiGLU 也取代了 GELU 等激活函数。但在这些细微的改进背后,我们是否真正看到了突破性的变化,还是仅仅在打磨相同的架构基础?

    比较大型语言模型以确定其良好(或不好)性能的关键因素是一项极具挑战性的任务:数据集、训练技术和超参数差异很大,并且通常记录不佳。

  • 然而,我认为研究架构本身的结构变化以了解 LLM 开发人员在 2025 年会做什么仍然很有价值。(其中的一部分如下图 1 所示。)

    因此,在本文中,我不会撰写有关基准性能或训练算法的文章,而是重点介绍定义当今旗舰开放模型的架构发展。

    (您可能还记得,不久前我写过有关多模态 LLM 的文章 ;在本文中,我将重点介绍近期模型的文本功能,并将多模态的讨论留到下次。)

    https://magazine.sebastianraschka.com/p/understanding-multimodal-llms


DeepSeek V3/R1

  • 您可能已经听说过不止一次, DeepSeek R1 在 2025 年 1 月发布时引起了巨大反响。DeepSeek R1 是基于 2024 年 12 月推出的 DeepSeek V3 架构构建的推理模型。

    虽然我在这里关注的是 2025 年发布的架构,但我认为包含 DeepSeek V3 是合理的,因为它是在 2025 年推出 DeepSeek R1 后才获得广泛关注和采用的。

    如果您对 DeepSeek R1 的训练特别感兴趣,您可能也会发现我今年早些时候的文章很有用

    在本节中,我将重点介绍 DeepSeek V3 中引入的两种关键架构技术,这些技术提高了其计算效率,并使其有别于许多其他 LLM:

    1. 多头潜在注意力(MLA)
    2. 混合专家(MoE)

多头潜在注意力(MLA)

  • 在讨论多头潜在注意力 (MLA) 之前,我们先简单回顾一下背景知识,解释一下它的应用。首先,我们来谈谈分组查询注意力 (GQA)。近年来,GQA 已成为多头注意力 (MHA) 的新标准替代者,它在计算和参数方面都更具效率。

    以下是 GQA 的简要总结。与 MHA 不同,MHA 中的每个 head 都有自己的一组键和值,为了减少内存占用,GQA 将多个 head 分组以共享相同的键和值投影。

  • 例如下图所示,如果有 2 个键值组和 4 个注意力头,那么注意力头 1 和 2 可能共享一组键值对,而注意力头 3 和 4 则共享另一组键值对。这减少了键值对的计算总量,从而降低了内存占用并提高了效率(根据消融研究,这不会显著影响建模性能)。

    备注:消融研究,一种实验方法,用于评估模型中各个组件或设计选择对模型整体性能的影响img

    因此,GQA 的核心思想是通过在多个查询头之间共享键值头来减少键值头的数量。这样一是 可以降低模型的参数数量,二还可以减少推理过程中键值张量的内存带宽占用,因为需要存储和从键值缓存中检索的键值更少。

    (如果您好奇 GQA 在代码中的样子,请参阅我的 GPT-2 到 Llama 3 转换指南 , 其中有一个没有 KV 缓存的版本,以及我的 KV 缓存变体。)

    虽然 GQA 主要是 MHA 的一种计算效率解决方法,但消融研究(例如原始 GQA 论文和 Llama 2 论文中的研究)表明,就 LLM 建模性能而言,它的表现与标准 MHA 相当。

  • 现在,多头潜在注意力 (MLA) 提供了一种不同的内存节省策略,并且与键值缓存 (KV) 配合得非常好。MLA 不像 GQA 那样共享键值头,而是将键值张量压缩到低维空间,然后再将它们存储在键值缓存中。

    在推理时,这些压缩的张量会被投影回其原始大小,然后再使用,如下图 3 所示。这增加了额外的矩阵乘法,但减少了内存使用量。img

    (顺便说一句,查询也被压缩,但仅在训练期间,而不是推理期间。)

  • 顺便说一句,MLA 并非 DeepSeek V3 中的新特性,其前身 DeepSeek-V2 也曾使用(甚至引入)过它。此外,V2 论文中包含一些有趣的消融研究,或许可以解释 DeepSeek 团队为何选择 MLA 而非 GQA(见下图 4)。img

    如上图 4 所示,GQA 的性能似乎不如 MHA,而 MLA 的建模性能优于 MHA,这可能就是 DeepSeek 团队选择 MLA 而非 GQA 的原因。(如果能比较一下 MLA 和 GQA 之间“每个token的kv cache”节省情况,也一定很有趣!)

  • 在我们进入下一个架构组件之前,总结一下本节,MLA 是一个巧妙的技巧,可以减少 KV 缓存内存的使用,同时在建模性能方面甚至略胜于 MHA。


混合专家(MoE)

  • DeepSeek 中另一个值得强调的主要架构组件是它对混合专家 (MoE) 层的使用。虽然 DeepSeek 并非 MoE 的发明者,但它在今年再次兴起,我们稍后将介绍的许多架构也都采用了它。

    您可能已经熟悉 MoE,但快速回顾一下可能会有所帮助。

  • 如下图所示,MoE 的核心思想是用多个专家层替换 Transformer 模块中的每个前馈模块,其中每个专家层本身也是一个前馈模块。这意味着我们将单个前馈模块替换为多个前馈模块。img

    Transformer 模块内的 FeedForward 模块(如上图中深灰色模块所示)通常包含大量模型总参数。(请注意,Transformer 模块以及 FeedForward 模块在 LLM 中重复多次;在 DeepSeek-V3 中,重复了 61 次。)

    因此,用多个FFN模块替换单个FFN模块(就像在 MoE 设置中所做的那样)会显著增加模型的总参数数量。然而,关键在于我们不会为每个 token “激活”所有专家。相反,路由机制只会为每个 token 选择一小部分专家。(出于时间或文章篇幅的考虑,我将在下次更详细地介绍router。)

    由于每次只有少数专家处于活跃状态,与始终使用完整参数集的密集模块形成对比,因此 MoE 模块通常被称为稀疏模块。MoE架构的大量参数增加了 LLM 的容量,这意味着它可以在训练期间吸收更多知识。然而,稀疏性保持了推理的高效性,因为我们不会同时使用所有参数。

    例如,DeepSeek-V3 每个 MoE 模块有 256 位专家,总共 671B个参数。然而,在推理过程中,每次只激活 9 位专家(1 位共享专家加上 8 位由路由专家)。这意味着每个推理步骤仅使用 37B个参数,而不是全部 671B参数。

  • DeepSeek-V3 的 MoE 设计的一个显著特点是使用了一个共享专家。这是一个始终对每个 token 保持活跃的专家。这个想法并不新鲜,早在 DeepSeek-v2 和 2022 DeepSpeedMoE 论文中就已提出。img

    DeepSpeedMoE 论文首次提出了共享专家的优势,他们发现与没有共享专家相比,共享专家可以提升整体建模性能。这可能是因为多个专家无需学习常见或重复的模式,从而为它们提供了更多学习更专业模式的空间。


DeepSeek总结

  • 总而言之,DeepSeek-V3 是一个拥有 671B参数的庞大模型,在发布时,其性能优于其他开放权重模型,包括 405B 的 Llama 3。由于其使用混合专家 (MoE) 架构,尽管规模更大,但该架构每个token仅激活一小部分(仅 37B)参数,它在推理时间上效率更高。

    DeepSeek-V3 的另一个关键区别在于它使用了多头潜在注意力 (MLA) 算法,而非分组查询注意力 (GQA)。MLA 和 GQA 都是标准多头注意力 (MHA) 的高效推理替代方案,尤其是在使用KVCache时。虽然 MLA 的实现更为复杂,但 DeepSeek-V2 论文中的一项研究表明,MLA 的建模性能优于 GQA。


OLMo 2

  • 非营利机构艾伦人工智能研究所的 OLMo 系列模型值得关注,因为它在训练数据和代码方面非常透明,并且技术报告也相对详细。

    虽然您可能不会在任何benchmark或排行榜的顶部找到 OLMo 模型,但它们非常干净,更重要的是,由于它们的透明度,它们是开发 LLM 的绝佳蓝图。

    虽然 OLMo 模型因其透明度而广受欢迎,但它们的表现也并不差。事实上,在 1 月份发布时(Llama 4、Gemma 3 和 Qwen 3 之前), OLMo 2 模型处于计算性能比的帕累托图的前沿,如下图 所示。img

    正如本文前面提到的,我旨在仅关注 LLM 架构细节(而非训练或数据),以使其保持在可控的篇幅内。那么,OLMo2 中有哪些有趣的架构设计选择呢?主要归结为规范化:RMSNorm 层的放置以及 QK 范数的添加,我将在下文讨论。

    另外值得一提的是,OLMo 2 仍然采用传统的多头注意力(MHA),而不是 MLA 或 GQA。


Normalization层的布局

  • 总体而言,OLMo 2 在很大程度上遵循了原始 GPT 模型的架构,与其他当代 LLM 类似。然而,OLMo 2 也存在一些值得注意的差异。让我们从Normalization层开始。

  • 与 Llama、Gemma 和大多数其他 LLM 类似,OLMo 2 从 LayerNorm 转换为 RMSNorm。

    但由于 RMSNorm 已经过时(它本质上是 LayerNorm 的简化版本,可训练参数更少),我将跳过 RMSNorm 与 LayerNorm 的讨论。(感兴趣的读者可以在我的 GPT-2 到 Llama 转换指南中找到 RMSNorm 的代码实现。)

    然而,RMNSorm 层的放置位置值得讨论。原始 Transformer(来自“ Attention is all you need ”论文)将两个normalization层分别放置在 Transformer 模块中的注意力模块和前馈模块之后 。这也称为 Post-LN 或 Post-Norm。

    GPT 和之后出现的大多数 LLM 将normalization层置于注意力模块和前馈模块之前,这被称为 Pre-LN 或 Pre-Norm。下图展示了 Post-Norm 和 Pre-Norm 之间的对比。img

    2020 年,Xiong 等人证明了 Pre-LN 在初始化时能够产生更良好的梯度。此外,研究人员还提到,Pre-LN 甚至无需仔细预热学习率就能很好地工作,而预热学习率是 Post-LN 的关键工具。

    现在,我提到这一点的原因是 OLMo 2 采用了 Post-LN 的一种形式(但使用 RMSNorm 而不是 LayerNorm,所以我称之为 Post-Norm )。

    如上图所示,在 OLMo 2 中,规范化层不再位于注意力层和前馈层之前,而是位于其后。然而,需要注意的是与原始 Transformer 架构的规范化层(跳过残差连接)不同,OLMo 2 中规范化层仍然位于残差层内部。

    那么,他们为什么要移动规范化层的位置呢?原因是它有助于训练稳定性,如下图所示。img

    遗憾的是,这张图将重排序的结果与 QK-Norm 的结果放在一起展示,而 QK-Norm 是一个独立的概念。因此,很难判断normalization层重排序本身的贡献有多大。


QK-Norm

  • 由于上一节已经提到了 QK-norm,并且我们稍后讨论的其他 LLM,例如 Gemma 2 和 Gemma 3,也使用了 QK-norm,我们来简单讨论一下这是什么。

    QK-Norm 本质上是另一个 RMSNorm 层。它位于多头注意力 (MHA) 模块内部,并在应用 RoPE 之前应用于查询 (q) 和键 (k)。为了说明这一点,下面是我为 Qwen3 从头实现编写的分组查询注意力 (GQA) 层的摘录(GQA 中的 QK-norm 应用类似于 OLMo 中的 MHA):

    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 = Nonedef forward(self, x, mask, cos, sin):b, num_tokens, _ = x.shape# Apply projectionsqueries = self.W_query(x)keys = self.W_key(x)values = self.W_value(x)# ...# Optional normalizationif self.q_norm:queries = self.q_norm(queries)if self.k_norm:keys = self.k_norm(keys)# Apply RoPEqueries = apply_rope(queries, cos, sin)keys = apply_rope(keys, cos, sin)# Expand K and V to match number of headskeys = keys.repeat_interleave(self.group_size, dim=1)values = values.repeat_interleave(self.group_size, dim=1)# Attentionattn_scores = queries @ keys.transpose(2, 3)# ...

    如前所述,QK-Norm 与 Post-Norm 配合使用可以稳定训练。需要注意的是,QK-Norm 并非由 OLMo 2 发明,而是可以追溯到 2023 年的 Scaling Vision Transformers 论文 。


OLMo 2 总结

  • 简而言之,值得注意的 OLMo 2 架构设计决策主要是 RMSNorm 的放置:将 RMSNorm 放在注意力和前馈模块之后而不是之前(Post-Norm的一种),以及在注意力机制内为query和key添加 RMSNorm(QK-Norm),这两者共同有助于稳定训练损失。
  • 下图进一步并排比较了 OLMo 2 和 Llama 3;可以看出,除了 OLMo 2 仍然使用传统的 MHA 而非 GQA 之外,它们的架构在其他方面相对相似。(不过, OLMo 2 团队在 3 个月后发布了使用 GQA 的 32B 版本 。)img

Gemma 3

  • Google 的 Gemma 型号一直都非常出色,我认为与其他流行型号(如 Llama 系列)相比,它们一直有点被低估。

    Gemma 的一大特色是其词汇量相当大(以便更好地支持多种语言),并且更注重 27B 的规模(而非 8B 或 70B)。但请注意,Gemma 2 也有较小的规模:1B、4B 和 12B。

    27B 尺寸达到了一个非常好的最佳点:它比 8B 型号功能强大得多,但不像 70B 型号那样占用大量资源,并且它在我的 Mac Mini 上本地运行良好。

    Gemma 3 还有什么有趣的地方呢?如前所述,其他模型(例如 Deepseek-V3/R1)使用混合专家 (MoE) 架构,在模型大小固定的情况下减少推理时的内存需求。(我们稍后将讨论的其他几个模型也采用了 MoE 方法。)

    Gemma 3 使用不同的“技巧”来降低计算成本,即Sliding Window Attention(滑动窗口注意力)。

Sliding Window Attention

  • 借助滑动窗口注意力机制(最初于 2020 年在 LongFormer 论文中提出,并且已被 Gemma 2 使用),Gemma 3 团队能够大幅减少 KV 缓存中的内存需求,如下图所示。img

  • 那么,什么是滑动窗口注意力机制?如果我们将常规的自注意力机制视为一种全局注意力机制,因为每个序列元素都可以访问其他所有序列元素;那么,我们可以将滑动窗口注意力机制视为局部注意力机制,因为在这里,我们将上下文大小限制在当前查询位置附近。如下图所示。img

    请注意,滑动窗口注意力可以与多头注意力和分组查询注意力一起使用;Gemma 3 使用分组查询注意力。

    如上所述,滑动窗口注意力机制也称为局部注意力机制,因为局部窗口会围绕当前查询位置并随之移动。相比之下,常规注意力机制则是全局的 ,因为每个token都可以访问所有其他token。

  • 正如上文简要提到的,Gemma 2 的前身架构也曾使用过滑动窗口注意力机制。Gemma 3 的不同之处在于,他们调整了全局(常规)注意力机制和局部(滑动)注意力机制之间的比例。

    例如,Gemma 2 采用了一种混合注意力机制,将滑动窗口(局部)注意力和全局注意力以 1:1 的比例组合在一起。每个 token 可以关注附近上下文的 4k 个 token 窗口。

    Gemma 2 每隔一层都使用滑动窗口注意力机制,而 Gemma 3 则采用了 5:1 的比例,这意味着每 5 个滑动窗口(局部)注意力层中只有一个完整的注意力层;此外,滑动窗口大小从 4096(Gemma 2)减小到 1024(Gemma 3)。这使得模型的重点转向更高效的局部计算。

    如下图所示,根据他们的消融研究,使用滑动窗口注意力对建模性能的影响最小。img

  • 虽然滑动窗口注意力是 Gemma 3 中最值得注意的架构方面,但作为上一节 OLMo 2 的后续,我还想简要介绍一下normalization层的放置。


Gemma 3 中的normalization层放置

  • 值得强调的一个小而有趣的花絮是,Gemma 3 在其分组查询注意模块的 Pre-Norm 和 Post-Norm 设置中使用 RMSNorm。

    这与 Gemma 2 类似,但仍然值得强调,因为它不同于(1)原始 Transformer 中使用的 Post-Norm(Attention is all your need),(2)由 GPT-2 推广并在之后的许多其他架构中使用的 Pre-Norm,以及(3)我们之前看到的 OLMo 2 中的 Post-Norm 风格。img

    我认为这种normalization层放置方法相对直观,因为它兼顾了两种方法的优点:Pre-Norm和Post-Norm。在我看来,增加一些额外的normalization操作总是好的。在最坏的情况下,如果额外的normalization操作是多余的,则会因冗余而导致效率低下。不过,在实践中,由于 RMSNorm 总体上相对便宜(计算层面),因此这应该不会造成任何明显的影响。


Gemma3总结

  • Gemma 3 是一款性能良好的 LLM,但在我看来,它在开源圈中有点被低估了。它最有趣的部分是使用滑动窗口注意力机制来提高效率(未来将其与 MoE 结合起来会很有趣)。

    此外,Gemma 3 具有独特的规范化层放置,将 RMSNorm 层放置在注意力和前馈模块之前和之后。


Bonus: Gemma 3n

  • 在 Gemma 3 发布几个月后,谷歌分享了 Gemma 3n ,这是一款针对小型设备效率进行了优化的 Gemma 3 型号,目标是在手机上运行。

    Gemma 3n 中为了提高效率而做出的改进之一是所谓的“逐层嵌入 (PLE)”参数层。其核心思想是仅将模型参数的子集保存在 GPU 内存中。然后,特定于 token 层的嵌入(例如用于文本、音频和视觉模态的嵌入)将按需从 CPU 或 SSD 流式传输。

    下图展示了 PLE 内存节省情况,列出了标准 Gemma 3 模型的 5.44B个参数。这可能指的是 Gemma 3 的 4B变体。img

    5.44B和 4B参数数量的差异,是因为谷歌在 LLM 中报告参数数量的方式很有意思。他们通常会排除嵌入参数,以使模型看起来更小,但在这种情况下,为了方便起见,可以添加嵌入参数来使模型看起来更大。这并非谷歌独有,因为这种方法已成为整个领域的普遍做法。

    另一个有趣的技巧是 MatFormer 概念(Matryoshka Transformer 的缩写)。例如,Gemma 3n 使用单个共享的 LLM(Transformer)架构,该架构可以拆分成更小、可独立使用的模型。每个模型都经过训练,可以独立运行,因此在推理时,我们可以只运行所需的部分(而不是整个大型模型)。


Mistral Small 3.1

  • Mistral Small 3.1 24B 于 3 月在 Gemma 3 发布后不久发布,值得注意的是,它在多个基准测试(数学除外)上的表现均优于 Gemma 3 27B,而且速度更快。

    Mistral Small 3.1 推理延迟低于 Gemma 3 的原因很可能在于其自定义的分词器,以及缩减了键值缓存和层数。除此之外,它仍然是一个标准架构,如下图所示。img

    有趣的是,早期的 Mistral 模型曾使用过滑动窗口注意力机制,但在 Mistral Small 3.1 中似乎放弃了它。因此,由于 Mistral 使用的是常规的分组查询注意力机制,而不是像 Gemma 3 中那样使用带滑动窗口的分组查询注意力机制,或许由于能够使用更优化的代码(例如 FlashAttention),可以节省额外的推理计算成本。例如,我推测,虽然滑动窗口注意力机制可以减少内存使用量,但它并不一定能降低推理延迟,而这正是 Mistral Small 3.1 的重点所在。


Llama 4

  • 本文前面对混合专家模型 (MoE) 的深入介绍再次得到了回报。Llama 4 也采用了 MoE 方法,并且遵循与 DeepSeek-V3 非常相似的相对标准的架构,如下图所示。(Llama 4 包含原生的多模态支持,类似于 Gemma 和 Mistral 等模型。但是,由于本文重点关注语言建模,因此我们仅关注文本模型。)img

    虽然 Llama 4 Maverick 架构总体上与 DeepSeek-V3 非常相似,但仍有一些有趣的差异值得强调。

    首先,Llama 4 使用了与其前代产品类似的分组查询注意力机制 (Grouped-Query Attention),而 DeepSeek-V3 则使用了我们在本文开头讨论过的多头潜在注意力机制 (Multi-Head Latent Attention)。DeepSeek-V3 和 Llama 4 Maverick 都是非常庞大的架构,其中 DeepSeek-V3 的总参数数量大约比 Llama 4 Maverick 多 68%。然而,DeepSeek-V3 拥有 37B 个活跃参数,是 Llama 4 Maverick(17B)的两倍多。

    Llama 4 Maverick 采用了更经典的 MoE 设置,其专家数量更少但规模更大(2 名活跃专家,每名专家的隐藏层大小为 8,192),而 DeepSeek-V3 则使用了 9 名活跃专家,每名专家的隐藏层大小为 2,048。此外,DeepSeek 在每个转换器模块(前 3 个除外)中都使用了 MoE 层,而 Llama 4 则在每个转换器模块中交替使用 MoE 和密集模块。

    由于不同架构之间存在许多细微差异,因此很难确定它们对最终模型性能的确切影响。然而,值得关注的是,MoE 架构在 2025 年的受欢迎程度将显著上升。


Qwen3

  • Qwen 团队始终如一地提供高质量的开放LLM的权重。我记得,在 NeurIPS 2023 的 LLM 效率挑战赛中,我曾担任联合顾问,当时获胜的顶级解决方案全部基于 Qwen2。

    现在,Qwen3 是又一个热门模型系列,在同尺寸类别中位居榜首。它包含 7 个高密度模型:0.6B、1.7B、4B、8B、14B 和 32B。此外,还有 2 个 MoE 模型:30B-A3B 和 235B-A22B。


Qwen3(Dense)

  • 我们先来讨论一下密集模型架构。截至撰写本文时,0.6B 模型很可能是目前市面上最小的开放权重模型。根据我的个人经验,考虑到其小巧的体积,它的性能确实非常出色。如果您打算在本地运行它,它拥有很高的吞吐量(token per second)和较低的内存占用。更重要的是,由于其体积小巧,它也很容易在本地进行训练(用于教育目的)。

    因此,对我来说,Qwen3 0.6B 在大多数情况下已经取代了 Llama 3 1B。这两种架构的比较如下所示。img

    (请注意,Qwen3 是一种更深的架构,具有更多的层,而 Llama 3 是一种更宽的架构,具有更多的注意力头。)

    如果您对无需外部第三方 LLM 库依赖的人类可读的 Qwen3 实现感兴趣,我最近从头开始(纯 PyTorch)实现了 Qwen3 。

    上图中的计算性能数据基于我在 A100 GPU 上运行的 PyTorch 实现。可以看出,Qwen3 的内存占用较小,因为它的整体架构较小,但使用的隐藏层和注意力头也更少。然而,它使用的 Transformer 模块比 Llama 3 更多,这导致运行速度较慢(每秒生成 token 的速度较低)。


Qwen3(moe)

  • 如前所述,Qwen3 也有两种 MoE 版本:30B-A3B 和 235B-A22B。为什么有些架构(例如 Qwen3)会同时提供常规(密集)和 MoE(稀疏)版本?

    正如本文开头所述,MoE 变体有助于降低大型基础模型的推理成本。同时提供密集模型和 MoE 版本,让用户能够根据自己的目标和约束条件灵活地进行推理。

    密集模型通常更容易在各种硬件上进行微调、部署和优化。

    另一方面,MoE 模型针对扩展推理进行了优化。例如,在固定的推理预算下,它们可以实现更高的整体模型容量(即,由于规模较大,训练期间的知识吸收量更高),而无需相应增加推理成本。

    通过发布这两种类型,Qwen3 系列可以支持更广泛的用例:用于稳健性、简单性和微调的密集模型,以及用于大规模高效服务的 MoE 模型。

    为了总结本节,让我们看看 Qwen3 235B-A22B(注意,A22B 代表“22B 活动参数”)和 DeepSeek-V3,后者的活动参数几乎是 Qwen3 235B-A22B 的两倍(37B)。img

    如上图所示,DeepSeek-V3 和 Qwen3 235B-A22B 架构非常相似。值得注意的是,Qwen3 模型不再使用共享专家(早期的 Qwen 模型,例如 Qwen2.5-MoE, 确实使用了共享专家)。

    遗憾的是,Qwen3 团队并未透露放弃共享专家的任何原因。如果非要我猜的话,他们之所以将专家数量从 2 个(Qwen2.5-MoE 中)增加到 8 个(Qwen3 中),或许只是为了提高训练稳定性而没有必要。而且,他们能够通过只使用 8 个专家而不是 8+1 个专家来节省额外的计算/内存成本。(然而,这并不能解释为什么 DeepSeek-V3 仍然保留着他们的共享专家。)

    更新。Qwen3 的开发者之一 Junyang Lin 对此做出了如下回应:

    当时,我们并没有发现共享专家有足够显著的改进,我们担心共享专家会导致推理优化问题。说实话,这个问题没有直接的答案。


SmolLM3

  • SmolLM3 可能不如本文介绍的其他 LLM 那么受欢迎,但我认为它仍然是一个有趣的模型,因为它在相对较小且方便的 3B参数模型大小下提供了非常好的建模性能,该模型大小介于 1.7B 和 4B Qwen3 模型之间,如下图所示。

    而且,它还分享了很多训练细节,类似于 OLMo,这是很少见的,而且总是令人赞赏!img

    如下面的架构对比图所示,SmolLM3 架构看起来相当标准。不过,最有趣的一点或许是它使用了 NoPE(无位置嵌入)。img


No Positional Embeddings (NoPE)

  • 在 LLM 环境中,NoPE 是一个较旧的想法,可以追溯到 2023 年的一篇论文([ The Impact of Positional Encoding on Length Generalization in Transformers ](https://arxiv.org/abs/2305.19466)),旨在消除显式的位置信息注入(例如通过早期 GPT 架构中的经典绝对位置嵌入层或现在的 RoPE)。

    在基于 Transformer 的 LLM 中,位置编码通常是必需的,因为自注意力机制会独立于顺序来处理 token。绝对位置嵌入通过添加一个额外的嵌入层来解决这个问题,该嵌入层会将信息添加到 token 嵌入中。img

  • 另一方面,RoPE 通过相对于其标记位置旋转查询和键向量来解决这个问题。

    然而,在 NoPE 层中,根本没有添加任何位置信号:不是固定的,不是学习到的,也不是相对的。什么都没有。

    即使没有位置嵌入,由于因果注意力掩码的存在,模型仍然知道哪些标记在前面。此掩码阻止每个标记关注后面的标记。因此,位置 t 处的标记只能看到位置 ≤ t 处的标记,从而保持了自回归排序。

    因此,虽然没有明确添加位置信息,但模型结构中仍然隐含着方向感,而 LLM 在常规的梯度下降训练中,如果发现方向感对优化目标有利,就可以学习利用它。(更多信息,请参阅 NoPE 论文的定理。)

    所以,总体来说, NoPE 论文不仅发现不需要位置信息注入,而且还发现 NoPE 具有更好的长度泛化能力,这意味着随着序列长度的增加,LLM 应答性能下降得更少,如下图所示。img

    请注意,上述实验是使用一个相对较小的 GPT 类模型进行的,该模型包含约 1 亿个参数,上下文规模也相对较小。目前尚不清楚这些发现能否推广到更大规模的当代 LLM。

    因此,SmolLM3 团队可能仅在每 4 层“应用”NoPE(或者更确切地说省略了 RoPE)。


Kimi-k2

  • Kimi -k2 最近在 AI 社区引起了轰动,因为它是一个性能卓越的开放权重模型。基准测试显示,它的性能堪比谷歌 Gemini、Anthropic 的 Claude 以及 OpenAI 的 ChatGPT 等顶级专有模型。

    值得一提的是,它使用了相对较新的 Muon 优化器的一个变体来替代 AdamW。据我所知,这是 Muon 首次用于这种规模的生产模型,而非 AdamW( 此前 ,它仅被证明可以扩展到 16B)。这带来了非常漂亮的训练损失曲线,这可能有助于该模型跃居上述基准测试的榜首。

  • 虽然有人评论说损失函数异常平滑(因为没有尖峰),但我认为它并非异常平滑(例如,参见下图中的 OLMo 2 损失曲线;此外,梯度的 L2 范数可能是追踪训练稳定性的更好指标)。然而,值得注意的是损失曲线衰减得如此之好。img

  • 该模型本身有 1T(1万亿)个参数,这确实令人印象深刻。

    截至撰写本文时,它可能是这一代最大的 LLM(考虑到 Llama 4 Behemoth 尚未发布、专有 LLM 不算数以及谷歌的 1.6 万亿 Switch Transformer 是来自不同世代的编码器-解码器架构等限制)。

    它也完成了一个循环,因为 Kimi 2 使用了我们在本文开头介绍过的 DeepSeek-V3 架构,只不过他们把它做得更大了,如下图所示。img

    如上图所示,Kimi-k2 与 DeepSeek V3 基本相同,只是它在 MoE 模块中使用了更多的专家,而在多头潜在注意力 (MLA) 模块中使用了更少的头。

    Kimi 2 并非凭空而来。早期在 《Kimi k1.5:使用 LLM 扩展强化学习》论文中讨论的 Kimi 1.5 模型也令人印象深刻。然而,不幸的是,DeepSeek R1 模型论文恰好在 1 月 22 日同一天发布。此外,据我所知,Kimi 1.5 的权重从未公开分享过。

    所以,Kimi K2 团队很可能牢记了这些教训,并在 DeepSeek R2 发布之前就将 Kimi K2 作为开放重量模型进行了分享。截至本文撰写时,Kimi K2 是最令人印象深刻的开放重量模型。

    经过这么多年,LLM 的发布仍然令人兴奋,我很好奇接下来会发生什么!


http://www.lryc.cn/news/607402.html

相关文章:

  • uniapp 开发微信小程序,获取经纬度(uni.getLocation)并且转化详细地址(‌高德地图逆地理编码API、‌腾讯地图逆地理编码)
  • SIP 呼叫中实现远端摄像头控制学习笔记
  • axios请求的取消
  • 什么是链游
  • Spring Boot Actuator 保姆级教程
  • JavaWeb--Student2025项目:增删改查
  • 七彩喜艾灸机器人:让传统艾灸变简单,健康养生触手可及
  • HarmonyOS 应用拉起系列(一):应用与元服务互通方式
  • 乐观锁是数据库和多线程编程中常用的一种控制并发的方法
  • 【数据可视化-77】中国历年GDP数据可视化分析:Python + Pyecharts 深度洞察(含完整数据、代码)
  • 伞状Meta分析重构癌症幸存者照护指南:从矛盾证据到精准决策
  • OSPF综合实验报告册
  • 从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门
  • 基于倍增的LCA + kruskal重构树 + 并查集
  • 第三章 网络安全基础(一)
  • 【Redis】key的设计格式
  • dolphinscheduler中一个脚本用于从列定义中提取列名列表
  • 香港正式启动稳定币牌照制度!推动中国的人民币国际化?
  • SQL中的LEFT JOIN
  • 微服务的编程测评系统9-竞赛新增-竞赛编辑
  • Flask一个用户同时只能在一处登录实现
  • Linux网络:多路转接 epoll
  • CentOS7下同步时间的几种方式(NTP 、Chrony和systemd-timesyncd)
  • iPhone 恢复出厂设置是否会删除所有内容?
  • iPhone查看App日志和系统崩溃日志的完整实用指南
  • 用落霞归雁的思维框架推导少林寺用什么数据库?
  • Syzkaller实战教程6:[重要]初始种子加载机制剖析第二集
  • 使用 Docker 部署 Label Studio 时本地文件无法显示的排查与解决
  • 无人机自动跟随模块技术分析
  • Docker 实战 -- Nextcloud