大模型面经——MoE混合专家模型总结 原创

发布于 2024-10-17 11:31
浏览
0收藏

​本篇将介绍MoE(Mixture of Experts,混合专家模型)相关面试题。

以下是一个快捷目录:

一、MoE介绍

二、MoE出现的背景

三、有哪些MoE模型

四、介绍稀疏 MoE 层

五、介绍门控网络或路由

六、为什么门控网络要引入噪声呢

七、如何均衡专家间的负载

八、“专家”指什么

九、专家的数量对预训练有何影响?

十、什么是topK门控

十一、MoE模型的主要特点

十二、MoE和稠密模型的对比

十三、MoE的优势

十四、MoE的挑战

十五、微调MoE的方法

十六、MoE的并行计算

回答

一、MoE介绍

"Mixture of Experts"(MoE)是一种机器学习模型,特别是在深度学习领域中,它属于集成学习的一种形式。MoE模型由多个专家(experts)和一个门控网络(gating network)组成。每个专家负责处理输入数据的不同部分或不同特征,而门控网络则负责决定每个输入应该由哪个专家来处理。

例如,在下图中,“More”这个 token 被发送到第二个专家,而“Parameters”这个 token 被发送到第一个专家。

大模型面经——MoE混合专家模型总结-AI.x社区

二、MoE出现的背景

本质上来说就是一种高效的 scaling 技术,用较少的 compute 实现更大的模型规模,从而获得更好的性能。

三、有哪些MoE模型

Switch Transformers、Mixtral、GShard、DBRX、Jamba DeepSeekMoE 等等。

以Mixtral为例

Mixtral 是一个稀疏的专家混合网络。它是一个decoder-only的模型,其中前馈块从一组 8 个不同的参数组中选择。在每一层,对于每个令牌,路由器网络选择其中两个组(“专家”)来处理令牌并附加地组合他们的输出。

大模型面经——MoE混合专家模型总结-AI.x社区

混合专家层

这种技术在控制成本和延迟的同时增加了模型的参数数量,因为模型只使用每个令牌总参数集的一小部分。具体来说,Mixtral 总共有 46.7B 个参数,但每个令牌只使用 12.9B 个参数。因此,它以与 12.9B 型号相同的速度和相同的成本处理输入和生成输出。

Mixtral 基于从开放 Web 中提取的数据进行预训练——同时培训专家和路由器。

四、介绍稀疏 MoE 层

稀疏 MoE 层一般用来替代传统 Transformer 模型中的前馈网络 (FFN) 层。MoE 层包含若干“专家”(例如 8 个),每个专家本身是一个独立的神经网络。在实际应用中,这些专家通常是前馈网络 (FFN),但它们也可以是更复杂的网络结构,甚至可以是 MoE 层本身,从而形成层级式的 MoE 结构。

五、介绍门控网络或路由

门控网络接收输入数据并执行一系列学习的非线性变换。这一过程产生了一组权重,这些权重表示了每个专家对当前输入的贡献程度。通常,这些权重经过softmax等函数的处理,以确保它们相加为1,形成了一个概率分布。这样的分布表示了在给定输入情境下每个专家被激活的概率。一个典型的门控函数通常是一个带有 softmax 函数的简单的网络。

六、为什么门控网络要引入噪声呢

为了专家间的负载均衡。也即防止一句话中的大部分token都只有一个专家来处理,剩下的七个专家(假设一共八个专家)“无所事事”。

七、如何均衡专家间的负载

引入噪声、引入辅助损失(鼓励给予所有专家相同的重要性)、引入随机路由、设置一个专家能处理的token数量上限

八、“专家”指什么

一个“专家”通常是前馈网络 (FFN)。数据经过门控网络选择后进入每个专家模型,每个专家根据其设计和参数对输入进行处理。每个专家产生的输出是对输入数据的一种表示,这些表示将在后续的步骤中进行加权聚合。或者通过单个专家模型进行处理。

九、专家的数量对预训练有何影响?

增加更多专家可以提升处理样本的效率和加速模型的运算速度,但这些优势随着专家数量的增加而递减 (尤其是当专家数量达到 256 或 512 之后更为明显)。同时,这也意味着在推理过程中,需要更多的显存来加载整个模型。值得注意的是,Switch Transformers 的研究表明,其在大规模模型中的特性在小规模模型下也同样适用,即便是每层仅包含 2、4 或 8 个专家。

十、什么是topK门控

选择前k个专家。为什么不仅选择最顶尖的专家呢?最初的假设是,需要将输入路由到不止一个专家,以便门控学会如何进行有效的路由选择,因此至少需要选择两个专家。

十一、MoE模型的主要特点:

  • 灵活性:每个专家可以是不同类型的模型,例如全连接层、卷积层或者递归神经网络。
  • 可扩展性:通过增加专家的数量,模型可以处理更复杂的任务。
  • 并行处理:不同的专家可以并行处理数据,这有助于提高模型的计算效率。
  • 动态权重分配:门控网络根据输入数据的特点动态地为每个专家分配权重,这样模型可以更加灵活地适应不同的数据。
  • 容错性:即使某些专家表现不佳,其他专家的表现也可以弥补,从而提高整体模型的鲁棒性。

十二、moe和稠密模型的对比

1、预训练

  相同计算资源,MoE 模型理论上可以比密集模型更快达到相同的性能水平。

2、推理

  moe:高显存,高吞吐量;

  稠密模型:低显存,低吞吐量

十三、moe的优势

   1、训练优势:预训练速度更快;

   2、推理优势:推理速度更快

十四、moe的挑战

   1、训练挑战:微调阶段,泛化能力不足,容易过拟合

   2、推理挑战:对显存的要求更高

十五、微调moe的方法

   1、冻结所有非专家层的权重,专门只训练专家层

   2、只冻结moe层参数,训练其它层的参数

十六、moe的并行计算

大模型面经——MoE混合专家模型总结-AI.x社区

图片来源:b站 算法猪立业


参考资料

​https://blog.csdn.net/2201_75499313/article/details/136412787​

​https://www.zhihu.com/question/634844209/answer/3467132890​

​https://zhuanlan.zhihu.com/p/674698482​

​​​https://b23.tv/jCL0r4N​

文转载自公众号瓦力算法学研所,作者:喜欢瓦力的卷卷

原文链接:​https://mp.weixin.qq.com/s/b_FeWWHcwXPxAC_SL6ABfg​​​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐