当前位置: 首页 > news >正文

【DeepSeek原理学习1】MOE

MOE

混合专家模型,解决的问题是确定计算量的情况下如何训练更大的模型?即参数增加但是计算量不增加。

方法:将FFN层替换成MoE层,每个MoE层有一些专家网络和一个路由网络组成。

专家层:每一个专家就是一个前馈的网络。

路由层:根据输入token选择激活哪些专家。

负载均衡问题:避免token总是偏向选择某一个专家。

DeepSeek的MoE(专家混合模型)旨在通过智能分配计算资源来提升深度学习模型的效率和泛化能力。其核心作用是利用动态路由机制,智能地将输入数据分配到最匹配的专家网络,以实现更为精确的特征提取和任务处理。

其主要优化在于以下三方面:

专家划分:不同于传统 MoE 中专家都是独立的设计,DeepSeekMoE 引入了共享专家的概念。共享专家负责处理所有 token 的通用特征,而路由专家则根据 token 的具体特征进行动态分配。这种分工不仅减少了模型的冗余、提高了计算效率,还使得模型能够更好地处理不同领域的任务。稀疏激活机制:与传统的稠密模型不同,DeepSeekMoE 采用了稀疏激活机制,即每个 token 只会激活少数专家。这种机制不仅降低了计算开销,还使得模型能够更灵活地处理不同类型的输入,特别是在需要高度专业化知识的场景中。

负载均衡:为避免路由崩溃,即对专家的选择有明显的倾向,使用动态偏置来代替损失函数来动态负载均衡。动态偏置调整:在训练过程中,DeepSeekMoE 会监控每个专家的负载情况。如果某个专家的负载过高,系统会自动降低其偏置项,从而减少该专家的激活频率。为关注局部级的负载均衡(即针对单个 batch 或单个节点的专家分配情况)。

路由机制:路由机制的实现依赖于一个由参数化学习趋动的路由器。在代码中门控使用swiglu实现的。

①. 门控网络/路由机制的完整工作流程:

首先计算路由概率p(如0.65和0.8),用于选择FFN专家

然后生成一个门控值(图中用虚线表示)

这个门控值会与选中的FFN专家的输出相乘

②. 门控值的作用:

用于调节FFN专家输出的强度

可以看作是对专家输出的一个加权因子

通过门控机制可以实现更平滑的输出

③. 门控网络/路由机制整体流程:

最终输出 = 选中的FFN专家的输出 × 门控值(虚线表示的值)

这种双重机制(路由概率 + 门控值)使得模型既能够选择合适的专家,又能够灵活地控制专家输出的影响程度。

 DeepSeek结构图 

具体实现过程中,会将备选专家进行分组,然后选出前几组,然后再从前几组中选出指定激活专家的数量。这样做的主要目的也是为了更好的负载均衡同时增加随机性。

代码:基础函数(topk、scatter_、unsquence、gather、bincount、where) M

参考说明

全网最细!DeepSeekMoE:从算法原理到代码实现_哔哩哔哩_bilibili

相关文章:

  • Transformer的Word Embedding
  • Spring Boot 项目集成 License 授权与续期完整指南
  • GS+:地统计分析与空间插值工具
  • 【区块链安全 | 第三十五篇】溢出漏洞
  • HackMyVM-Preload
  • SSRF漏洞利用的小点总结和实战演练
  • 内存池项目(2)——内存池设计之边界标识法
  • File 类的用法和 InputStream, OutputStream 的用法
  • 【虚拟化安全】虚拟化安全知识全攻略:保障云端数据安全
  • 数据库设计工具drawDB本地部署与远程在线协作实测让效率翻倍
  • Hibernate核心方法总结
  • 阿里云oss视频苹果端无法播放问题记录
  • 项目二 - 任务5:打印乘法九九表
  • Qt饼状图在图例上追踪鼠标落点
  • 人脸表情识别数据集分享(AffectNet、RAF-DB、FERPlus、FER2013、ck+)
  • NVIDIA Jetson 环境安装指导 PyTorch | Conda | cudnn | docker
  • 【qiankun】简易前端微应用搭建
  • 企业工厂生产线马达保护装置 功能参数介绍
  • 4.6学习总结
  • 网络中级(HCIP)项目实践一MGRE的两种架构的私有网段 OSPF 动态路由协议的互联实验(手把手教您,包学会的)
  • 做交友类网站适合什么cms/站长之家怎么找网址
  • 外贸自建站平台怎么选/seo优化排名教程
  • 网站开发手机编译器/沈阳seo排名优化软件
  • 深圳外贸网站建设企业/爱站网长尾挖掘工具
  • 淘宝客网站如何让做/网站软件开发
  • 如何在网站上做社交的链接/关键词在线听