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

图解MOE大模型的7个核心问题并探讨DeepSeekMoE的专家机制创新

原文地址:https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts图 1

输入标记向量化
(如“出色”→T13)
**路由器生成概率分布**
专家1: 0.8, 专家2: 0.1, 专家3: 0.1
选择Top-k专家
(k=1,选中专家1)
专家处理并输出结果
专家1输出: 0.9
门控值加权
0.8 × 0.9 = 0.72
聚合所有标记贡献值

何为专家混合模型(Mixture of Experts, MoE)?

Mixture of Experts (MoE) 是一种利用许多不同子模型(或"专家")来提高大语言模型(LLM)质量的技术。这种架构通过稀疏计算和动态路由机制,在保持模型规模的同时显著降低计算开销。
与传统稠密模型相比,MoE的关键创新在于:每次前向传播仅激活部分专家,这种稀疏激活策略使得模型参数量可达千亿级别而计算成本仅需数十亿参数级别。

定义 MoE 的两个主要组成部分是:
专家(Experts):每一层的前馈神经网络(FFNN)现在都有一组"专家",可以选择其中的一个子集。这些"专家"通常是 FFNN 本身,但具有更精简的结构。如DeepSeekMoE采用共享专家+路由专家的双重架构,共享专家处理通用特征,路由专家处理特定特征。
路由器(Router)或门控网络(Gate Network):通过动态路由机制决定将哪些标记(tokens)发送到哪些专家。先进的路由器如DeepSeekMoE采用无辅助损失策略,通过动态调整专家偏置实现负载均衡。

在具有 MoE 的 LLM 的每一层中,我们会找到(相对专业化的)专家:
图 2
但是,“专家”并不是专门针对“心理学”或“生物学”等特定领域的。它只是在单词级别上学习语法信息,它们的专长在于处理特定上下文中的特定标记:
图 3
路由器(门控网络)会选择最适合给定输入的专家,每个专家并不是一个完整的 LLM,而是 LLM 架构的一部分子模型:路由器(门控网络)会选择最适合给定输入的专家,每个专家并不是一个完整的 LLM,而是 LLM 架构的一部分子模型。其工作原理遵循:输入标记→路由评估→专家选择→专家处理→门控加权→输出的完整流程:
图 4

专家代表什么以及它们是如何工作的

我们首先需要考察 MoE 所取代的对象:密集层(Dense Layers)。
Mixture of Experts(MoE)的起点是 LLM 的一个相对基本功能,即前馈神经网络(Feedforward Neural Network,FFNN)。

密集(Dense)模型

首要你要理解,标准的仅解码器的 Transformer 架构在层归一化后应用 FFNN,这种传统结构的计算特性可类比餐厅厨房的"单主厨模式"——每个输入都需经过全网络处理,所有神经元参与计算:
图 5
FFNN 允许模型利用由注意力机制创建的上下文信息,进一步将其转换以捕捉数据中更复杂的关系。然而,FFNN 的规模会迅速增长。为了学习这些复杂的关系,它通常会扩展其接收的输入:
图 6
传统 Transformer 中的 FFNN 被称为密集(Dense)模型,因为所有参数(权重和偏置)都被激活。没有任何遗漏,所有参数都被用来计算输出。
如果我们仔细观察密集模型,会发现输入在某种程度上激活了所有参数:
图 7

稀疏(Sparse)模型

相比之下,稀疏(Sparse)模型只激活其总参数的一部分,与 Mixture of Experts 密切相关。这类似于餐厅厨房的"专家厨师协作模式"——每个标记仅激活相关专家。DeepSeekMoE通过节点限制路由策略,每个标记最多发送到4个节点,显著降低跨节点通信开销。
为了说明,我们可以将密集模型切分成若干部分(所谓的“专家”),重新训练它,并在给定时间只激活其中一部分专家,:
图 8

其核心思想是,每个专家在训练过程中学习不同的信息。然后,在推理时,只使用与给定任务最相关的特定专家。当被问及一个问题时,我们可以选择最适合该任务的专家。例如在情感分析场景中,正面/负面/中性情感专家会被动态选择:
图 9

“专家”学习的信息比整个领域更细粒度

正如我们之前所见,专家学习的信息比整个领域更细粒度。因此,有时将它们称为“专家”可能会产生误导(DeepSeekMoE通过序列级负载均衡策略,防止单个序列内专家负载极端不平衡)。
图 10

在编码器模型的 ST-MoE 论文中,专家的专门化被展示了出来。然而,解码器模型中的专家似乎并没有这种类型的专门化。但这并不意味着所有的专家都是相同的。
一个很好的例子可以在[Mixtral 8x7B 论文]中找到,其中每个标记都用第一个专家选择的颜色进行了标记:
图 11

这个可视化也表明,专家倾向于关注语法,而不是特定的领域。因此,尽管解码器专家似乎没有专门化,但它们似乎被一致地用于某些类型的标记。
虽然将专家想象为被切分的密集模型的隐藏层是很有吸引力的,但它们通常是完整的 FFNN 本身(DeepSeekMoE的创新在于每个MoE层包含1个共享专家+256个路由专家,每个标记激活8个路由专家):
图 12
由于大多数 LLM 都有多个解码器块,给定的文本会在生成文本之前经过多个专家:
图 13
选择的专家可能因标记而异,从而导致不同的“路径”被采用:
图 14

如果我们更新解码器块的可视化,它现在将包含更多的 FFNN(每个专家一个):
图 15

解码器块现在有多个 FFNN(每个“专家”一个),它可以在推理过程中使用。

模型如何知道使用哪些专家呢?

现在我们已经有一组专家,模型如何知道使用哪些专家呢?

路由器(Router)

在专家之前,添加了一个路由器(Router)(也称为门控网络(Gate Network)),它被训练用来选择给定标记的专家。
路由器(或门控网络)也是一个 FFNN,它根据特定输入选择专家。它输出概率值,用于选择最匹配的专家:
图 16
门控网络(或称路由机制)

门控网络(或称路由机制)负责动态分配输入token到特定的专家。该机制的目标是根据输入特征,选择最适合处理这些特征的专家。例如在上图中“More”这个令牌可能被路由到第二个专家,而“Parameters”则可能被分配给第二个专家。在某些情况下,一个token甚至可以被分配到多个专家以提高鲁棒性。

专家层返回所选专家的输出,乘以门控值(选择概率)。路由器与专家(其中只选择少数)一起构成了MoE 层:在这里插入图片描述
路由机制的实现依赖于一个由参数化学习驱动的路由器。该路由器通常是一个小型神经网络或逻辑模块,其输出为一组概率或分配权重,用于指引令牌分发过程。路由器的参数通过与主模型共同优化,使其在不同训练阶段能够动态适应数据分布和任务需求。
①. 如图所示门控网络/路由机制的完整工作流程:

  • 首先计算路由概率p(如0.65和0.8),用于选择FFN专家
  • 然后生成一个门控值(图中用虚线表示)
  • 这个门控值会与选中的FFN专家的输出相乘

②. 门控值的作用:

  • 用于调节FFN专家输出的强度
  • 可以看作是对专家输出的一个加权因子 -
  • 通过门控机制可以实现更平滑的输出

③. 门控网络/路由机制整体流程:
最终输出 = 选中的FFN专家的输出 × 门控值(虚线表示的值) 这种双重机制(路由概率 + 门控值)使得模型既能够选择合适的专家,又能够灵活地控制专家输出的影响程度。
在这里插入图片描述

MoE 层有两种形式:稀疏(Sparse)或密集(Dense)的专家组合。

两者都使用路由器来选择专家,但稀疏 MoE 只选择少数专家,而密集 MoE 选择所有专家,尽管可能以不同的分布方式。
在这里插入图片描述

稀疏MoE层是混合专家模型的核心组件,通常用于替代传统Transformer中的前馈网络(FFN)层。这些层由多个"专家"构成,每个专家本质上是一个独立的神经网络。在典型实现中,这些专家是简单的前馈网络,但根据实际需求,它们也可以采用更复杂的结构,甚至嵌套
MoE层,从而形成多层次的专家体系。值得注意的是,每个专家FFN的结构都比传统FFN更简单,因为单个专家只需要处理特定类型的输入,而传统FFN则需要处理所有情况。这种专业化分工使得每个专家可以使用更少的参数来完成其特定任务。MoE层的工作原理基于稀疏激活策略:在每次前向传播中,仅部分专家会被激活并参与计算。这种机制显著降低了计算开销,同时保留了模型在高维特征空间中表达复杂模式的能力。

结构特点:

  • 包含多个FFN专家网络(上图中每组4个FFN专家)
  • 每个专家都是独立的前馈神经网络
  • 采用稀疏激活机制,即每个token只会激活少数专家

稀疏性体现:

  • 不是所有专家都会被同时使用
  • 每个token只会路由到最相关的专家
  • 图中显示两组专家系统,每组4个FFN专家(FFN 1-4)
  • 专家之间相互独立,可以并行计算

例如,对于一组标记,MoE 会在所有专家之间分配标记,而稀疏 MoE 只选择少数专家。

在当前的 LLM 状态下,当你看到“MoE”时,通常是指稀疏 MoE,因为它允许使用专家的一个子集。这对于 LLM 来说是一个重要的特性,因为它在计算上更便宜。

门控网络决定专家选择

门控网络可以说是任何 MoE 中最重要的组成部分,因为它不仅决定了在推理时选择哪些专家,还在训练时做出选择。

在其最基本的形式中,我们将输入(x)乘以路由器权重矩阵(W):

图 18

然后,我们在输出上应用SoftMax,为每个专家创建一个概率分布G(x):在这里插入图片描述
路由器使用这个概率分布来选择最适合给定输入的专家。最后,我们将每个路由器的输出与每个选定的专家相乘,并将结果求和。

在这里插入图片描述让我们把所有内容放在一起,探索输入是如何通过路由器和专家流动的:
在这里插入图片描述
在这里插入图片描述

简单的路由会产生专家不平衡

然而,这个简单的函数常常导致路由器选择同一个专家,因为某些专家可能比其他专家学得更快。
图 22

这不仅会导致专家选择的分布不均,而且有些专家可能几乎得不到训练。这在训练和推理过程中都会引发问题。

相反,我们希望在训练和推理过程中让每个专家都具有同等的重要性,这被称为负载均衡(Load Balancing)。某种程度上,这是为了防止对相同的专家过度拟合。

为了平衡专家的重要性,我们需要关注路由器,因为它是决定在特定时间选择哪些专家的主要组件。

负载均衡的路由器方法

KeepTopK 策略

一种用于负载均衡的路由器方法是通过一个简单的扩展,称为KeepTopK。通过引入可训练的(高斯)噪声,我们可以防止总是选择相同的专家。

图 23
然后,除了你希望激活的前 k 个专家(例如 2 个)之外,所有其他专家的权重将被设置为-∞。
图 24
将这些权重设置为-∞后,SoftMax 的输出结果将为0的概率:
图 25

KeepTopK 策略是许多 LLM 仍在使用的策略,尽管有许多有前景的替代方案。需要注意的是,KeepTopK 也可以在没有额外噪声的情况下使用。

Token Choice

KeepTopK 策略将每个标记路由到少数选定的专家。这种方法被称为Token Choice,允许将给定的标记发送到一个专家(top-1 路由):

图 26

或者多个专家(top-k 路由):
图 27

主要好处是它允许对专家的贡献进行加权和整合。

负载均衡损失

为了在训练过程中获得更均匀的专家分布,引入了辅助损失(也称为负载均衡损失),并将其添加到网络的常规损失中。它增加了一个约束,迫使专家具有同等的重要性。
这个辅助损失的第一个组成部分是对整个批次中每个专家的路由器值进行求和:

图 28

这为我们提供了每个专家的重要性分数,它表示无论输入是什么,给定专家被选中的可能性。
我们可以用它来计算变异系数(Coefficient of Variation,CV),它告诉我们专家之间的重要性分数有多大差异。
图 29
例如,如果重要性分数之间的差异很大,CV 将会很高:
图 30
相比之下,如果所有专家的重要性分数相似,CV 将会很低(这是我们希望达到的):
图 31

利用这个 CV 分数,我们可以在训练过程中更新辅助损失,使其尽可能降低 CV 分数(从而给予每个专家同等的重要性):

图 32

最后,辅助损失被作为单独的损失在训练过程中进行优化。
不平衡不仅出现在被选择的专家之间,还出现在发送给专家的标记分布中。
例如,如果输入标记不成比例地发送给一个专家而不是另一个专家,那么这也可能导致训练不足:

图 33

专家容量(Expert Capacity)

在这里,问题不仅在于使用了哪些专家,还在于它们被使用的程度。

解决这个问题的一个方法是限制每个专家可以处理的标记数量,即专家容量(Expert Capacity)。当专家达到容量时,后续的标记将被发送到下一个专家:

图 34

如果两个专家都达到了容量,标记将不会被任何专家处理,而是被发送到下一层。这被称为标记溢出(token overflow)。

图 35
DeepSeekMoE通过动态容量调整解决该问题:当专家达到容量时,自动将溢出标记路由到亲和度次高的专家,而非直接丢弃

Switch Transformer

最早解决 MoE 训练不稳定性问题(例如负载均衡)的 Transformer 基 MoE 模型之一是Switch Transformer。它简化了大部分架构和训练过程,同时提高了训练的稳定性。

切换层

Switch Transformer 是一个 T5 模型(编码器-解码器),它用一个切换层(Switching Layer)替换了传统的 FFNN 层。切换层是一个稀疏 MoE 层,为每个标记选择一个专家(Top-1 路由)。

图 36

路由器在计算选择哪个专家时没有任何特殊技巧,而是对输入乘以专家权重后的结果取 SoftMax(与我们之前所做的相同)。

图 37

这种架构(Top-1 路由)假设路由器只需要一个专家来学习如何路由输入。这与我们之前看到的假设不同,我们之前假设标记应该被路由到多个专家(Top-k 路由)以学习路由行为。

容量因子

容量因子是一个重要的值,因为它决定了一个专家可以处理多少标记。Switch Transformer 在此基础上引入了一个容量因子,直接影响专家的容量。
图 38
专家容量的组成部分很简单:
图 39

如果我们增加容量因子,每个专家将能够处理更多的标记。
图 40

然而,如果容量因子过大,我们会浪费计算资源。相反,如果容量因子过小,模型性能会因标记溢出而下降。

辅助损失

为了进一步防止标记丢失,引入了一个简化的辅助损失版本。与计算变异系数不同,这个简化的损失将每个专家的标记分配比例与路由器概率比例进行加权。
图 41

由于目标是在N个专家之间均匀地路由标记,我们希望向量P和f的值为 1/N。

α是一个超参数,我们可以在训练过程中用它来微调这个损失的重要性。过高的值会压倒主损失函数,而过低的值对负载均衡几乎没有帮助。

视觉模型中的MOE

MoE 并不仅限于语言模型。视觉模型(例如 ViT)利用基于 Transformer 的架构,因此也有潜力使用 MoE。

简单回顾一下,ViT(Vision-Transformer)是一种将图像分割成小块(patches),并像处理标记一样处理这些小块的架构。

图 42

这些小块(或标记)随后被投影到嵌入向量中(带有额外的位置嵌入),然后输入到常规的编码器中:

图 43

当这些小块进入编码器时,它们像标记一样被处理,这使得这种架构非常适合使用 MoE。

Vision-MoE(V-MoE)

Vision-MoE(V-MoE)是视觉模型中 MoE 的首批实现之一。它采用了我们之前提到的 ViT,并用稀疏 MoE 替换了编码器中的密集 FFNN。

图 44

这使得 ViT 模型能够通过增加专家数量实现大规模扩展,尽管它们的规模通常比语言模型小。

为了减少硬件限制(因为图像通常包含许多小块),为每个专家设定了一个小的预定义专家容量。然而,低容量往往会导致小块被丢弃(类似于标记溢出)。

图 45

为了保持低容量,网络会为小块分配重要性分数,并优先处理这些小块,这样溢出的小块通常是不太重要的。这种方法被称为批量优先级路由(Batch Priority Routing)。

图 46

因此,即使标记的百分比减少,我们仍然可以看到重要的小块被路由。

图 47

优先级路由允许通过专注于最重要的小块来减少处理的小块数量。

软MoE

在 V-MoE 中,优先级评分器帮助区分更重要的小块和不太重要的小块。然而,小块被分配给每个专家,未处理的小块中的信息会丢失。

Soft-MoE旨在从小块(标记)的离散分配转变为“软”分配,通过混合小块来实现。

首先,我们将输入x(小块嵌入)与一个可学习的矩阵Φ相乘。这为我们提供了路由器信息,它告诉我们某个标记与给定专家的相关性。

图 48

然后,通过对路由器信息矩阵(在列上)进行 SoftMax 操作,我们更新每个小块的嵌入。img

更新后的小块嵌入实际上是所有小块嵌入的加权平均值。

图 50

从视觉上看,就好像所有小块都被混合在一起。这些混合后的小块随后被发送到每个专家。在生成输出后,它们再次与路由器矩阵相乘。

图 51

路由器矩阵在标记级别影响输入,在专家级别影响输出。
因此,我们得到的是被处理的“软”小块/标记,而不是离散的输入。

Mixtral 8x7B中的MOE参数

MoE 的一个有趣之处在于它的计算需求。由于在任何给定时间只使用专家的一个子集,我们拥有的参数比实际使用的要多。

尽管 MoE 模型有更多的参数需要加载(稀疏参数),但在推理过程中,我们只需要使用其中的一部分(活跃参数)。

换句话说,我们仍然需要将整个模型(包括所有专家)加载到设备上(稀疏参数),但在运行推理时,我们只需要使用一个子集(活跃参数)。MoE 模型需要更多的显存来加载所有专家,但在推理时运行速度更快。

让我们通过一个例子来探索稀疏参数和活跃参数的数量:Mixtral 8x7B。

图 52

在这里,我们可以看到每个专家的大小是5.6B,而不是 7B(尽管有 8 个专家)。

图 53

我们需要加载8x5.6B(46.7B)的参数(以及所有共享参数),但在推理时,我们只需要使用2x5.6B(12.8B)的参数。

DeepSeekMoE

dsmoe
DeepSeekMoE 的基本架构建立在 Transformer 框架之上,在前馈网络(FFN)层引入了创新的 MoE 机制。

  • 与传统 MoE 使用较粗粒度的专家划分不同,DeepSeekMoE采用了更细粒度的专家划分方式,使每个专家能够负责更具体的任务,从而提高模型的灵活性和表达能力。
  • 与传统MoE架构相比,DeepSeekMoE在专家划分、负载均衡、路由机制等方面进行了多项创新,使得模型在训练和推理过程中更加高效和稳定。DeepSeekMoE不仅继承了MoE架构的优势,还通过高效的设计在效率与性能之间取得了更好的平衡。
  • 在DeepSeek-V3中,除前三层保留传统的FFN结构外,其他所有FFN层都被替换为DeepSeekMoE层,从而形成了一个总参数量为671B的庞大网络结构,其中每个token激活37B参数。这种创新设计使得DeepSeekMoE在处理复杂任务时表现出色,极大提升了计算效率和任务处理能力。

专家机制创新

DeepSeekMoE 的每个 MoE 层由 1 个共享专家和 256 个路由专家组成,每个 token 会激活 8
个路由专家。这种设计使得模型能够在保持高性能的同时,显著减少计算资源的消耗。
共享专家与路由专家:不同于传统 MoE 中专家都是独立的设计,DeepSeekMoE 引入了共享专家的概念。共享专家负责处理所有 token的通用特征,而路由专家则根据 token的具体特征进行动态分配。这种分工不仅减少了模型的冗余、提高了计算效率,还使得模型能够更好地处理不同领域的任务。

与传统的稠密模型不同,DeepSeekMoE 采用了稀疏激活机制,即每个 token只会激活少数专家。这种机制不仅降低了计算开销,还使得模型能够更灵活地处理不同类型的输入,特别是在需要高度专业化知识的场景中。
举例说明:假设模型在处理一段数学推理文本:“要解决这个二次方程,我们首先需要计算判别式,然后使用求根公式。”
在传统MoE中,可能整个数学相关内容都由同一个"数学专家"处理。而在DeepSeekMoE中:
共享专家会处理句子的基本语法结构和通用语言特征;不同的路由专家则分别专门处理: 方程识别相关的特征、 判别式计算相关的特征、求根公式相关的特征。

  • 例如在处理数学推理文本时,DeepSeekMoE的共享专家处理基础语法,而路由专家分别处理方程识别、判别式计算等专业特征。

这种细粒度的专家划分和共享专家机制的结合,使得模型能够更精确地处理专业任务,同时保持计算效率。

动态负载均衡:无辅助损失策略

在传统的 MoE 模型中,负载均衡是一个关键问题。由于每个 token 只会激活少数专家,某些专家可能会因为处理过多的 token 而负载过高,而其他专家则可能负载过低。这种不均衡会导致计算资源的浪费,甚至可能引发路由崩溃,即所有 token 都被路由到少数几个专家,导致其他专家无法发挥作用。传统 MoE通常使用辅助损失(auxiliary loss)来鼓励负载均衡,但这种策略可能会对模型性能产生负面影响。
DeepSeekMoE 提出了一种无辅助损失的负载均衡策略,通过动态调整每个专家的偏置项来实现负载均衡。无辅助损失策略是指在训练过程中,不需要引入额外的损失函数来强制负载均衡,而是通过动态调整专家的偏置项来自然实现负载均衡。

  • 动态偏置调整:在训练过程中,DeepSeekMoE 会监控每个专家的负载情况。如果某个专家的负载过高,系统会自动降低其偏置项,从而减少该专家的激活频率;反之,如果某个专家的负载过低,系统则会增加其偏置项,使其更容易被激活。
  • 无辅助损失的优势:与传统的辅助损失相比,无辅助损失的负载均衡策略不会对模型性能产生负面影响,同时能够有效避免路由崩溃现象。

举例说明:假设在训练过程中,某个专家因为处理了过多的 token 而负载过高,DeepSeekMoE 会自动降低该专家的偏置项,使得其他专家能够分担部分负载。这种动态调整确保了每个专家的负载均衡,从而提高了模型的训练效率。

序列级负载均衡

防止极端不平衡 在 MoE 模型中,负载均衡可以在不同粒度上进行控制。除了全局的负载均衡(即针对整个数据集的专家分配情况)和局部级负载均衡(即针对单个 batch 或单个节点的专家分配情况),DeepSeekMoE 还引入了序列级负载均衡,作为其创新设计之一。
序列级负载均衡专门针对单个输入序列内的 token 分配情况进行优化,防止单个序列内的 token 过度集中在少数专家上,从而避免极端不平衡的情况。这种细粒度的均衡策略是对全局和局部负载均衡的补充,确保即使在单个序列中,专家的负载也能保持相对均衡。这些不同级别的负载均衡策略共同作用,确保模型在不同粒度上都能高效运行。

  • 序列级平衡损失:该损失函数鼓励每个序列内的专家负载均衡,从而避免某些序列中的 token 过度集中在少数专家上。
  • 极小化的平衡因子:DeepSeekMoE 为序列级平衡损失设置了一个极小的平衡因子,以确保其在整体训练过程中不会对模型性能产生显著影响。

举例说明:假设在一个序列中,某个 token 被过度分配到某个专家,导致该专家的负载过高。序列级平衡损失会通过调整路由机制,使得该序列中的其他 token 能够更均匀地分配到其他专家,从而避免负载不均衡。

节点限制路由

优化跨节点通信 在分布式训练环境中,跨节点的通信成本较高,尤其是在专家并行的情况下。为了减少训练过程中的通信开销,DeepSeekMoE 采用了节点限制的路由机制。每个 token 最多被发送到 4个节点,这些节点是根据每个节点上专家的亲和度得分选择的。

  • 节点限制的优势:通过限制每个 token 的路由节点数量,DeepSeekMoE 能够显著减少跨节点的通信开销,从而提高训练效率。
  • 通信与计算的重叠:DeepSeekMoE 的路由机制确保了通信与计算的重叠,使得在模型规模进一步扩展时,通信开销几乎可以忽略不计。

举例说明:假设在一个分布式训练环境中,某个 token 需要被分配到多个专家进行处理。DeepSeekMoE 的路由机制会优先选择与当前节点亲和度最高的专家,从而减少跨节点的通信开销。

无 token 丢弃

确保推理负载均衡 在传统的 MoE 模型中,负载不均衡可能导致某些 token 被丢弃(专家处理容量有上限),从而影响模型的性能。DeepSeekMoE 通过有效的负载均衡策略,确保了在训练和推理过程中不会丢弃任何 token。

  • 推理时的负载均衡:在推理阶段,DeepSeekMoE 通过冗余专家部署策略,确保每个 GPU 的负载均衡。具体来说,系统会检测高负载的专家,并将这些专家冗余部署在不同的 GPU 上,从而平衡每个 GPU 的负载。
  • 动态冗余策略:DeepSeekMoE 还探索了动态冗余策略,即在每个推理步骤中动态选择激活的专家,以进一步优化推理效率。

举例说明:假设在推理过程中,某个专家因为处理了过多的 token 而负载过高,DeepSeekMoE 会自动将该专家的部分负载转移到其他 GPU 上的冗余专家,从而确保推理过程的顺利进行。


http://www.mrgr.cn/news/93223.html

相关文章:

  • 5年前问题的答案,如何造统计信息
  • Mybatis中的设计模式
  • 安装微软最新原版系统,配置好系统驱动并保留OOBE全新体验
  • JAVA入门——反射
  • 《Operating System Concepts》阅读笔记:p188-p199
  • 蓝桥杯C组真题——巧克力
  • Linux软件包管理
  • HTTP 黑科技
  • uniapp:小程序将base64图片字符串保存到手机相册
  • 免费分享一个软件SKUA-GOCAD-2022版本
  • C++11中atomic
  • 大模型在呼吸衰竭预测及围手术期方案制定中的应用研究
  • 计算机网络核心知识点:信道容量、OSI模型与调制技术详解
  • 鸿蒙与DeepSeek深度整合:构建下一代智能操作系统生态
  • iOS安全和逆向系列教程 第8篇:iOS应用动态分析与Hook技术
  • iOS安全和逆向系列教程 第2篇: iOS系统架构详解 - 逆向工程的基石
  • iOS安全和逆向系列教程 第3篇:搭建iOS逆向开发环境 (上) - 工具链与基础配置
  • iOS安全和逆向系列教程 第5篇 iOS基础开发知识速览 - 理解你要逆向的目标
  • Django项目实战
  • C语音的常见概念