
DeepSeek为什么采用与主流大模型不一样的MoE架构?一文搞懂什么是MoE模型
在 DeepSeek 官网上看到,DeepSeek-V3、V2.5 版本都用了 MoE 架构。但像 Qwen、LLama 模型,用的却是 Dense 架构,也就是传统的 Transformer 架构。这两种架构有个很明显的区别。DeepSeek-V3 版本总参数量高达 6710 亿,可每次计算激活的参数量,也就是真正参与到计算里的参数,只有 370 亿,是总参数量的5.5%。但 Qwen 和 LL
一、前言
在 DeepSeek 官网上看到,DeepSeek-V3、V2.5 版本都用了 MoE 架构。但像 Qwen、LLama 模型,用的却是 Dense 架构,也就是传统的 Transformer 架构。这两种架构有个很明显的区别。DeepSeek-V3 版本总参数量高达 6710 亿,可每次计算激活的参数量,也就是真正参与到计算里的参数,只有 370 亿,是总参数量的5.5%。但 Qwen 和 LLama 模型就不一样了,它们每次计算激活的参数量,就是整个模型的参数量,没有 “打折”。为啥会出现这种差异呢?
本文将深入探讨 MoE 模型的核心概念、与传统大模型的关键区别、内部工作机制、优势与挑战,并展望其未来发展趋势,让读者能对 MoE 模型有个详细的了解,解答上述疑惑。
👀
二、什么是 MoE 模型,跟传统大模型比较有什么区别?
什么是 MoE 模型?
当我们人遇到一个包括了多个领域知识的复杂问题时,我们该使用什么样的方法来解决呢?最简单的办法就是把各个领域的专家集合到一起来攻克这个任务,当然我们事先要把不同的任务先分离出来,这样才便于分发给不同领域的专家,让他们来帮忙处理,最后再汇总结论。
混合专家模型(Mixture of Experts:MoE)正是基于这样的理念,它由多个专业化的子模型(即“专家”)组合而成(注意不是多个独立的子模型,而是一个模型内部划分多个网络结构),每一个“专家”都处理其擅长的领域内的任务。而决定哪个“专家”参与解答特定问题的,是一个称为“门控网络”的机制,相当于一个路由器。
混合专家模型(MoE)的核心思想是通过选择性激活子模型(专家模型)来提高模型的计算效率和表达能力。MoE 模型相较于传统的大模型,在结构上存在差异,并且可以通过不同的方式优化计算资源的使用,提升模型的泛化能力和计算效率。
MoE 架构的基本原理非常简单明了,它主要包括两个核心组件:GateNet 和 Experts。GateNet 的作用在于判定输入样本应该由哪个专家模型接管处理。而 Experts 则构成了一组相对独立的专家模型,每个专家负责处理特定的输入子空间。
门控网络(Gating Network):
门控网络负责决定在每次输入时哪些专家将被激活(即哪些专家会参与计算)。它通过一个类似于分类的机制,根据输入的特征向量为不同的专家分配权重。
专家网络(Experts):
MoE 模型包含多个“专家”(专家网络),每个专家通常是一个子模型,可以是神经网络的一个子模块。每个专家可能有不同的能力或专长,能够处理不同类型的输入数据。
例如,在一个语言模型中,不同的专家可以擅长处理不同的语言任务或不同的语言特征。
跟传统大模型比较有什么区别?
在 MoE 系统中,传统 Transformer 模型中的每个前馈网络 (FFN) 层替换为 MoE 层,其中 MoE 层由两个核心部分组成: 一个门控网络和若干数量的专家网络。
传统 Transformer 大模型结构
MoE 大模型结构
传统 Transformer 和 MoE 模型各个层级比较:
MoE 模型与传统大模型的典型区别:
MoE 模型:每次输入时,只会激活一小部分专家(例如,10% 的专家),而其他专家不参与计算。这意味着,MoE 模型可以在保持模型参数量很大的情况下,大幅度减少计算量,提高了计算效率和资源利用。
传统大模型:在传统的大型神经网络(如 Transformer)中,所有层和所有节点在每次前向传播时都会参与计算。虽然这些模型参数也可能非常庞大,但每次输入都需要对所有的参数进行计算,即使部分参数的贡献很小,因此也会浪费计算资源。
👀
三、MoE 的工作原理是什么?
MoE 主要的变化点在 前馈网络(FFN) 层,它被 MoE 机制取代,包括:
1、专家网络(Experts):多个前馈网络(FFN),相当于多个可选的专家,每个专家结构类似于普通 FFN。
2、门控网络(Gating Network):决定在每次输入时,选择哪些专家进行计算,并分配权重。
3、专家混合(Mixture of Experts):选定的专家执行计算,并对其输出进行加权合并。
其具体工作流程如下:
S1、输入 token(与传统大模型一致):
输入的 token 会首先经过标准的 token embedding 和 位置编码 处理,转化为对应的向量表示。
S2、多头自注意力(MHSA)层 (与传统大模型一致)
在多头自注意力层中,token 会计算自己与其他 token 的注意力权重,捕获序列中的长距离依赖关系。这一层的输出是增强了上下文信息的 token 表示,每个 token 在经过多头自注意力层后,会有一个上下文信息丰富的表示,通常是一个向量 h(比如维度为 768 或 1024)。这个向量包含了该 token 在整个句子中上下文的信息,反映了这个 token 和其他 token 的关系。
S3、MoE 层(变化的地方,包含门控网络、专家网络、专家混合)
3.1、门控网络根据输入特征选择专家
门控网络的任务是将这个 token 的表示 h 输入到一个全连接网络,然后生成一组权重分布,这些权重分布表示了每个专家的“重要性”,即哪个专家适合处理这个 token。门控网络输出的是一个概率分布,
比如 [0.6, 0.3, 0.1, 0.0],意味着:
-
专家 1 的激活概率是 0.6
-
专家 2 的激活概率是 0.3
-
专家 3 的激活概率是 0.1
-
专家 4 没有被激活(激活概率为 0.0)
根据门控网络的输出选择专家,在实际的操作中,门控网络会通过 Top-k 选择策略 从中挑选出前 k 个专家(通常是 2 到 4 个)(这个参数可以人工配置)。比如,如果 k=2,那么就会选择 专家 1 和 专家 2。
如何选择专家?概率最大者优先:门控网络会按激活概率大小来排序,选择前 k 个专家。例如,[0.6, 0.3, 0.1] 中,专家 1 和专家 2 会被选中,因为它们的概率较大。
3.2、专家计算
被选中的专家会分别对这个 token 执行前馈计算,每个专家会根据它自己的网络参数对输入进行处理。
3.3、加权合成输出最后
专家的输出会按门控网络给出的权重进行加权融合。
例如,如果门控网络的输出是 [0.6, 0.4],那么专家 1 和专家 2 的输出将按 0.6 和 0.4 的比例进行加权求和,得到最终的 token 输出。
举个例子:门控网络是如何根据 token 选择专家
假设我们有一个 MoE 模型,包含 4 个专家,每个专家擅长处理不同的任务:
-
专家 1 擅长处理情感分析任务(比如“开心”,“悲伤”)
-
专家 2 擅长处理命名实体识别(NER)任务(比如识别“人名”,“地点名”)
-
专家 3 擅长处理语法分析任务(比如判断句子结构)
-
专家 4 擅长处理机器翻译任务(比如“英语到法语”的翻译)
现在,假设我们有一个输入句子:“我今天很开心”。
1、经过多头自注意力层后,我们得到了 token “开心” 的表示 h,这个 h 包含了它在句子中的上下文信息,表示它的语义是“情感积极”。
2、门控网络对 token h 进行处理,并输出一个 概率分布:[0.7, 0.2, 0.05, 0.05]这意味着,门控网络认为 token “开心” 最需要的处理是情感分析,所以它给 专家 1(情感分析)分配了 0.7 的高概率。同时,专家 2 和专家 3 的概率较低,意味着它们对这个 token 的处理影响较小。
3、选择前 k=2 个专家,根据门控网络输出的概率:专家 1(情感分析)和专家 2(命名实体识别)会被选中,专家 3 和专家 4 被排除。
4、专家计算专家 1 处理“开心”这个 token,识别出它的情感是积极的,产生相关的输出。专家 2 处理“开心”时,可能会识别出它在上下文中作为一个情感表达的词。
5、加权合成输出最后,专家 1 和专家 2 的输出会根据门控网络给出的权重进行加权合成。因为专家 1 的权重是 0.7,而专家 2 的权重是 0.2,所以最终输出会更加倾向于专家 1 的处理结果。
👀
四、MoE 模型有什么优势和挑战?
MoE 模型相比传统 Transformer 模型的优势
1、计算更高效:MoE 只激活部分专家,而不是整个 FFN 层,使得推理时计算量更小,减少算力消耗。
2、可扩展性更强:通过增加专家数量,而不增加计算量,就能增强模型能力。
3、泛化能力强:MoE 的门控网络可以根据不同的输入选择合适的专家,从而让模型在处理不同任务时具备更强的适应能力。
MoE 模型也存在一些挑战
1、训练困难:由于大部分专家在每个输入上都不被激活,模型的训练效率可能受到影响。此外,门控网络的设计和优化也可能较为复杂。
2、专家不平衡问题:在训练过程中,某些专家可能会被频繁激活,而其他专家则很少被激活,这会导致一些专家在训练过程中难以学习到有用的表示。
3、负载均衡问题:为了确保不同专家都能有效学习和推理,可能需要对专家进行负载均衡,即确保每个专家的计算资源得到均衡分配
基于上述MoE优势,笔记认为这个也是 DeepSeek 拥有较低成本以及比肩openai性能的一个重要原因:
DeepSeek 选择 MoE 架构提高计算效率并降低成本,虽然拥有千亿级别的参数量,但是通过每次只激活 8 个专家来进行推理计算,使得计算量和能耗得到显著降低,同时保留了强大的模型能力。
同时在 MoE 上,DeepSeek 进行了一些关键优化:
1、门控网络优化:通过改进门控机制,DeepSeek 能够更加智能地选择合适的专家,避免了部分专家被过度调用而导致的专家不平衡问题。
2、专家平衡控制:在训练过程中,通过更精细的调度策略,确保专家的负载更加均衡,避免了某些专家被“冷启动”或长时间闲置的问题。
3、动态计算资源分配:DeepSeek 能够根据不同的任务和输入数据动态调整计算资源,使得系统在不同场景下都能达到最佳性能和成本效益平衡。
这些优化使得 DeepSeek 在使用 MoE 架构时,能够高效利用计算资源,提升推理速度,同时保持很强的任务适应性。
👀
五、总结
在本文中,我们详细对比了 MoE(Mixture of Experts)模型 和传统的 Transformer 模型,MoE 模型通过引入专家网络 和门控机制,在推理时,MoE 仅激活一部分专家,从而减少了计算开销,并能够在保持大参数量的同时,提高计算效率。与此相对,传统 Transformer 模型每次计算时都需要对整个网络进行全量计算,计算量大,效率相对较低。
此外,MoE 模型具有 更高的灵活性,能够适应多样化的输入和任务。通过动态选择合适的专家,MoE 可以根据不同的输入特征进行优化处理,因此具有更强的泛化能力。
然而,MoE 的训练过程较为复杂,面临专家不平衡和 门控网络优化 等问题,需要更精细的设计与调优,对使用者的技术要求高。
未来,MoE 模型在性能和效率上肯定会有大突破。随着技术发展,门控网络会更智能,精准选专家,减少计算浪费 (DeepSeek 目前优化的方向)。MoE 模型低成本、高效率、灵活性的特性,让其在需要大量计算资源的领域如自然语言处理、推荐系统和计算机视觉中具备巨大的潜力,笔者认为 MoE 的应用场景将更加广泛。
上述内容介绍了MoE模型的结构和运行机制,其实还有几个内容没有涉及:门控网络选择后端专家的能力如何来的?多个专家网络并存各自负责不同领域,那么这样的结构是如何训练的? 关注本公众号,后续会持续更新解答上述问题。
AI大模型学习路线
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
扫描下方csdn官方合作二维码获取哦!
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)