当前的 MoE 架构在继承早期核心思想的同 时,针对 LLM 等大规模应用场景进行了诸多关键的技术革新与优化。
1. 专家网络与门控网络协同工作,构成了 LLM 存储与高效调用海量 知识的基础
MoE 架构依然围绕两大核心组件构建:专家网络(Experts Network)和门控网络 (Gating Network,亦称路由器 Router)。这两大组件的协同工作,为 LLM 提供了 大规模存储知识并根据输入动态、高效调用相关知识的基础。
专家网络(Experts Network)
在最新的 MoE 实现中,尤其是在 LLM Transformer 架构下,专家网络通常是指一 系列独立的、结构相似(但参数不同)的前馈神经网络(FFN,Feed-Forward Networks)。在 Transformer 模型中,MoE 层往往用于替代标准的、稠密的 FFN 层。 选择替换 FFN 层而非注意力层,主要是因为研究发现 FFN 层在 Transformer 中不 仅占据了显著的参数量(通常约三分之二),更被认为是存储和加工模型在预训练 阶段学到的事实性知识和世界知识的关键场所。因此,将FFN层扩展为多个专家, 天然契合了 LLM 对海量知识容量的需求,使得 LLM 可以通过增加专家数量来大 幅提升其知识存储的上限。例如,Google 的 GLaM 模型,其每个 MoE 层就包含 了多达 64 个 FFN 专家,并且倾向于扩展每个专家的中间隐藏层维度,以增强单 个专家的表达能力,从而支持其 1.2 万亿的总参数规模。 每个专家网络接收由门控网络路由过来的输入(通常是用上一层注意力机制输出 的 token 表示),并独立地对该输入进行非线性变换,生成各自的输出。尽管所有 专家可以拥有相同的网络结构,但它们各自拥有独立的权重参数。这使得在训练 过程中,不同的专家能够学习到不同的知识或技能,从而特化于处理输入数据的 不同方面或应对不同的子任务。对于 LLM 而言,这意味着不同的专家可以分别掌 握不同领域、不同语言或不同类型的知识。
门控网络(Gating Network/Router)
门控网络是 MoE 架构的指挥中心,其核心功能是实现对输入数据的动态、智能路 由,确保 LLM 在面对不同输入时能激活最相关的知识子集。对于 MoE 层接收到 的每一个输入 token,门控网络会计算一个针对所有可用专家的亲和度得分或概率 分布。这些得分反映了每个专家处理当 token 的适宜性或重要性。 门控网络本身通常也是一个可学习的神经网络,例如一个简单的线性层,其输入 是 token 的表征,输出是对应每个专家的 logits(即未归一化的得分,通常是模型 最后一个全连接层的输出)。这些 logits 随后会通过一个选择机制(如 Softmax 函 数结合 Top-k 选择)转换成最终的路由决策和权重。门控网络的参数与专家网络 的参数一同通过端到端的方式进行训练,目标是学习到一种最优的路由策略,使 得整个 MoE 系统(即 MoE LLM)能够在特定任务上表现最佳。
信息流(Information Flow)
典型的 MoE 层信息处理流程如下: 1) 输入 token(例如来自 Transformer 块中自注意力层的输出)进入 MoE 层; 2) 该 token 的表征被送入门控网络; 3) 门控网络为池中的每一个专家计算一个路由分数(logit); 4) 基于这些路由分数和一个预设的路由算法(例如 Top-k 选择),门控网络会选 择一个或少数几个专家被激活; 5) 原始 token 的表征被发送给这些被选中的专家; 6) 每个被选中的专家独立地处理该 token,并产生各自的输出;
2. 稀疏激活、智能路由与负载均衡是 MoE 的核心技术,共同奠定了 LLM 性能提升的基石
MoE 架构之所以能够成功应用,并成为支撑 LLM 发展的关键技术,依赖于一系 列核心技术的支持。这些技术共同保障了 MoE LLM 在大幅扩展参数规模以承载 更多知识的同时,依然能够保持高效的计算性能、稳定的训练过程和良好的泛化 能力。
2.1. 稀疏激活(Sparse Activation)使得 LLM 能够突破参数与算力的增长瓶颈
稀疏激活是 MoE 模型区别于传统稠密模型的核心特征,也是其能够支撑 LLM 发 展的根本原因之一。其本质在于,对于任何给定的输入样本(例如,LLM 处理的 一个 token),模型中只有一小部分参数(即被门控网络选中的少数几个专家的参 数)会被激活并参与到实际的计算过程中,而模型中的绝大多数参数则保持非激 活状态。 这一机制带来了显著的计算优势,使得 LLM 的总参数量可以扩展到数千亿甚至 万亿级别(如 Switch Transformer 的 1.6 万亿参数和 GLaM 的 1.2 万亿参数),从 而极大地提升模型的潜在容量和学习复杂模式的能力。然而,由于在每次前向传 播中实际执行的浮点运算次数(FLOPs)仅与被激活的专家数量相关,因此其计算 成本可以控制在与一个规模小得多的稠密模型相当的水平。例如,GLaM 在推理 时仅激活约 8%(970 亿)的参数。这种用更少的计算撬动更大模型的能力,对于 在有限算力预算下训练和部署超大规模 AI 模型至关重要。稀疏激活的实现完全 依赖于门控网络的路由决策,Noam Shazeer 等人提出的稀疏门控混合专家 (Sparsely-Gated Mixture-of-Experts)思想,为后续大规模 MoE LLM 的发展奠定 了坚实基础。
2.2. 路由算法 (Routing Algorithms)作为 LLM 的智能调度系统,精准调度知识库
路由算法是门控网络用于选择专家的具体策略,它直接决定了信息如何在 MoE 层 中流动,对 LLM 的性能和效率有着至关重要的影响,堪称 LLM 内部知识库的智 能调度系统。 1) Top-k 路由(Top-k Routing):目前 MoE LLM 中最为广泛的路由策略之一。 其工作方式是:门控网络首先为输入 token 计算其与所有 N 个可用专家的亲 和度得分(logits),通常通过一个线性层作用于 token 嵌入得到,即?????? = ? ∙ ??,其中 x 是 token 嵌入(Embedding),??是可学习的门控权重矩阵。然 后,从这些 logits 中选出得分最高的?个专家。?值通常是一个远小于?的小整 数,例如 1 或 2,这直接决定了 LLM 在处理每个 token 时激活知识子集的稀 疏度。例如,Google 的 GShard 和 GLaM 均采用了 Top-2 门控,而 Switch Transformer 则开创性地采用了更为极致的 Top-1 门控。在 Top-1 门控中,每 个 token 仅被路由到一个专家进行处理。令人意外的是,这种简化不仅没有牺 牲模型质量,反而因为降低了路由计算的复杂度并使得每个专家的批处理大 小(即专家容量)可以减半,从而提升了计算效率和训练稳定性。被选中的? 个专家的 logits 会经过 Softmax 函数归一化,得到它们各自的门控权重?(?)?, 用于后续加权组合专家输出。这种设计不仅清晰定义了 LLM 内部信息流的路 径选择和权重分配,也在实现专家知识的有效特化处理和控制整体计算复杂 度之间取得了良好平衡,从而使 LLM 能够高效地处理大规模 token 序列。

2) 带噪声的 Top-k 路由(Noisy Top-k Gating):为了改善负载均衡和促进训练过 程中避免门控网络过早收敛到只选择少数几个专家,Noam Shazeer 等人引入 了在计算 logits 后、进行 Top-k 选择前加入高斯噪声的机制。噪声的引入使得 路由决策具有一定的随机性,有助于让更多的专家在训练初期得到学习机会。 其公式可以表示为:?(?)? = (? ∙ ??) + ??????????????() ∙ ????????((? ∙ ??????)? ),此处??????????????生成一个标准正态分布的随机变量,乘以 Softplus 保证噪声幅度为正,然后对?(?)进行 Top-k 选择和 Softmax。这种随 机扰动对于激活 LLM 中更多沉睡的专家、提升模型整体知识的丰富性和鲁棒 性具有积极作用。
3) 专家选择路由(Expert Choice Routing):与 Top-k 路由中 token 选择专家的 模式不同,专家选择路由反其道而行之,让专家选择 token。在该机制下,每 个专家会从当前批次的所有 token 中选择固定数量(即专家容量)的、其认为 最适合自己处理的 token。这种方式的一个主要优点是能够天然地实现完美的 负载均衡,因为每个专家处理的 token 数量是预先固定的,这对于优化大规模 LLM 训练的计算资源分配、保证所有专家得到均等训练机会具有直接优势。 然而,该机制也可能导致某些 token 被多个专家选中,或者某些 token 不被任 何专家选中,此时需要额外的处理机制,如将这些 token 直接传递到下一层以 避免这些问题。
4) 其他高级路由算法:随着 MoE 研究的深入,学术界和产业界也在不断探索更 先进的路由策略,旨在为 LLM 实现更高效、更健壮、更智能的 token 与专家 之间的匹配机制。例如基于相似度的路由、层级循环路由、非可训练路由(如 哈希路由)以及旨在改善训练稳定性的软性门控(Soft Gating)等。这些探索 反映了业界对于最大化 MoE LLM 性能与效率的不懈追求。
2.3. 负载均衡(Load Balancing)策略是确保 LLM 所有智囊有效运作的关键
负载均衡是确保 MoE LLM 模型训练成功和高效运行的关键环节。其目标是使得 在训练过程中,LLM 中所有专家都能接收到数量大致均等的训练样本,并承担相 近的计算负荷。如果缺乏有效的负载均衡机制,门控网络可能会导致路由崩溃, 使得 MoE LLM 退化为少数几个专家主导的系统,严重浪费模型的参数容量,阻 碍 LLM 整体智能的提升。
1) 辅助损失函数(Auxiliary Loss Functions):这是迄今为止最常用且核心的负 载均衡方法,广泛应用于 MoE LLM 的训练中。其思想是在模型的总损失函数 中额外加入一项或多项专门用于惩罚专家负载不均衡的损失项。例如,在早期 的 GShard 模型中,就引入了一个可微的辅助损失函数,通过专家平均门控和 平均门控决策的点积来促进负载均衡。在 Noam Shazeer 等人的早期工作及 GShard 和 GLaM 中,通常会设计两种类型的辅助损失:重要性损失 (Importance Loss),旨在确保所有专家对于整个批次的数据都具有一定的重 要性,通常定义为各专家所获得的门控权重总和的变异系数的平方;以及负载 损失(Load Loss),旨在确保分配给每个专家的 token 数量大致相等,通常定 义为每个专家实际接收到的 token 数量的分布与均匀分布之间的差异。Switch Transformer 则提出了一种简化的辅助负载均衡损失,其形式为:???????? = ? ∙ ? ∙ ∑ ?? ? ?=1 ∙ ??,其中,?是专家总数,??是分配给第?个专家的 token 在批次中 所占的比例,??是门控网络为第?个专家输出的平均概率(在批次所有 token 上 平均),?是一个超参数,用于控制该辅助损失在总损失中的权重。这个损失 函数的目标是使得??和??都趋向于1/?,即实现均匀路由,从而保证 LLM 的每 个专家都得到充分训练,避免知识分布的极端不均。尽管辅助损失被广泛应 用,但其引入也可能带来如梯度冲突、超参数调优复杂等问题。
2) 专家容量(Expert Capacity):这是一种硬性约束机制,即为 LLM 中的每个 专家设定一个在单次处理(例如一个 mini-batch)中所能接收的 token 数量上 限。GShard 就率先引入了专家容量限制来应对负载不均衡问题。如果某个 token被路由到的目标专家(或所有被选中的目标专家)均已达到其容量上限, 那么这个 token 就会被视为溢出。溢出的 token 通常会通过残差连接直接传递 到下一层,而不经过任何专家处理,或者在某些实现中被完全丢弃。专家容量 机制有助于防止 LLM 中少数专家被海量 token 淹没,但其阈值的设定(通常 表示为容量因子 Capacity Factor)也需要权衡:过低的容量因子会导致大量 token 被跳过,影响 LLM 的学习效率;过高的容量因子则可能削弱负载均衡 的效果。合理设置专家容量是平衡 LLM 训练效率与负载均衡效果的重要工程 实践。
3) 带噪声的门控(Noisy Gating):如前所述,在 Top-k 路由的 logits 计算中引入 噪声,可以增加路由的随机性,鼓励 LLM 的门控网络在训练初期探索更多的 专家,从而有助于实现更均匀的负载分布。
4) 无损负载均衡(Loss-Free Load Balancing):近年来,为了克服辅助损失带来 的潜在负面影响,研究者开始探索不依赖显式损失函数的负载均衡方法。例 如,DeepSeek提出的Loss-Free Balancing阐述了一种动态调整专家偏置(bias) 或路由分数的方法。该方法根据每个专家近期的负载情况,在路由决策前对其 原始路由分数进行调整(例如,对负载较重的专家施加负偏置,对负载较轻的 专家施加正偏置),从而在不引入额外损失梯度的情况下引导 token 流向负载 较轻的专家。这种方法旨在将 LLM 的负载均衡控制与主任务的优化解耦,有 望在不牺牲主任务性能的前提下,提升模型训练的稳定性和效率。
2.4. 训练策略(Training Strategies)是高效稳定训练 MoE LLM 的必要保障
训练 MoE LLM 相比于训练传统的稠密 LLM,需要考虑更多独特的因素和策略, 以确保模型能够稳定收敛并充分发挥其作为 LLM 核心架构的潜力。 1) 分布式训练与并行策略(Distributed Training and Parallelism Strategies):由 于 MoE LLM 通常参数量巨大,有效的分布式训练和并行策略至关重要。 Google 的 GShard 在早期就探索了专家并行(Expert Parallelism),将 MoE 层 中的每个专家分配到不同的计算设备(TPU 核心),而非 MoE 层则在所有设 备间复制,并通过 XLA 编译器自动分区和并行化处理,这为训练超过单个加 速器内存限制的超大规模 MoE LLM 奠定了基础。Switch Transformer 则基于 Mesh-TensorFlow(MTF)有效地结合了数据并行、模型并行和专家并行策略, 实现了在 TPU Pod 等大规模硬件集群上的高效训练。这些并行策略是支撑 MoE LLM 参数规模持续扩展的核心技术。 2) 端到端联合训练(Joint Training):MoE 模型中的专家网络和门控网络(路由 器)通常是作为一个整体进行端到端联合训练的。这意味着门控网络的路由决 策会影响专家网络的输入数据分布,而专家网络的学习情况又会反过来影响 门控网络如何调整其路由策略。通过统一的损失函数(包含主任务损失和辅助 负载均衡损失等)和反向传播算法,两者的参数得到协同优化。 3) 辅助损失的运用:负载均衡等辅助损失是 MoE LLM 训练策略中不可或缺的 一环,确保 LLM 的所有专家得到充分且均衡的训练。 4) 参数初始化(Initialization):MoE LLM 的参数初始化对于训练的稳定性和收 敛速度至关重要。一些研究表明,MoE 模型(特别是其专家网络或门控网络) 可能需要比稠密模型更小规模的初始化权重。例如,Switch Transformer 的研 究者发现,将标准 Transformer 初始化尺度因子缩减 10 倍,有助于提高训练 稳定性并改善模型质量,减少不同训练运行之间的方差。这对于动辄万亿参数 的 LLM 而言,是保证训练顺利启动和稳定进行的重要技巧。 5) 训练精度(Precision):在大规模 LLM 训练中,为了提高计算效率和减少内 存占用,通常会采用较低的数值精度,如 bfloat16。然而,MoE 模型由于其稀 疏激活和硬性路由决策的特性,在低精度训练下有时会面临稳定性问题。一种 有效的应对策略是采用选择性精度训练(Selective Precision Training)。例如, 在 Switch Transformer 中,路由器的输入 token 表征在进入路由器函数内部计 算时被临时转换为 float32 精度,以保证路由决策的数值稳定性,而路由器的 输出(如分发和组合张量)在传递给专家或进行通信前则被转换回 bfloat16 精 度。这种局部高精度处理能够在很大程度上保持 LLM 在 bfloat16 精度下训练 的效率优势,同时显著提升训练的稳定性。6) 专家 Dropout(Expert Dropout):对于参数总量巨大的稀疏 MoE LLM,在对 下游任务进行微调时,可能会比 FLOPs 匹配的稠密模型更容易出现过拟合。 为了缓解这一问题,Switch Transformer 的研究者提出了一种专家 Dropout 策 略。具体做法是,在微调阶段,对非专家层的参数(如自注意力层)使用标准 的较低 Dropout 率(例如 0.1),而对每个 MoE 层内部的专家网络(通常是 FFN 的中间层)应用一个显著更高的 Dropout 率(例如 0.4)。这种针对 MoE LLM 结构特点的正则化有助于提升模型在下游任务上的泛化能力。 7) 预训练稠密模型的 MoE 转换(Upcycling from Pre-trained Dense Models): 这是一种新兴且受到关注的 MoE LLM 训练(或初始化)策略,旨在利用已有 的、高质量的预训练稠密模型来加速和优化 MoE LLM 的构建过程。其基本思 路是,将一个预训练好的稠密模型的 FFN(前馈网络)层的权重复制多份,作 为 MoE 层中各个初始专家的参数。之后,可以通过一些方法(如对复制的权 重添加少量随机扰动,或在后续的继续预训练/微调阶段让它们独立更新)来 促进这些初始同质的专家逐渐分化,发展出各自的特长。阿里巴巴的 Qwen1.5- MoE-A2.7B 模型就是一个采用此策略的例子。这种方法有望显著减少从零开 始训练大规模 MoE LLM 所需的计算资源和时间,因为它复用了稠密模型已 经为 LLM 学到的通用知识,为构建更强 MoE LLM 提供了高效路径。