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

MOE结构解读和deepseek的MoE结构

不管dense还是MoE(Mixture of Experts)都是基于transformer的。
下面回顾下解码器块的主要架构:
注意力机制-层归一化&残差连接-FFN前馈神经网络-层归一化&残差连接。

在这里插入图片描述

dense模型是沿用了这个一架构,将post-norm换为pre-norm,层归一化换成了RMSNorm归一化,FFN替换成GLU,MHA替换成GQA或MLA等。
MoE模型在dense的基础上,将FFN分为了若干个更小的FFN,从而扩大了模型容量。

dense模型和moe模型的区别:

1.架构上
dense模型一般采用transformer的稠密型架构。
MoE模型将FFN层划分了若干个小型专家FFN,并新增路由器进行专家选择。
2.训练上
dense模型在训练时,前向传播激活所有参数,反向传播更新所有参数,推理时也是激活所有。
MoE模型在训练时,前向传播会根据输入数据由路由网络选择部分专家进行激活,反向传播时也只更新被激活的专家和路由网络的参数。推理时路由网络会根据输入动态选择部分专家进行计算,只有被选中的专家会被激活。
3.推理上
MoE的时延更低,吞吐量更高。训练更不稳定。

MoE架构概述

MoE将dense的FFN层修改为了一个门控网络和多个小型FFN,在处理输入时,由门控网络选择激活最相关的top_k个FFN,将输出进行加权求和,得到MoE层的输出。目的是通过多个专家网络来提高模型的表达能力和性能。
计算公式:
在这里插入图片描述

MoE工作流程

1.输入数据x
2.进入门控网络,计算专家的权重
在这里插入图片描述
3.使用路由激活专家,获取加权和
每个专家都是一个FFN,输出对输入x的处理结果。汇总加权求和后输出y。这里的权重是门控网络给出的专家权重。
4.负载均衡策略
为了防止模型偏向于特定的专家,引入了辅助损失函数,迫使模型让所有的专家都得到训练。
下面是三种防止某些专家得不到训练的方法
在这里插入图片描述
辅助损失函数例子:
在这里插入图片描述

deepseekMoE的架构

在这里插入图片描述
1.更细粒度的专家:专家FFN参数量减少,使得每次可以选择4个专家激活。
2.共享专家:设置一个共享专家,用于存储通用知识,从而使其他专家更加专业化。

参考:
1.【DeepSeek-MOE原理讲解】 https://www.bilibili.com/video/BV1uUPieDEK1/?share_source=copy_web&vd_source=29af710704ae24d166ca951b4c167d53
2.https://arxiv.org/html/2401.06066v1
3.http://www.sniper97.cn/index.php/note/deep-learning/note-deep-learning/4497/#MoE_jie_shao

相关文章:

  • 【嵌入式Linux应用开发基础】网络编程(3):TCP协议拥塞控制
  • 获取GitHub的OAuth2的ClientId和ClientSecrets
  • 蓝桥杯嵌入式客观题以及解释
  • C++ 正则表达式分组捕获入门指南
  • 批量将gitlab仓库转移到gitea中
  • 2.25DFS和BFS刷题
  • pytest源码分析之pluggy源码分析一
  • 支持 40+ 插件,Spring AI Alibaba 简化智能体私有数据集成
  • 【博资考3】网安学院-北航网安基础部分(详细版本)
  • 鹏哥c语言数组(初阶数组)
  • QT线程同步
  • 《白帽子讲Web安全》爬虫对抗:技术演进与攻防博弈
  • 【PyTorch】torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
  • 创建数据库完成后需要进行对数据库添加空间扩展
  • 【变化:海平面上升,城市下沉 关键字摘要】
  • 自定义提交按钮触发avue-form绑定的submit事件
  • TMDS视频编解码算法
  • OpenIPC开源FPV之Adaptive-Link安装
  • MongoDB私人学习笔记
  • (Arrow)时间处理变得更简单
  • 苏州建设网站市政中标项目/培训学校网站
  • 服装小订单接单平台/seo的主要分析工具
  • 武汉网站建设的费用/网站推广的方式和方法
  • 网上做一道题2元的网站/合肥网络科技有限公司
  • 男女宾馆做爰视频网站/友情链接代码模板
  • zencart网站/比较好用的搜索引擎