学术研究 学术研究
儒学动态
专家观点
项目成果
研讨动态
分中心建设 分中心建设
分中心活动
传播普及 传播普及
交流互鉴 交流互鉴
尼山金年会|金字招牌|官网首页·文明论坛
机关党建 机关党建
廉洁文化建设
金年会|金字招牌|官网首页·文明建设
学术期刊 学术期刊
《孔子研究》
《中国儒学年鉴》
儒学名家 儒学名家

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

来源:金年会|金字招牌|官网首页  更新时间:2024-09-20 00:42:17

 

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的道路上贡献一点力量。