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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#与AI的交互(以DeepSeek为例)

C#与ai的交互 与AI的交互使用的Http请求的方式,通过发送请求,服务器响应ai生成的文本 下面是完整的代码,我这里使用的是Ollama本地部署的deepseek,在联网调用api时,则url会有不同 public class OllamaRequester {[Se…

第九节: Vue 3 中的 provide 与 inject:优雅的跨组件通信

文章目录 前言什么是 provide 和 inject?provide 的基本使用inject 的基本使用provide 提供响应式数据数据provide 提供修改数据的方法provide 提供只读响应数据provide 使用symbol作为注入名inject 默认值总结 前言 在 Vue 3 中,provide 和 inject 是一…

微信小程序-二维码绘制

wxml <view bindlongtap"saveQrcode"><!-- 二维码 --><view style"position: absolute;background-color: #FFFAEC;width: 100%;height: 100vh;"><canvas canvas-id"myQrcode" style"width: 200px; height: 200px;ba…

Linux系统中ssh远程登录协议

目录 一、SSH协议概述 二、SSH协议工作原理 三、ssh服务与配置文件 3.1、openssh 3.2、ssh命令 3.3、服务端配置 四、基于密钥验证的免交互登录 4.1、客户端生成密钥 4.2、将公钥拷贝至服务器 4.3、验证免密登录 一、SSH协议概述 SSH&#xff08;Secure Shell&#x…

vue2 ruoyi websocket轮询

文章目录 前言一、websocket和心跳是什么&#xff1f;二、使用步骤1.2.监听变化3.关闭 总结 前言 websocket&#xff0c;实现与后端通讯&#xff0c;使用心跳机制&#xff0c;断联自动恢复。 一、websocket和心跳是什么&#xff1f; WebSocket WebSocket 是一种网络通信协议&a…

LangChain大模型应用开发:LangGraph快速构建Agent工作流应用

介绍 大家好&#xff0c;博主又来给大家分享知识了。今天给大家分享的内容是使用LangChain进行大规模应用开发中的LangGraph快速构建Agent工作流应用。 通过对前几次对LangChain的技术分享。我们知道LangChain作为一个强大的工具集&#xff0c;为开发者们提供了丰富的资源和便…

学习FreeRTOS推荐几篇质量高的文章

学习FreeRTOS是一个非常好的选择&#xff0c;因为它是一个广泛使用的实时操作系统&#xff08;RTOS&#xff09;&#xff0c;特别适合嵌入式系统开发。以下是一些高质量的文章和视频资源&#xff0c;帮助你入门和深入学习FreeRTOS&#xff1a; 文章推荐 FreeRTOS官方文档 链接…

深入理解Redis:数据类型、事务机制及其应用场景

在当今快速发展的技术领域中&#xff0c;Redis作为一种高性能的内存数据库&#xff0c;已经被广泛应用于各种场景&#xff0c;从简单的缓存实现到复杂的数据处理任务。其灵活性和高效性主要来源于对多种数据结构的支持以及强大的功能特性&#xff0c;如事务处理、持久化选项、高…

k8s集群3主5从高可用架构(kubeadm方式安装k8s)

关键步骤说明 环境准备阶段 系统更新&#xff1a;所有节点执行yum/apt update确保软件包最新时间同步&#xff1a;通过ntpdate time.windows.com或部署NTP服务器网络规划&#xff1a;明确划分Service网段&#xff08;默认10.96.0.0/12&#xff09;和Pod网段&#xff08;如Flann…

Dify部署无法拉取镜像

Dify部署无法摘取镜像 sudo docker compose up -d [] Running 10/10✘ nginx Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiti... 15.2s✘ we…

科技快讯 | L3自动驾驶之风吹向全球 2025年或成商业化关键;DeepSeek商标遭恶意抢注

消息称AMD拟以40亿美元出售数据中心工厂&#xff0c;部分台企成潜在买家 2月24日&#xff0c;彭博社报道&#xff0c;AMD正与包括台湾广达电子、英业达、和硕联合以及纬创资通在内的亚洲企业谈判&#xff0c;出售其去年收购的数据中心制造工厂&#xff0c;总价值可能在30-40亿美…

06C语言——指针

一、指针入门 (1)、准备知识 0、图解&#xff1a; 1、内存地址 字节&#xff1a;字节是内存的容量单位&#xff0c;英文称为 byte&#xff0c;一个字节有8位&#xff0c;即 1byte(0000 0000 --- 1111 1111) 8bits(0 --- 1) 地址&#xff1a;系统为了便于区分每一个字节而对…

Python爬虫selenium验证-中文识别点选+图片验证码案例

1.获取图片 import re import time import ddddocr import requests from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.support.wait import WebDriverWait from …

OpenCV(6):图像边缘检测

图像边缘检测是计算机视觉和图像处理中的一项基本任务&#xff0c;它用于识别图像中亮度变化明显的区域&#xff0c;这些区域通常对应于物体的边界。是 OpenCV 中常用的边缘检测函数及其说明: 函数算法说明适用场景cv2.Canny()Canny 边缘检测多阶段算法&#xff0c;检测效果较…

电子科技大学考研复习经验分享

电子科技大学考研复习经验分享 本人情况&#xff1a;本科就读于电科软院&#xff0c;24年2月开始了解考研&#xff0c;24年3月开始数学&#xff0c;9月决定考本院&#xff08;开始全天候图书馆学习&#xff09;并开始专业课学习&#xff0c;11月底开始政治学习&#xff0c;最后…

go基础语法

go基础语法 先下载安装go&#xff0c;然后到vscode下载go插件 1. 基础 输入输出 package main import "fmt" func main(){a:1var b2 var c int //不给初始值得标出变量类型 c3var d stringfmt.Scanf("%s",&d) //接收用户输入fmt.Printf("Hell…

硬件基础(3):三极管(1):理论基础

目录 一、背景 二、定义 三、分类 四、工作原理 NPN三极管工作原理 基本工作原理 电流放大倍数&#xff08;增益&#xff09; 输入特性 1. 输入特性的基本概念 2. 输入特性曲线的形态 3. 输入特性曲线的具体分析 输出特性 1. 输出特性图的基本概念 2. 输出特性曲…

Git最佳实践指南(Windows/Linux双系统详解)

Git最佳实践指南&#xff1a;从入门到熟练&#xff08;Windows/Linux双系统详解&#xff09; 一、环境搭建与基础配置&#xff08;适用Windows/Linux&#xff09; 1.1 Git安装与验证 # Windows系统安装&#xff08;推荐Chocolatey包管理&#xff09; # 直接下载git二进制文件…

吃一堑长一智

工作中经历&#xff0c;有感触记录下 故事一 以前在一家公司时&#xff0c;自己是一名开发人员&#xff0c;遇到问题请教领导解决方案&#xff0c;当时领导给了建议&#xff0c;后来上线后出问题了&#xff0c;背了锅。心里想的是领导说这样做的呀&#xff0c;为什么出问题还…

联想 SR590 服务器 530-8i RAID 控制器更换损坏的硬盘

坏了的硬盘会自动亮黄灯。用一个空的新盘来替换&#xff0c;新盘最好不要有东西。但是有东西可能也没啥&#xff0c;因为我看 RAID 控制器里有格式化的选项 1. 从 IPMI 把服务器关机&#xff0c;电源键进入绿色闪烁状态 2. 断电&#xff0c;推开塑料滑块拉出支架&#xff0c;…