LLM MoE 形式化探索

MoE,即大语言模型中的混合专家模型*,核心思想是对于每个输入,并不激活整个庞大的模型,而是通过一个"路由"机制,选择少数几个"专家"子网络进行处理,从而在保持模型总参数量巨大的前提下,大幅降低计算成本。

这里尝试对MoE进行形式化探索,所用示例参考自网络资料。

1. MOE

1.1 MoE核心概念

输入: ,通常是一个词或令牌的嵌入向量。

专家总数: 个专家。每个专家本身是一个前馈神经网络,其参数为

通常,每个专家具有相同的结构(例如,与标准Transformer中的FFN层相同:两个线性层和一个非线性激活)。

门控网络: ,是一个将输入映射到专家权重向量的函数。

激活的专家数: (一个远小于的超参数,通常为1、2或4)。这是每次前向传播时实际参与计算的专家数量。

1.2 前向传播

对于一个输入x,MoE层(通常替代标准Transformer中的FFN层)的输出计算如下:

步骤1:路由计算**

计算门控权重:

其中:

G(x)通常是一个简单的线性层:

  • 保留G(x)中最大的k个值。
  • 将其余个值设置为

仅对这个非负无穷的值进行计算,确保它们的和为1。

最终,是一个稀疏向量,只有k个非零值,其余为0。

步骤2:专家计算

假设被选中的k个专家的索引集合为

并行计算这些专家的输出:

步骤3:加权求和

将专家输出按门控权重加权求和,得到最终输出:

其中中对应专家的权重。

在整个前向过程中,只有k个专家被激活并需要计算,而其他E-k个专家处于"休眠"状态。这使得总计算量(FLOPs)与k成正比,而不是E。

3. 训练技术

单纯的上述形式会带来严重的训练不稳定性。

以下是核心的解决方案:

3.1 负载均衡损失

为了防止门控网络总是将流量导向少数几个热门专家,需要引入辅助损失来鼓励均匀路由。

常用的是重要性损失和负载损失。

1)重要性损失:

鼓励每个专家在一批数据中获得的权重总和相近。

其中:

  • 是专家i在一批数据中被选中的频率。
  • 是专家i在一批数据中获得的门控权重总和。
  • 是一个超参数。

2)负载均衡损失

负载均衡损失更常用,见于Switch Transformer、GShard

它直接考虑每个专家的**期望负载**,并最小化其方差。

这个辅助损失会被加到模型的主损失(如语言建模损失)上:

其中是辅助损失的系数。

3.2 路由策略与稳定性

随机路由:在训练初期加入噪声,促进探索。

容量因子:为每个专家设置一个处理令牌数的上限("容量")。超过容量的令牌会被丢弃或溢出到下一个最合适的专家。这保证了计算的可预测性,是生产系统中的必备项。

专家并行:在分布式训练中,将不同专家放在不同的设备上。门控网络的路由决策本质上是一个

All-to-All通信操作,这是MoE训练的核心通信开销。

4. MoE集成

4.1 Transformer集成

MoE层通常**直接替代Transformer解码器中的前馈网络层**。

一个标准的 MoE-Transformer Block可以描述为:

  1. 自注意力层。

  2. MoE层(替代FFN)。

  3. 残差连接和层归一化应用于每个子层。

对于一个有L层的模型,可以只在其中一部分层(例如,每隔一层或最后几层)使用MoE,其余层使用标准的稠密FFN。

4.2 MoE总结

一个大语言模型MoE层可以最简洁地定义为:

其成功部署依赖于:

  • 一个高效的稀疏门控函数G(x) 。
  • 一个强制的负载均衡约束
  • 一个支持大规模条件计算和专家并行的分布式系统。

这种架构使模型规模突破了传统稠密模型的硬件限制,成为当前构建万亿参数级别大语言模型的主流技术路径之一(如Mixtral 8x7B, DeepSeek-V3, Grok-1等)。

以下是对MoE的优势和挑战的总结。

方面 优势(形式化) 挑战(形式化)
计算效率 计算成本 : O(k⋅d_ffn) 参数量 : O(E⋅d_ffn) k≪E,实现了条件计算 内存占用:需要将所有 E个专家的参数加载到内存(或不同设备),尽管每次只用 k 个。
模型容量 总参数 ↑(例如,万亿级),但推理成本可控。 训练不稳定:需要精细设计的负载均衡损失 Laux​ 和超参数调优。
泛化能力 专家可能形成功能分化(如语法、事实、推理等),提升模型质量。 过拟合:由于每个样本只接触少量参数,可能在小型任务上过拟合。需要正则化。
系统 理论上的计算效率高。 通信瓶颈 :分布式训练中,All-to-All通信开销巨大。 推理延迟波动:不同输入激活的专家不同,导致延迟不一致。

reference


从LLM角度学习和了解MoE架构

https://blog.csdn.net/liliang199/article/details/152614783

Switch Transformers: Scaling to Trillion Parameter Models

https://arxiv.org/pdf/2101.03961

MoE(Mixture-of-Experts)大模型架构的优势是什么?为什么?

https://www.zhihu.com/tardis/bd/ans/3364787819

相关推荐
Java中文社群43 分钟前
保姆级喂饭教程:什么是Skills?如何用Skills?
人工智能
2301_800256111 小时前
【人工智能引论期末复习】 第6章 深度学习4 - RNN
人工智能·rnn·深度学习
商业讯网11 小时前
国家电投海外项目运营经验丰富
大数据·人工智能·区块链
面向Google编程1 小时前
Flink源码阅读:Mailbox线程模型
大数据·flink
薛定谔的猫19822 小时前
llama-index Embedding 落地到 RAG 系统
开发语言·人工智能·python·llama-index
gorgeous(๑>؂<๑)2 小时前
【西北工业大学-邢颖慧组-AAAI26】YOLO-IOD:实时增量目标检测
人工智能·yolo·目标检测·计算机视觉·目标跟踪
飞哥数智坊2 小时前
TRAE 国际版限免开启!一份给新手的入门说明书
人工智能·ai编程·trae
翱翔的苍鹰2 小时前
神经网络中损失函数(Loss Function)介绍
人工智能·深度学习·神经网络
狼爷2 小时前
【译】Skills 详解:Skills 与 prompts、Projects、MCP 和 subagents 的比较
人工智能·aigc