Aitrainee | 公众号:AI进修生
🌟Skywork-MoE :首个完整将 MoE Upcycling 技术应用并落地的开源千亿 MoE大模型,也是首个支持用 单台 4090 服务器 推理的开源千亿 MoE大模型。
23年6月,美国知名骇客George Hotz在多次采访中透露,GPT-4由 8个220B 模型组成,总参数量为1.76万亿。
具体来说,GPT-4采用了Mixture of Experts (MoE)架构,每个专家模型都有2200亿个参数,共计8个这样的模型。
下面这张8头怪,看起来就像现在的GPT-4。
MoE 应用于大模型, GPT-4并不是第一个 。2024年 6月3日 ,昆仑万维宣布开源 2 千亿稀疏大模型 Skywork-MoE , 性能强劲, 同时推理成本更低。Skywork-MoE 基于之前昆仑万维开源的 Skywork-13B 模型中间 checkpoint 扩展而来, 是首个完整将 MoE Upcycling 技术应用并落地的开源千亿 MoE大模型,也是首个支持用 单台 4090 服务器 推理的开源千亿 MoE大模型。
混合专家: Moe已成为现阶段LLM的新标准。
昆仑万维的 MoE Upcycling 技术通过将 稠密模型 (Dense Model)转换为 混合专家模型 (Mixture of Experts, MoE),显著提高模型推理效率,下面我们来看看从稠密模型到MoE模型的MoE Upcycling技术(本小节末尾有 资料与论文 ) :
MoE Upcycling 技术工作流程
-
- 初始化 :选择一个已有的稠密模型作为起点。所有参数和可选的优化器状态都是从原始检查点复制的,除了与MoE路由器相对应的参数(原始架构中不存在这些参数)。
-
- 扩展到MoE :
- • 复制权重 :原始稠密模型中的所有权重(包括层归一化、注意力机制和多层感知机(MLP))都被复制到新的MoE模型中。
- • 生成专家副本 :新的MoE层中的专家是被替换的原始MLP层的相同副本。图中显示,通过从原始MLP层生成多个专家副本(例如,MLP 1, MLP 2, ... MLP E)。
- • 路由器初始化 :一个新的路由器模块被添加到MoE模型中,这个路由器模块需要从头开始训练。
-
- 训练 :对MoE架构进一步训练,以优化各个专家的表现和整体模型的协同工作效果。
优点
- • 降低训练成本 :MoE模型可以显著减少训练成本,达到与更大稠密模型相当的性能。训练一个MoE模型的成本可以低至达到同等质量的稠密模型的五分之一。
- • 提高推理效率 :MoE模型在推理过程中仅激活部分专家,从而降低计算资源需求和推理时间。
- • 可扩展性强 :MoE架构能够扩展到包含大量参数的模型,通过如ZeRO-Offload等技术解决GPU内存限制问题,使得超大规模模型的训练成为可能。
图示说明
▲ 图1展示了从稠密模型到MoE模型的升级改造初始化流程。所有参数以及可选的优化器状态都是从原始检查点复制的,除了与MoE路由器相对应的参数(原始架构中不存在)。特别是,新MoE层中的专家是被替换的原始MLP层的相同副本。
通过以上步骤,MoE Upcycling技术使得大规模模型的部署和应用变得更加高效和可行。更多详细信息请参考DeepSpeed和相关MoE模型研究。
分析和分组概念性词汇:DeepSpeed、MoE、Upcycling ?
我们可以将上面那些概念性词汇进行分析和分组,以便更好地理解它们之间的关系以及它们所涉及的潜在主题或问题。
1. DeepSpeed
DeepSpeed 是一个深度学习优化库,由微软推出,旨在加速大规模模型的训练和推理。DeepSpeed 提供了许多优化技术,例如并行计算、内存优化和训练加速,帮助开发者高效地处理具有数十亿参数的模型。
2. MoE(Mixture of Experts)
MoE (混合专家模型)是一种神经网络架构,通过将模型分解成多个“专家”来提高模型的效率和性能。每个专家专注于处理输入数据的不同部分,模型通过一个路由器模块来决定哪些专家应被激活。
3. Upcycling
Upcycling 在这个上下文中指的是从一个较小的稠密模型(Dense Model)升级到一个更大的稀疏MoE模型。这种技术旨在利用已有模型的权重和结构,通过增加专家模块和重新训练来提升模型的性能和效率。
分组和分析
1. DeepSpeed 和 MoE 的结合
- • 技术结合 :DeepSpeed提供的优化技术与MoE架构相结合,可以显著提升大规模模型的训练和推理效率。DeepSpeed的内存优化和并行计算能力使得在常规硬件上训练巨型MoE模型成为可能。
- • 应用场景 :这两者的结合在大规模自然语言处理(NLP)和生成式预训练模型(GPT)中有广泛应用。DeepSpeed可以处理数百亿到数万亿参数的模型,而MoE架构通过稀疏激活技术降低计算成本和推理延迟
2. Upcycling 的作用和过程
- • 过程描述 :Upcycling技术从一个稠密模型开始,逐步扩展到一个包含多个专家的MoE模型。具体过程包括复制稠密模型的权重、生成多个专家副本以及初始化和训练新的MoE架构。
- • 性能提升 :Upcycling不仅降低了训练成本,还提升了推理效率,使得大规模模型的部署更加可行。通过MoE架构的稀疏激活机制,可以在不牺牲性能的前提下减少计算资源的需求
小结一下
DeepSpeed为大规模模型提供了强大的优化支持,MoE架构通过专家模块提升了模型的处理能力,而Upcycling技术将二者结合,显著提高了模型的训练和推理效率。
以下是上文涉及到的资料与论文:
MoE模型研究论文: https://arxiv.org/abs/2006.04616
Skywork-MoE 模型架构
Skywork-MoE模型是昆仑万维在天工3.0研发模型系列中的一部分。以下是该模型的详细架构及相关信息:
1. Skywork-MoE-Medium
- • 总参数量 :146B(1460亿)
- • 激活参数量 :22B(220亿)
- • 专家数量 :16个专家(Experts)
- • 每个专家的大小 :13B(130亿)
- • 每次激活的专家数量 :2个专家
Skywork-MoE-Medium模型在推理过程中,每次只激活两个专家来处理输入数据,从而大幅减少了计算资源需求,同时保持高效的处理能力和性能。
2. 其他型号
除了Skywork-MoE-Medium外,天工3.0系列还包括其他两个不同规模的MoE模型:
- • Skywork-MoE-Small :总参数量为75B(750亿)
- • Skywork-MoE-Large :总参数量为400B(4000亿)
然而,这两个模型(Skywork-MoE-Small和Skywork-MoE-Large) 并未在此次开源范围内 。
模型能力&评估
-
- 评测表现优异 :
- • CEVAL :Skywork-MoE在CEVAL评测中获得82.2的高分,显著优于许多模型。
- • CMMU :在CMMU评测中,Skywork-MoE的得分为79.5,表现与大型Dense模型相近。
- • MMLU :在MMLU评测中,Skywork-MoE的得分为77.4,与其他大型模型相当。
- • GSM8K :在GSM8K评测中,Skywork-MoE的得分为76.1,优于许多同类模型。
- • MATH :在MATH评测中,Skywork-MoE的得分为31.9,表现较为突出。
- • HumanEval :在HumanEval评测中,Skywork-MoE的得分为43.9,显示出良好的综合能力。
-
- 推理成本低 :
- • 稀疏激活机制 :Skywork-MoE利用稀疏激活机制,仅在推理时激活一部分参数(20B),大幅降低计算成本和资源消耗,几乎减少了3倍的推理成本。
-
- 参数规模小,性能强 :
- • 更少的总参数 : Skywork-MoE的总参数量比DeepSeekV2少1/3,但在多项评测中表现接近甚至优于DeepSeekV2。 这表明Skywork-MoE在保持较小参数规模的同时,仍能提供强大的性能。
-
- 相对其他模型的比较 :
-
• 相同激活参数量对比 :在20B激活参数量的情况下,Skywork-MoE的表现接近一些70B的Dense模型,显示出其在高效计算和性能方面的显著优势。
-
评测指标解释
- CEVAL:• CEVAL是一种评估模型在不同任务上的综合能力的测试。这些任务可能包括语言理解、逻辑推理等。得分越高,表示模型在这些任务上的表现越好。
- CMMU:• CMMU测试模型在多任务环境下的表现,尤其是跨学科或跨领域的任务。它考察模型的多样性和适应性。高得分表示模型能在不同类型的任务中表现出色。
- MMLU:• MMLU测试模型在语言理解和使用方面的能力,包括语法、上下文理解和语言生成等方面。高得分表示模型的语言处理能力强。
- GSM8K:• GSM8K测试模型在数学问题求解上的表现。这包括基本的算术、代数和几何问题。高得分表示模型在数学问题上的表现好。
- MATH:• MATH测试模型在解决更复杂的数学问题上的能力,涉及到更高级的数学概念和推理。高得分表示模型能解决复杂的数学问题。
HumanEval:• HumanEval测试模型在模拟人类评估上的能力。包括模型在编程任务、逻辑推理和创造性任务上的表现。高得分表示模型在这些任务上表现
Skywork-MoE的优势
| 模型 | 使用资源 (#TP) | CEVAL | CMMU | MMLU | GSM8K | MATH | HumanEval | | Skywork-MoE | 146 | 82.2 | 79.5 | 77.4 | 76.1 | 31.9 | 43.9 |
- • #TP :使用的计算资源(以单位数量表示)。
- • 得分 :越高表示模型在该测试中的表现越好。
-
- 高效性能 :
- • 表现优异 :Skywork-MoE在CEVAL、CMMU、MMLU、GSM8K等测试中得分很高。
- • 使用少量资源 :它仅使用20B的计算资源,这比其他更大模型(如70B)节省了近3倍的成本。
-
- 节约资源 :
- • 低推理成本 :Skywork-MoE通过稀疏激活机制,只激活一部分计算单元,显著降低计算成本。
-
- 小规模,高效率 :
- • 参数少,效果好 :Skywork-MoE的总参数量比DeepSeekV2少三分之一,但在许多测试中表现相当甚至更好。
总结,Skywork-MoE在多个测试中表现优异,使用较少资源但能达到甚至超过大模型的性能,在性能和效率上具有显著优势。
技术创新:Gating Logits归一化操作
为了解决混合专家模型(MoE)训练困难和泛化性能差的问题,Skywork-MoE相较于Mixtral-MoE,设计了两种训练优化算法。这里介绍其中一种:Gating Logits归一化操作 。
Gating Logits 归一化操作
在Gating Layer的token分发逻辑中,新增了一个归一化操作,使得Gating Layer的参数学习更加集中于被选中的前两个专家(top-2 experts)。这种方法增加了MoE模型对于top-2专家的置信度,从而提升模型的性能。
图表解释
图1展示了有无归一化操作的门控分布对比。黑色虚线对应于均匀概率基线1/16。
- • 上图(w/o normalization) :没有归一化操作时,各专家的选择概率较为平均。
- • 下图(with normalization) :有归一化操作时,前两个专家和第十四个专家被显著更多地选择,增加了模型对这些专家的信任度。
通俗解释
在混合专家模型中,我们需要决定哪些“小脑袋”(专家)来处理输入的数据。Gating Logits归一化操作就是帮助模型更好地选择最合适的两个“小脑袋”来处理数据。这一操作使得模型更确定选择的专家,提高了模型的效率和准确性。
对比说明
- • 没有归一化 :模型分配任务时,所有专家的选择机会差不多,模型没有明确偏好。
- • 有归一化 :模型更倾向于选择最合适的两个专家,增加了模型对这些专家的信任,提高了任务处理的效果。
通过这种优化,Skywork-MoE可以更好地利用每个专家的特长,提高模型的整体表现。
技术创新:自适应的Aux Loss
为了提升MoE模型的训练效果和泛化性能,Skywork-MoE引入了自适应的辅助损失系数(Aux Loss)。与传统的固定系数方法不同,Skywork-MoE在训练的不同阶段自适应地选择合适的辅助损失系数,从而让Token丢失率(Token Drop Rate)保持在合适的范围内。这既能保证专家分发的平衡,又能让专家学习具备差异化,从而提升模型整体性能和泛化水平。
▲ 图3
自适应Aux Loss的工作原理
-
- 前期训练 :
- • 参数学习不到位 :在MoE训练的前期,由于参数还没有充分学习到位,导致Token分布差异太大(Token Drop Rate太高)。
- • 较大的Aux Loss :此时需要较大的Aux Loss来帮助Token负载平衡,确保每个专家能均衡地接收和处理数据。
-
- 后期训练 :
- • 保持专家区分度 :在MoE训练的后期,希望专家之间保持一定的区分度,避免Gating Layer倾向于随机分发Token。
- • 较低的Aux Loss :此时需要较低的Aux Loss来降低纠偏,确保每个专家能专注于特定类型的数据处理,从而保持模型的专门化和差异化。
图表解释
图3展示了在Skywork-MoE预训练过程中,各个Gating Layer的Token丢失率和辅助损失系数的变化情况:
- • 上图(Token Drop Rates) :
- • 显示了不同层在训练过程中的Token丢失率变化。可以看出,在训练初期,Token丢失率较高,随着训练进行,Token丢失率逐渐降低并趋于稳定。
- • 下图(Auxiliary Loss Coefficients) :
- • 显示了不同层在训练过程中的辅助损失系数变化。可以看出,辅助损失系数在训练初期较高,用于平衡Token分布。随着训练的进行,辅助损失系数逐渐降低,以确保专家能够保持专门化。
通俗解释
在混合专家模型中,数据(Token)需要分配给多个“小脑袋”(专家)进行处理。如果分配不均,会影响模型的学习效果。自适应Aux Loss机制就像一个智能调节器,在模型训练的不同阶段自动调整“平衡器”,确保数据均衡分配,同时让每个“小脑袋”专注于它擅长的任务。
对比说明
- • 训练初期 :
- • 数据分配不均,需要更强的“平衡器”来均衡分配。
- • 结果:模型逐渐学会如何更好地分配数据,各个“小脑袋”都能得到适当的训练。
- • 训练后期 :
- • 数据分配逐渐均衡,需要弱一点的“平衡器”来确保每个“小脑袋”能专注于特定任务。
- • 结果:模型保持每个“小脑袋”的专门化,提升整体性能。
通过这种自适应的Aux Loss机制,Skywork-MoE能够更有效地进行训练,提升模型的整体表现和泛化能力。
训练 Infra
为了解决混合专家模型(MoE)大规模分布式训练的挑战,Skywork-MoE提出了两个重要的并行优化设计,从而在千卡集群上实现了MFU 38%的训练吞吐,其中MFU以22B的激活参数计算理论计算量。本文介绍其中一种:Expert Data Parallel。
Expert Data Parallel
区别于Megatron-LM社区已有的EP(Expert Parallel)和ETP(Expert Tensor Parallel)设计,天工提出了一种称之为Expert Data Parallel的并行设计方案。这种并行方案可以在Expert数量较小时仍能高效地切分模型,对Expert引入的all2all通信也可以最大程度地优化和掩盖。相较于EP对GPU数量的限制和ETP在千卡集群上的低效,EDP可以较好地解决大规模分布式训练MoE的并行痛点,同时EDP的设计简单、鲁棒、易扩展,可以较快地实现和验证。
图表解释
图中的EDP示例展示了两卡情况下的设置,TP(Tensor Parallel)= 2,EP(Expert Parallel)= 2。其中,Attention部分采用Tensor Parallel,Expert部分采用Expert Parallel。
- • 左侧(GPU 0) :
- • Multi-Head Attention:采用Tensor Parallel
- • Gating Layer
- • Experts(Expert 1和Expert 2):采用Expert Parallel
- • Un-Permutation
- • 右侧(GPU 1) :
- • Multi-Head Attention:采用Tensor Parallel
- • Gating Layer
- • Experts(Expert 3和Expert 4):采用Expert Parallel
- • Un-Permutation
通俗解释
在大规模训练模型时,我们需要将计算任务分布到多个GPU上。Expert Data Parallel设计通过将专家模块的计算任务高效地分配到各个GPU上,使得模型训练更高效、扩展性更强,并且易于实现和验证。
对比说明
- • Expert Parallel (EP):对GPU数量有严格限制,扩展性差。
- • Expert Tensor Parallel (ETP):在大规模集群上效率低下。
- • Expert Data Parallel (EDP):解决了上述问题,设计简单且高效,适用于大规模分布式训练。
通过这种优化,Skywork-MoE可以在大规模集群上实现高效的MoE模型训练,提升了整体的计算性能。
非均匀切分流水并行
为了解决流水并行下均匀切分Layer时的各stage计算负载和显存负载不均衡问题,Skywork-MoE提出了非均匀的流水并行切分和重计算Layer分配方式,使得总体的计算/显存负载更均衡,从而提升端到端训练吞吐量约10%。
非均匀切分流水并行
由于first stage的Embedding计算和last stage的Loss计算,以及Pipeline Buffer的存在,均匀切分Layer时各stage的计算负载和显存负载均有明显不均衡情况。通过非均匀的流水并行切分和重计算Layer分配方式,可以更好地平衡各stage的负载。
图表解释
图中比较了均匀切分和非均匀切分下的流水并行气泡:
- • 图(a):24层模型的均匀切分,分为4个stage,每个stage的layer数量是[6, 6, 6, 6]。
- • 蓝色 :Forward Pass
- • 橙色 :Loss计算
- • 绿色 :Backward Pass
- • 各stage的计算负载和显存负载不均衡,产生明显的流水气泡。
- • 图(b):优化后的非均匀切分,分为5个stage,每个stage的layer数量是[5, 5, 5, 5, 4]。
- • 在中间流水打满的阶段,非均匀切分的气泡更低,实现了更高的计算和显存负载均衡。
通俗解释
在大规模模型训练中,我们需要将计算任务分配到多个流水阶段。均匀切分会导致某些阶段任务过多,而某些阶段任务过少,从而导致资源浪费。非均匀切分通过重新分配计算任务,使得每个阶段的工作量更均衡,从而提高整体训练效率。
对比说明
- • 均匀切分 :各stage的计算和显存负载不均衡,资源利用率低。
- • 非均匀切分 :各stage的计算和显存负载更均衡,资源利用率高,整体训练吞吐量提高约10%。
通过这种优化,Skywork-MoE可以在大规模训练中更高效地利用计算资源,提升训练性能。
从头训练与回收利用训练策略比较
为了探讨在不同条件和预算下训练Mixture of Experts (MoE)模型的效果,Skywork-MoE通过一系列基于Scaling Laws的实验,比较了从头训练和回收利用训练两种策略的优劣。
从头训练与回收利用训练策略
- • 从头训练(From Scratch Training) : 从未初始化的状态开始训练MoE模型。
- • 回收利用训练(Upcycling Training) : 使用预训练的Dense模型来初始化MoE模型。
实验数据分析
图表解释 上图展示了不同条件和预算下的训练动态:
左图:100B Token预算下的训练损失
- • 曲线 :
- •
init_scratch-decay_100b
(蓝色) - •
init_100b-decay_100b
(橙色) - •
init_300b-const
(绿色)
- • 轴标签 :
- • X轴:Token (B)
- • Y轴:训练损失
- • 观察 : 绿色曲线(
init_300b-const
)在100B Tokens结束时显示出最低的训练损失。
中图:300B Token预算下的训练损失
- • 曲线 :
- •
init_scratch-decay_300b
(蓝色) - •
init_100b-decay_300b
(橙色) - •
init_300b-const
(绿色) - •
init_300b-3xLR
(红色)
- • 轴标签 :
- • X轴:Token (B)
- • Y轴:训练损失
- • 观察 : 绿色曲线(
init_300b-const
)在300B Tokens结束时显示出最低的训练损失,红色曲线(init_300b-3xLR
)表现紧随其后。
右图:专家相似性的演变
- • 曲线 :
- •
init_scratch-decay_300b
(蓝色) - •
init_100b-decay_300b
(橙色) - •
init_300b-const
(绿色) - •
init_300b-3xLR
(红色)
- • 轴标签 :
- • X轴:Token (B)
- • Y轴:专家相似性
- • 观察 : 绿色曲线(
init_300b-const
)在整个训练过程中保持了较高的专家相似性,表明模型稳定性和性能较好。
结论
训练策略选择
- • 当MoE模型的训练FLOPs明显高于Dense模型(超过2倍)时,从头训练更有优势 。这主要是因为从头训练可以在高计算预算下更有效地利用资源,避免预训练模型的局限性。
- • 当训练FLOPs不超过Dense模型的2倍时,回收利用训练可以显著减少训练成本 。例如,使用
init_300b-const
方法在较低预算下表现最佳。
关键观察
- • 100B Tokens预算 :
init_300b-const
方法显示最低的训练损失。 - • 300B Tokens预算 :
init_300b-const
方法在训练损失和专家相似性方面均表现最佳。 - • 专家相似性 :
init_300b-const
方法在整个训练过程中保持较高水平,表明其在平衡负载和保持稳定性方面的优越性。
通俗解释
在大规模模型训练中,选择合适的训练策略可以显著影响模型性能和训练成本。对于计算负载较高的模型,从头训练可能更有效;而对于计算负载相对较低的模型,回收利用预训练模型可以节省成本并保持良好的性能。
对比说明
- • 从头训练 : 高预算下更有效,适用于训练FLOPs显著高于Dense模型的场景。
- • 回收利用训练 : 更经济,适用于训练FLOPs不超过Dense模型2倍的场景。
通过这种优化策略,Skywork-MoE能够在大规模训练中更高效地利用计算资源,提升训练性能。
4090 推理
Skywork-MoE 是目前能在 8x4090 服务器上推理的最大的开源 MoE 模型。8x4090 服务器一共有 192GB 的 GPU 显存,在 FP8 量化下(weight 占用 146GB),使用天工首创的非均匀 Tensor Parallel 并行推理方式,Skywork-MoE 可以在合适的 batch size 内达到 2200 tokens/s 的吞吐。天工团队完整开源了相关的推理框架代码和安装环境,详情参见:
https://github.com/SkyworkAI/Skywork-MoE
Skywork-MoE 开源地址
Skywork-MoE 的模型权重、技术报告完全开源,免费商用,无需申请:
• 模型权重下载:
• https://huggingface.co/Skywork/Skywork-MoE-base
• https://huggingface.co/Skywork/Skywork-MoE-Base-FP8
• 模型开源仓库:
• https://github.com/SkyworkAI/Skywork-MoE
• 模型技术报告:
• https://github.com/SkyworkAI/Skywork-MoE/blob/main/skywork-moe-tech-report.pdf
• 模型推理代码(支持 8x4090 服务器上 8 bit 量化加载推理):
• https://github.com/SkyworkAI/vllm
[
六位一线AI工程师总结Agent构建经验,天工SkyAgents的Agent构建实战。](http://mp.weixin.qq.com/s?__biz=MzkyMzY1NTM0Mw==&mid=2247487985&idx=1&sn=c31d6fa129f7ad2144717be240f01bb8&chksm=c1e09c31f6971527a606381cf78e143e5bbca253adbcaef9f22101a0e0825cefd0159b72119a&scene=21#wechat_redirect)
[
1.1k Star!天工Skywork-13B:性能全面超越LLaMA2、0门槛商用、消费级显卡进行部署和推理!](http://mp.weixin.qq.com/s?__biz=MzkyMzY1NTM0Mw==&mid=2247487776&idx=1&sn=6926ed3e3db709b4d96f8f6a95857aa1&chksm=c1e09ce0f69715f63d639dbea7f3050f1a94688e3275221c5283d5f6354531199f1632e0ea4a&scene=21#wechat_redirect)
[
中国AI搜索鼻祖:启发式回答与多维搜索,破解知识碎片化,超越Perplexity的绝赞研究者模式!](http://mp.weixin.qq.com/s?__biz=MzkyMzY1NTM0Mw==&mid=2247487210&idx=1&sn=098382687b5553bb1da37c4ecb38e150&chksm=c1e0832af6970a3ca45db06cdfe92e2af74ab1fcae25c37da430631a7084667bbf65c893bdd9&scene=21#wechat_redirect)
参考链接:
[1]https://mp.weixin.qq.com/s/vlfOufo5IqYDi8vB6LW67w
[2]https://mp.weixin.qq.com/s/FCwzPohoKnSl0lW2NOdiGw
[3]https://github.com/SkyworkAI/Skywork-MoE
知音难求,自我修炼亦艰
抓住前沿技术的机遇,与我们一起成为创新的超级个体
(把握AIGC时代的个人力量)
点这里👇关注我,记得标星哦~
一键三连「分享」、「点赞」和「在看」
科技前沿进展日日相见 ~