写点什么

想做大模型开发前,先来了解一下 MoE

  • 2024-03-04
    广东
  • 本文字数:1458 字

    阅读完需:约 5 分钟

想做大模型开发前,先来了解一下MoE

为了实现大模型的高效训练和推理,混合专家模型 MoE 便横空出世。


大模型发展即将进入下一阶段但目前仍面临众多难题。为满足与日俱增的实际需求,大模型参数会越来越大,数据集类型越来越多,从而导致训练难度大增,同时也提高了推理成本。为了实现大模型的高效训练和推理,混合专家模型 MoE 便横空出世。

MoE 结构的发展


Vanilla MoE



Export Network,用于学习不同数据,一个 Gating Network 用于分配每个 Expert 的输出权重。


Sparse MoE



Experts 的输出是稀疏的,只有部分的 experts 的权重> 0,其余=0 的 expert 直接不参与计算

Expert Balancing 问题


不同 experts 在竞争的过程中,会出现“赢者通吃”的现象:前期变现好的 expert 会更容易被 gating network 选择,导致最终只有少数的几个 experts 真正起作用


Transformer MoE


GShard



  • Transformer 的 encoder 和 decoder 中,每隔一个(every other)FFN 层,替换成 position-wise MoE 层

  • Top-2 gating network


Switch Transformer



简化了 MoE 的 routing 算法,gating network 每次只 route 到 1 个 expert


GLaM


  • Gshard 结构

  • Scale 参数量

  • 降低训练推理成本

MoE 的分布式通信和 MindSpore 优化


MoE 结构和普通的 Dense 模型的差异在于,其需要额外的 AllToAll 通信,来实现数据的路由(Gating)和结果的回收。而 AllToAll 通信会跨 Node(服务器)、跨 pod(路由),进而造成大量的通信阻塞问题


MindSpore 的 MoE 优化


大模型训练主要瓶颈在于片上内存与卡间通信。常用的内存优化手段:


1)MoE 并行:将不同的专家切分到不同的卡上,由于 MoE 的路由机制,需要使用 AllToAll 通信,将 token 发送到正确的卡上。对 AllToAll 的优化:分级 AllToAll、Group-wise AllToAll 等。


2)优化器异构:大模型训练常使用的 adam 系列优化器,其占用的内存往往是模型参数本身的 2 倍或以上,可以将优化器状态存储在 Host 内存上。


3)多副本并行:将串行的通信、计算拆分成多组,组件流水,掩盖通信时间。


MindSpore 已使能上述优化,大幅提升了万亿参数稀疏模型的训练吞吐

Mixtral 8x7b MoE 大模型


Mixtral 的基础模型 Mistral



  • RoPE

  • RMSNorm

  • Transformer decoder

  • Grouped Multi-Query Attention

  • Sliding window attention: 优化随着序列长度增加而增长的显存占用和计算消耗



Mixtral



  • 8 个 expert(类 GPT-4)

  • Top2 gating


MoE Layer 的 MindSpore 实现



Mindformers 的 Mixtral 支持



  • 基于 MindFormers 实现 Mixtral-8x7B MoE 模型。关键结构: GQA, RoPE, RMSNorm, SiluMoE 配置: 8 Experts, TopK=2, capacity c=1.1 加载开源的 Mixtral 权重和 tokenizer,推理结果对齐 HF.

  • 4 机 32 卡 EP,PP 等多维混合并行,基于自有数据集试验性训练收敛符合预期。200 epoch loss 100.02



EP=8,MP=1 时性能最佳,约 1147 tokens/s/p。

MoE 和 lifelong learning


终身学习/持续学习的性质



MoE 模型+终身学习



MoE 的特点:


  • 多个 Expert 分别处理不同分布(domain/topic)的数据

  • 推理仅需要部分 Expert


LLM 的终身学习:


  • 世界知识底座持续学习。

  • Expert 可插拔

  • Gating Network 可增删。


MoE+终身学习的典型工作


  • Lifelong-MoE



  • 扩展 expert 和 gating network 的维度

  • 冻结旧的 expert 和 gating network 维度

  • 使用正则克服遗忘灾难


Pangu-sigma



Random Routed Experts:


  • 第一层,根据任务分配给不同的专家组(多个 expert 构成一个专家组,供一个 task/domain 使用)

  • 第二层,使用组内随机 Gating,让专家组的 expert 可以负载均衡。


这样可以保证某个领域对应的 expert 可以直接被抽取出来作为单个模型使用。

Mixtral 8x7b Demo


  • Mistral-MindSpore: https://github.com/lvyufeng/mistral-mindspore

  • Mindformer(MoE 预训练):https://gitee.com/mindspore/mindformers/


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
想做大模型开发前,先来了解一下MoE_人工智能_华为云开发者联盟_InfoQ写作社区