为了实现大模型的高效训练和推理,混合专家模型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
终身学习/持续学习的性质
性质 |
定义 |
知识记忆(knowledge retention) |
模型不易产生遗忘灾难 |
前向迁移(forward transfer) |
利用旧知识学习新任务 |
后向迁移(backward transfer) |
新任务学习后提升旧任务 |
在线学习(online learning) |
连续数据流学习 |
无任务边界(No task boudaries) |
不需要明确的任务或数据定义 |
固定模型容量(Fixed model capacity) |
模型大小不随任务和数据变化 |
MoE模型+终身学习
性质 |
|
知识记忆(knowledge retention) |
√ |
前向迁移(forward transfer) |
√ |
后向迁移(backward transfer) |
– |
在线学习(online learning) |
× |
无任务边界(No task boudaries) |
√ |
固定模型容量(Fixed model capacity) |
√ |
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/
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容