每日经济新闻

    昆仑万维开源2000亿稀疏大模型天工MoE,全球首创能用4090推理

    2024-06-03 18:45

    2024年6月3日,昆仑万维宣布开源2000亿稀疏大模型Skywork-MoE,性能强劲,同时推理成本更低。Skywork-MoE基于之前昆仑万维开源的Skywork-13B模型中间checkpoint扩展而来,是首个完整将MoE Upcycling技术应用并落地的开源千亿MoE大模型,也是首个支持用单台4090服务器推理的开源千亿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

    模型架构:

    本次开源的Skywork-MoE模型隶属于天工3.0的研发模型系列,是其中的中档大小模型(Skywork-MoE-Medium),模型的总参数量为146B,激活参数量22B,共有16个Expert,每个Expert大小为13B,每次激活其中的2个Expert。

    天工3.0还训练了75B(Skywork-MoE-Small)和400B(Skywork-MoE-Large)两档MoE模型,并不在此次开源之列。

    模型能力:

    基于目前各大主流模型评测榜单评测了Skywork-MoE,在相同的激活参数量20B(推理计算量)下,Skywork-MoE能力在行业前列,接近70B的Dense模型。使得模型的推理成本有近3倍的下降。同时Skywork-MoE的总参数大小比DeepSeekV2的总参数大小要小1/3,用更小的参数规模做到了相近的能力。

    技术创新:

    为了解决MoE模型训练困难,泛化性能差的问题,相较于Mixtral-MoE,Skywork-MoE设计了两种训练优化算法:

    1.Gating Logits归一化操作

    昆仑万维在Gating Layer的token分发逻辑处新增了一个normalization操作,使得Gating Layer的参数学习更加趋向于被选中的top-2 experts,增加MoE模型对于top-2的置信度:

    2.自适应的Aux Loss

    有别于传统的固定系数(固定超参)的aux loss,在MoE训练的不同阶段让模型自适应地选择合适的aux loss超参系数,从而让Drop Token Rate保持在合适的区间内,既能做到expert分发的平衡,又能让expert学习具备差异化,从而提升模型整体的性能和泛化水平。在MoE训练的前期,由于参数学习不到位,导致Drop Token Rate太高(token分布差异太大),此时需要较大的aux loss帮助token load balance;在MoE训练的后期,昆仑万维希望Expert之间仍保证一定的区分度,避免Gating倾向为随机分发Token,因此需要较低的aux loss降低纠偏。

    训练Infra

    如何对MoE模型高效地进行大规模分布式训练是一个有难度的挑战,目前社区还没有一个最佳实践。Skywork-MoE提出了两个重要的并行优化设计,从而在千卡集群上实现了MFU 38%的训练吞吐,其中MFU以22B的激活参数计算理论计算量。

    1.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=2,EP=2,其中Attention部分采用Tensor Parallel,Expert部分采用Expert Parallel

    2.非均匀切分流水并行

    由于first stage的Embedding计算和last stage的Loss计算,以及Pipeline Buffer的存在,流水并行下均匀切分Layer时的各stage计算负载和显存负载均有较明显的不均衡情况。昆仑万维提出了非均匀的流水并行切分和重计算Layer分配方式,使得总体的计算/显存负载更均衡,约有10%的端到端训练吞吐提升。

    比较均匀切分和非均匀切分下的流水并行气泡:对于一个24层Layer的LLM,(a)是均匀切分成4个stage,每个stage的layer数量是:[6,6,6,6].(b)是经过优化后的非均匀切分方式,切成5个stage,每个stage的layer数量是:[5,5,5,5,4],在中间流水打满的阶段,非均匀切分的气泡更低。

    MoE Know-how

    此外,Skywork-MoE还通过一系列基于Scaling Laws的实验,探究哪些约束会影响Upcycling和From Scratch训练MoE模型的好坏。

    一个可以遵循的经验规则是:如果训练MoE模型的FLOPs是训练Dense模型的2倍以上,那么选择from Scratch训练MoE会更好,否则的话,选择Upcycling训练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模型、技术报告和相关的实验结果可以给开源社区贡献更多的MoE训练经验和Know-how,包括模型结构、超参选择、训练技巧、训练推理加速等各方面,探索用更低的训练推理成本训更大更强的模型,在通往AGI的道路上贡献一点力量。

    上一篇

    注意!冀中能源将于6月19日召开股东大会

    下一篇

    山石网科:累计回购约115万股



    分享成功
    每日经济新闻客户端
    一款点开就不想离开的财经APP 免费下载体验