混合专家模型(MoE)介绍

稀疏专家模型(Sparse expert models)介绍

随着大模型的发展及其背后训练&推理成本的不断攀升,稀疏专家模型(Sparse expert models)这个三十年历史的概念,因其在提高计算效率方面的可能性,再次吸引了人们的注意。

这类架构包括 Mixture-of-Experts、Switch Transformers、Routing Networks、BASE Layers 等,所有这些都服务于一个统一的想法:对每个输入的处理只使用模型的部分参数。通过这种方式将参数量和实际计算量分离,从而允许极大但高效的模型。其中,基于 Transformer 结构的混合专家模型(Mixture-of-Experts)是当下最流行的变体,也是本文主要探讨范围。

基本概念

混合专家(MoE)

一种通用的模型结构,理论上可以适用于任意神经网络模块。也可以被认为是具有不同的子模型,每个子模型用于不同的输入,混合专家模型由两个关键部分组成:

  • 混合专家层(MoE Layer): 这些层代替了传统 Transformer 模型中的前馈网络(FFN)层。MoE 层包含若干“专家”,每个专家本身是一个独立的神经网络。在实际应用中,这些专家通常是前馈网络 (FFN),但它们也可以是更复杂的网络结构,甚至可以是 MoE 层本身,从而形成层级式的 MoE 结构。
  • 门控网络或路由(Gate or Router): 用于控制哪些 token 被发送到哪个 Expert。路由算法是所有混合专家架构的关键特征,决定了知识分配和专家分化结果。

稀疏性(Sparsity)

神经网络吸收信息的能力,受限于其参数的数量。在 MoE 的基础上,实现条件计算(Conditional computation)的理论承诺,即对每个输入样本,激活神经网络不同部分(作为对比,在传统的稠密模型中,所有的参数都会对所有输入数据进行处理),使得在不增加额外计算负担的情况下扩展模型规模成为可能。
在这里插入图片描述

路由算法

这个领域目前有了比较广泛的研究和实现,理解路由算法的常用方法是分析路由分数矩阵:

  • 每个 Token 选择前 k 个 Expert(目前用的最多,需要考虑 balancing)
  • 每个 Expert 选择前 k 个 Token(每个 Token 路由到可变数量专家,负载均衡;缺少成功实践)
  • 全局确定哪些 Token 应该分配给哪些 Expert(好处是最优分配,全局查找成本高;BASE layers)
    在这里插入图片描述
    上面三张图对应三种策略:
  • 每个 Token 选择前 k 个 Expert(目前用的最多,需要考虑 balancing)
  • 每个 Expert 选择前 k 个 Token(每个 Token 路由到可变数量专家,负载均衡;缺少成功实践)
  • 全局确定哪些 Token 应该分配给哪些 Expert(好处是最优分配,全局查找成本高;BASE layers)

Top-K

经典的 top-k 实现,首先门控网络(W_r)经过学习针对不同输入会给不同 Expert 计算一个分数: h ( x ) = W r ⋅ x h(x)=W_r·x h(x)=Wrx
然后对该 MoE 层中可用的 N 个专家的分数做 softmax 归一化,可以得到每个专家的权重:
p i ( x ) = e h ( x ) i ∑ j N e h ( x ) j p_i(x) = \cfrac{e^{h(x)_i}}{\sum_j^Ne^{h(x)_j}} pi(x)=jNeh(x)jeh(x)i
最后选出权重最高的 k$个专家(T),则该层的输出是这些专家计算结果的线性加权组合:
y = ∑ i ∈ T p i ( x ) E i ( x ) y=\sum_{i\in{T}}p_i(x)E_i(x) y=iTpi(x)Ei(x)
在这里插入图片描述
为了避免不同专家的负载不均,通常会在训练过程中添加辅助损失来处理负载平衡,以鼓励将相同数量的令牌发送到不同的专家。

直觉上参与计算的专家数(k值)多一些可能拿到更好的效果(在不同任务上,研究结论不一致),但同时计算量也会随之线性增长(Sparsity 降低),目前的应用主要集中在 top1 和 top2。

Hard Gate

硬路由也叫静态路由。大多数路由算法在训练时动态学习路由决策,硬路由则是在训练开始前通过规则静态确定,相同输入永远分配给同一个专家。
在这里插入图片描述

BASE Layer

平衡专家分配层(Balanced Assignment of Experts),将 token-to-expert 转化为线性分配问题,可以得到一个每个专家接收相等数量 token 的最优分配。
在这里插入图片描述
优点是解决了 tok-k 的负载不均问题,但路由开销更高。

RL-R

基于强化学习的路由算法,代表工作有 Unified Scaling Laws for Routed Language Models,使用 top1 路由,将预测出来的 token 的负交叉熵作为奖励。
在这里插入图片描述

Expert Choose Tokens

每个 Expert 选择前 k 个 Token,代表工作有 Mixture-of-Experts with Expert Choice Routing,彻底解决了训练期间不同专家的负载平衡问题(不需要辅助平衡损失或线性分配算法)。
在这里插入图片描述

缩放属性(Scaling)

由于增加了专家维度,对稀疏专家模型的缩放效果的验证变得更加复杂。稠密语言模型的性能被证明与模型参数数量、数据量成幂律关系,但针对稀疏专家模型,目前更多的是基于经验结果的启发式缩放,还没有形成稳定的缩放定律。

适用场景

  • 从任务角度看,比较适合输入特征明确的多任务、多分域场景
  • 从效率角度看,如果模型受限于 Flops 预算,可以考虑 Sparse MoE

简短的总结

优点

  • 预训练收益更高,速度更快
  • 推理速度更快
  • 架构潜力尚未完全挖掘,比较有潜力

缺点

  • 需要更多显存
  • 需要考虑路由策略和均衡问题
  • Finetune 结果不稳定,Pretrain 超参试错成本高

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值