MOE技术简要记录

MOE

  • GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding

    • 模型设计:

      在这里插入图片描述

    特点:

    (1) 专家容量 expert capacity

    • 强制规定了每一个expert所负责处理的token数量有一个最大值,这个最大值就叫专家容量;(2N/E)

    (2)分组分配 Local group dispatching

    • 给所有输入token分成了G组,不同的组并行处理,每个组相应地也把组内专家容量变成2N/EG。这样做相当于在前向推理时,把大的batch拆分成的 batch,每个小的batch就是一个group。这样做的好处是通讯的时候只需要在每个group内进行就可以了,减少了通讯量。而进行反向计算的时候这些group可以合起来一起用,相当于进行了gradient accumulation。

    (3)辅助损失函数 Auxiliary loss

    • 损失函数如下:
      l a u x = 1 E ∑ e = 1 E c e S   m e l_{aux} = \frac{1}{E}\sum_{e=1}^{E} \frac{c_e}{S}\ m_e laux=E1e=1ESce me
      $ S$是token数, E E E是专家数, c e c_e ce是分配给第 e e e 个专家的token数, m e m_e me是第 e e e 个expert在 S S S 个token中获得的平均权重;

    (4)随机路由 Random routing

    • 如果top-1专家的权重很高,而第二个专家的权重如果较小,那很有可能只用第一个专家就足够解决问题了。
  • Switch Transformer: Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity

    • 模型设计

    在这里插入图片描述

    • 特点:

      (1) 专家容量 expert capacity
      e x p e r t   c a p a c i t y = ( t o k e n s   p e r   b a t c h n u m b e r s   o f   e x p e r t s ) ⋅ c a p a c i t y   f a c t o r . expert\ capacity = (\frac{tokens \ per \ batch}{numbers\ of \ experts}) · capacity \ factor. expert capacity=(numbers of expertstokens per batch)capacity factor.
      (2) 负载均衡损失
      l o s s = a ⋅ N ⋅ ∑ i − 1 N f i ⋅ P i loss = a·N·\sum_{i-1}^{N}f_i·P_i loss=aNi1NfiPi
      f i f_i fi表示被分配到第 i i i个expert的token数
      f i = 1 T ∑ x ∈ B 1 { a r g m a x ( p ( x ) ) = i } f_i = \frac{1}{T}\sum_{x \in B}1\{argmax(p(x)) = i \} fi=T1xB1{argmax(p(x))=i}
      P i P_i Pi表示整个batch每个token分配给第 i i i 个expert的概率的总和
      P i = 1 T ∑ x ∈ B p i ( x ) P_i = \frac{1}{T}\sum_{x\in B}p_i(x) Pi=T1xBpi(x)
      负载损失函数设计的思路与上述GShard 完全一致,只不过系数不太相似。

    • 主要工作:

      (1)MoE to dense:把训出来的效果较好的MoE模型蒸馏到dense模型,在压缩MoE模型99%的参数的情况下,效果还是比直接训练dense模型好。

      (2)训练和微调技术:

      • 首次使用bf16成功训练MoE模型:

        routing function内部使用单精度,其他部分使用半精度。

      • 更适合MoE结构的模型初始化

      • 增加的专家正则化,改善了稀疏模型的微调和多任务训练

    ​ (3)训练框架:结合数据、模型和专家并行性,训练了超过1T参数的MoE模型。

  • ST-MoE: DESIGNING STABLE AND TRANSFERABLE SPARSE EXPERT MODELS

    • 思想: 稳定训练

      1. 乘性操作对模型稳定性和效果的影响

        • GELU Gated Linear Units
        • RMSNorm
        • 增加dense层
        • 增加一个bias
        1. noise对模型稳定性和效果的影响

          给router的输入logits乘以一个在[1e-2, 1e2]之间的均匀随机变量来添加噪音。

      2. 限制激活值和梯度值对模型稳定性和效果的影响

        提出新的损失router z-loss损失
        L z ( x ) = 1 B ∑ i = 1 B ( l o g ∑ j = 1 N e j ( i ) ) 2 L_z(x) = \frac{1}{B} \sum_{i=1}^B(log \sum_{j=1}^{N}e_j^{(i)})^{2} Lz(x)=B1i=1B(logj=1Nej(i))2
        B B B 是token的数量, E E E是专家数, x ∈ R B ⋅ N x \in R^{B·N} xRBN是router的输入。

      z-loss会对进入router的较大的logits值进行惩罚,以达到尽量减少进入指数函数的较大误差的目的。

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang S

讨论研讨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值