点击右上角微信好友
朋友圈
请使用浏览器分享功能进行分享
6月3日,昆仑万维宣布开源2千亿稀疏大模型Skywork-MoE。Skywork-MoE基于之前昆仑万维开源的Skywork-13B模型中间checkpoint扩展而来,是完整地将MoEUpcycling技术应用并落地的开源千亿MoE大模型,也是支持用单台4090服务器推理的开源千亿MoE大模型。
基于目前各大主流模型评测榜单进行评测,在相同的激活参数量20B(推理计算量)下,Skywork-MoE能力接近70B的Dense模型,使得模型的推理成本有近3倍的下降。同时Skywork-MoE的总参数大小比DeepSeekV2的总参数大小要小1/3,用更小的参数规模做到了相近的能力。
为了解决MoE模型训练困难,泛化性能差的问题,Skywork-MoE设计了两种训练优化算法。Skywork-MoE模型在GatingLayer的token分发逻辑处新增了一个normalization操作,使得GatingLayer的参数学习更加趋向于被选中的top-2experts,增加MoE模型对于top-2的置信度。其次,有别于传统的固定系数(固定超参)的auxloss,Skywork-MoE模型在MoE训练的不同阶段让模型自适应地选择合适的auxloss超参系数,提升模型整体的性能和泛化水平。
同时,在MoE模型高效地进行大规模分布式训练方面,Skywork-MoE提出了两个重要的并行优化设计,在千卡集群上实现了MFU38%的训练吞吐。首先,Skywork-MoE提出了一种称之为“ExpertDataParallel”的并行设计方案。这种并行方案可以在Expert数量较小时仍能高效的切分模型,对Expert引入的all2all通信也可以最大程度的优化和掩盖。相较于EP对GPU数量的限制和ETP在千卡集群上的低效,EDP可以较好的解决大规模分布式训练MoE的并行痛点。同时,EDP的设计简单、鲁棒、易扩展,可以较快的实现和验证。
其次,针对流水并行下均匀切分Layer时的各stage计算负载和显存负载的不均衡情况,Skywork-MoE提出了非均匀的流水并行切分和重计算Layer分配方式,使得总体的计算/显存负载更均衡,约有10%的端到端训练吞吐提升。
此外,Skywork-MoE还通过一系列基于ScalingLaws的实验,探究哪些约束会影响Upcycling和FromScratch训练MoE模型的好坏。Skywork-MoE认为,如果训练MoE模型的FLOPs是训练Dense模型的2倍以上,那么选择fromScratch训练MoE会更好,否则的话,选择Upcycling训练MoE可以明显减少训练成本。
本次开源的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模型、技术报告和相关的实验结果可以给开源社区贡献更多的MoE训练经验和Know-how,包括模型结构、超参选择、训练技巧、训练推理加速等各方面,探索用更低的训练推理成本训练更大更强的模型,在通往AGI的道路上贡献一点力量。(李记)