一、前言

在 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+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
AI+制造:智能制造和自动化工厂提高了生产效率和质量。通过AI技术,工厂可以实现设备预测性维护,减少停机时间。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
请添加图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、LLM面试题

在这里插入图片描述
在这里插入图片描述

五、AI产品经理面试题

在这里插入图片描述

六、deepseek部署包+技巧大全

在这里插入图片描述

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐