沙丘社区Logo
发布
登录
注册
沙丘社区Logo

DeepSeek关键技术溯源:DeepSeek MoE架构详解

作者:沙丘社区香料间2025年2月5日
4016
数字化转型IT与云服务大数据人工智能AIGC大模型

作者|沙丘智库研究团队

来源|沙丘社区(www.shaqiu.cn)

深度学习模型的性能通常随着模型参数量的增加而提升,但同时也带来了计算资源需求的急剧增加。

DeepSeek R1大量使用了MoE(Mixture of Experts,混合专家模型,MoE)架构,通过多个专门的子模型(称为“专家”)协同工作来提高模型的整体性能。相较于传统的稠密模型,MoE架构能够在显著减少计算资源消耗的同时,实现模型规模扩展和性能提升。

除了DeepSeek以外,Mixtral(Mixtral)、NLLB MoE(Meta)等模型同样也是使用了MoE架构。

MoE架构的起源可以追溯到20世纪90年代初期,Robert A. Jacobs、Michael I. Jordan、Steven J. Nowlan 和 Geoffrey E. Hinton于1991年在《神经计算》上发表了人工智能经典研究论文《Adaptive Mixtures of Local Experts》,并提出了以下观点:

· 针对由多个独立网络组成的系统提出了一种新的监督学习程序,每个网络负责学习处理完整训练案例集的一个子集;

· 新程序既可以看作是多层监督网络的模块化版本,也可以看作是竞争学习的联想版本;

· 如果事先知道一组训练案例可以自然地分成与不同子任务相对应的子集,那么就可以通过使用由几个不同“专家”网络组成的系统加上一个门控网络来决定每个训练案例应该使用哪个专家来减少干扰。

DeepSeek于2024年1月发表了论文《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》,在论文中提出,DeepSeekMoE是一种创新的大语言模型架构,旨在通过高效的计算流程和优化的技术设计,在保持高性能的同时显著降低计算成本。

这论文中,DeepSeek核心是对传统MoE架构做了三项改进:拆分、共享和平衡。

· 拆分,即将专家变得更小、数量变得更多,提高专家的专业化程度;

· 共享,即设立一个能力一般的“通才”,所有回答先经过通才,再选择专才回复,最后加权平均。通才可能有小错误,但专才可以进行改正;

· 平衡,即平衡各个专家被训练的次数。

相比主流的MoE架构,DeepSeekMoE实现了更高的专家专业化和性能。从较小参数规模开始,论文验证了DeepSeekMoE在不同规模(2B、16B和145B参数)上的性能,展示了其接近MoE模型上限性能的能力。与此同时,DeepSeek将DeepSeekMoE的性能与现有的MoE模型(如GShard)和密集模型(如Dense×16)进行了比较。结果表明,DeepSeekMoE 在保持计算效率的同时,能够实现接近甚至超越现有模型的性能水平。

以下为沙丘智库对DeepSeek发布的论文《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》的深度解读,旨在为业界同仁提供参考,更好地理解DeepSeekMoE架构的工作原理。

论文链接:https://arxiv.org/pdf/2401.06066

01

传统MoE架构介绍

在有足够训练数据的情况下,通过增加参数和计算预算来扩展语言模型可以显著提升模型性能。然而将模型扩展到极大规模的努力也伴随着极高的计算成本。考虑到这些高昂的成本,混合专家(Mixture-of-Experts,MoE)架构已成为一种流行的解决方案。它能够在保持计算成本适中的同时实现参数扩展。

尽管MoE架构具有巨大的潜力,但现有的MoE架构可能存在知识混合和知识冗余的问题,这限制了专家的专业化,即每个专家获得非重叠和专注的知识。

传统的MoE架构用MoE层替代Transfomer中的前馈网络(FFNs)。每个MoE层由多个专家组成,每个专家在结构上与标准FFN相同,每个token被分配给一个或两个专家。这种架构存在两个潜在问题:

第一,知识混合。现有的MoE实践通常使用有限数量的专家(例如,8或16),因此分配给特定专家的token可能会涵盖多种知识。因此,指定专家将试图在其参数中整合大量不同类型的知识,这些知识难以同时利用。

第二,知识冗余。分配给不同专家的token可能需要共同知识。但结果是多个专家可能会在其各自的参数中收敛于获取共享知识,从而导致专家参数的冗余。这些问题共同阻碍了现有MoE实践中的专家专业化,阻止它们达到MoE模型的理论性能上限。

02

DeepSeek MoE架构

为了解决传统MoE架构存在的的问题,DeepSeek引入了DeepSeekMoE,这是一种创新的MoE架构,旨在实现最终的专家专业化。DeepSeekMoE架构涉及两个主要策略:

(1)细粒度专家分割:在保持参数数量不变的情况下,通过分割FFN中间隐藏维度将专家划分为更细的粒度。相应地,在保持恒定计算成本的同时,也激活了更多细粒度的专家,以实现更灵活和适应性更强的激活专家组合。细粒度专家分割允许将多样化的知识更精细地分解,并更精确地学习到不同的专家中,每个专家将保持更高水平的专业化。此外,增加激活专家组合的灵活性也有助于更准确和有针对性的知识获取。

(2)共享专家隔离:将某些专家隔离为始终激活的共享专家,旨在捕捉和整合跨不同上下文的共同知识。通过将共同知识压缩到这些共享专家中,可以减少其他路由专家之间的冗余。这样可以提高参数效率,并确保每个路由专家通过专注于独特方面来保持其专业化。这些架构创新为训练参数高效的MoE语言模型提供了机会,其中每个专家都高度专业化。

DeepSeekMoE如下图所示,子图(a)展示了采用传统 top-2 路由策略的 MoE 层;子图(b)说明了细粒度的专家分割策略;子图(c)演示了共享专家隔离策略的集成,构成了完整的DeepSeekMoE架构。值得注意的是,在这三种架构中,专家参数的数量和计算成本保持不变。

0205配图1.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

2.1 细粒度专家分割

在专家数量有限的情况下,被分配到某个特定专家的tokens更可能覆盖不同类型的知识,因此,指定专家会倾向于在其参数中学习大量不同类型的知识,而这些知识难以同时被有效利用。然而,如果每个token可以被路由到更多的专家,那么多样化的知识将有可能在不同的专家中被分别分解和学习。在这种情况下,每个专家仍然可以保持较高水平的专业化,从而实现更为集中的知识分布。

为了实现这一目标,同时保持专家参数和计算成本的一致性,DeepSeek对专家进行了更细粒度的分割。这种细粒度的专家分割使得激活专家的组合更具灵活性和适应性。具体来说,在典型的MoE架构的基础上(如图2(a)所示),DeepSeek将每个专家FFN分割成m个更小的专家,通过将FFN的中间隐藏维度减少到其原始大小的1/m。由于每个专家变小,因此相应地将激活专家的数量增加m倍,以保持相同的计算成本,如图2(b)所示。

通过这种细粒度的专家分割,MoE层的输出可以表示为

0205配图2.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

从组合学的角度来看,细粒度的专家分割策略显著增强了激活专家的组合灵活性。例如N=16的情况,典型的top-2路由策略可以生成120种可能的组合。但如果每个专家分割成4个更小的专家,则细粒度路由策略可以生成4,426,165,368种潜在的组合。组合灵活性的增加提升了获得更精确和有针对性知识获取的潜力。

2.2共享专家隔离

在传统的路由策略中,被分配到不同专家的tokens可能需要一些公共的知识或信息。因此,多个专家可能会在各自的参数中学习共享知识,从而导致参数的冗余。如果有专门的共享专家来捕获和整合不同上下文中的公共知识,其他路由专家之间的参数冗余将得到缓解。这种冗余的减少将有助于实现一个更高效的模型,使专家更具专业性。

为实现这一目标,除了细粒度专家分割策略外,DeepSeek还进一步隔离了Ks个专家以充当共享专家。无论路由模块如何,每个token都会被确定性地分配给这些共享专家。为了保持恒定的计算成本,其他路由专家中激活的专家数量将减少Ks,如图2(c)所示。结合共享专家隔离策略,完整的DeepSeekMoE架构中的MoE层公式如下:

0205配图3.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

2.3负载均衡考虑

自动学习的路由策略可能会遇到负载不均衡的问题,这会带来两个显著缺陷。第一,存在路由崩溃的风险,即模型总是选择少数几个专家,导致其他专家缺乏足够的训练。其次,如果专家分布在多个设备上,负载不均衡可能会加剧计算瓶颈。

为了降低路由崩溃的风险,DeepSeek引入了专家级别的均衡损失。均衡损失的计算如下:

0205配图4-1.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

除了专家级别的均衡损失外,DeepSeek还引入了设备级别的均衡损失。在缓解计算瓶颈时,没有必要在专家级别施加严格的均衡约束,因为对负载均衡的过度约束会影响模型性能。相反,主要目标是确保设备之间的计算均衡。如果将所有路由专家划分为D组,并在每个设备上部署一组专家,则设备级别的均衡损失计算如下:

0205配图5-1.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

03

实验结果

从2B参数的适度规模开始,DeepSeek验证了DeepSeekMoE架构的优势。在涵盖多种任务的12个零样本或少样本基准上进行了评估。

实验结果表明,DeepSeekMoE 2B大幅超越了GShard 2B,甚至与拥有1.5倍专家参数和计算量的更大MoE模型GShard 2.9B相当。值得注意的是,DeepSeekMoE 2B几乎接近其密集对应模型在相同参数数量下的性能,这为MoE语言模型设定了严格的性能上限。

0205配图6.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

为此,DeepSeek对DeepSeekMoE进行了详细的消融研究和分析验证了细粒度专家分割和共享专家隔离的有效性,并提供了证据支持DeepSeekMoE能够实现高水平的专家专业化。

利用DeepSeekMoE架构,DeepSeek将模型参数扩展到16B,并在包含2T Token的大规模语料库上训练了DeepSeekMoE 16B。评估结果表明,仅使用约40%的计算量,DeepSeekMoE 16B的性能与在相同2T语料库上训练的密集模型DeepSeek 7B相当。

0205配图7.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

DeepSeek还与开源模型进行了比较评估,结果表明,DeepSeekMoE 16B在激活参数数量相似的模型中持续大幅领先,并实现了与LLaMA2 7B相当的性能,后者激活参数数量约为前者的2.5倍。

0205配图8.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

图1展示了在Open LLM Leaderboard上的评估结果。

0205配图9.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

此外,DeepSeek还进行了监督微调以实现对齐,将模型转化为对话模型。评估结果显示,DeepSeekMoE Chat 16B在聊天设置中也实现了与DeepSeek Chat 7B和LLaMA2 SFT 7B相当的性能。

0205配图10.png

图片来源:《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

DeepSeek进行了将DeepSeekMoE扩展到145B的初步努力。实验结果仍然验证了其相对于GShard架构的显著优势,其性能与DeepSeek 67B相当,仅使用了28.5%(甚至可能18.2%)的计算量。

*更多生成式AI研究可前往“沙丘智库”小程序查阅

*有任何需求可咨询客服微信:zimu738

沙丘社区官方账号。

362篇原创内容
阅读 4016
收藏
沙丘社区Logo专注人工智能和大数据的数字技术社区
联系我们
  • 客服微信: zimu738
  • 加入我们: hr@shaqiu.cn
  • 业务合作: miao_tim
  • 内容投稿: service@shaqiu.cn
公众号
智库小程序
客服微信