【深度解析】图解Deepseek-V3模型架构-混合专家模型(MoE)

一、引言

最近非常火爆的DeepSeek-V3模型,是一个包含6710亿总参数的强大混合专家模型(MoE),其中每个token激活370亿参数。该模型在DeepSeek-V2验证有效的核心架构基础上,采用多头潜在注意力(MLA)机制DeepSeekMoE架构,显著提升推理效率并降低训练成本。DeepSeek-V3创新性地引入无辅助损失的负载均衡策略,并采用多标记预测训练目标以增强模型性能。
混合专家模型(MoE) 作为突破传统密集模型瓶颈的核心架构,通过任务分治理念实现计算效率与模型容量的双重突破。
DeepSeekMoE的突破性表现印证了该技术的战略价值。MoE架构通过专家拆分、无辅助损失负载均衡等创新,使国产大模型首次在参数效率、训练稳定性等维度超越国际竞品,为构建多模态通用智能底座开辟新路径。
本文将采用图解的方式详细介绍一下混合专家模型(MoE) 的技术原理。


二、什么是混合专家MoE模型

混合专家(Mixture of Experts,简称 MoE)模型,是一种利用多个不同的子模型(或“专家”)来提升大语言模型(LLM)质量的技术。
在这里插入图片描述

MoE模型的主要组成部分包括:
专家(Experts): 模型中的每个专家都是一个独立的神经网络,专门处理输入数据的特定子集或特定任务。例如,在自然语言处理任务中,一个专家可能专注于处理与语言语法相关的内容,而另一个专家可能专注于语义理解。

路由或者门控网络(Gating Network): 门控网络的作用是决定每个输入样本应该由哪个专家或哪些专家来处理。它根据输入样本的特征计算出每个专家的权重或重要性,然后根据这些权重将输入样本分配给相应的专家。门控网络通常是一个简单的神经网络,其输出经过softmax激活函数处理,以确保所有专家的权重之和为1。
在这里插入图片描述
“专家”并不是专门针对某个领域,如“心理学”或“生物学”。它只是语法层面的专家,具体来说,它们的专长是在特定的上下文中处理特定的标记。
在这里插入图片描述
路由器(门控网络)来选择最适合给定输入的专家(们):
在这里插入图片描述
每个专家并不是一个完整的 LLM,而是 LLM 架构中的子模型部分。


三、发展历程

  • 早期探索:理论奠基与原型构建
    混合专家模型(MoE)的起源可追溯至1991年Michael Jordan与Geoffrey Hinton的开创性研究。在论文《Adaptive Mixture of Local Experts》中,他们首次提出通过多个独立网络(专家)协同处理数据子集,并引入门控网络动态分配任务。这一架构突破性地解决了传统神经网络中不同任务间的干扰问题,为后续研究奠定基础。早期MoE模型虽受限于算力和数据规模,但已展现出任务分治思想的潜力——通过专家网络专业化分工,门控网络竞争性选择最优处理路径,显著提升了模型学习效率。

  • 关键突破:稀疏计算与动态激活
    2017年成为MoE发展的分水岭。谷歌团队在《Sparsely-Gated Mixture-of-Experts》中提出两项革命性创新:
    其一,将稀疏门控机制引入LSTM网络,仅激活2-4个专家处理每个token,使模型参数量突破千亿级时仍保持高效推理;
    其二,采用token级路由策略,实现细粒度计算资源分配。
    这两项突破使MoE在自然语言处理领域大放异彩,Google的GShard项目更将MoE成功整合至Transformer架构,为后续大模型时代铺平道路。

  • 当代演进:架构革新与国产突破
    GPT-4的发布标志着MoE进入工业化应用阶段。其采用8个220B参数的专家模块,通过动态路由实现万亿级参数规模下的高效推理。这种"模型堆叠"策略突破单一模型扩展瓶颈,使推理成本降低至传统密集模型的1/8。而国产DeepSeekMoE进一步加速了MoE领域的技术创新。该架构通过三大技术创新实现跨越式发展:
    首创无辅助损失的负载均衡策略,消除传统路由算法对平衡性约束的依赖;
    采用多token预测训练目标,提升专家协作效率;
    参数效率达到国际领先水平,6B模型以40%计算量实现LLaMA2 7B性能,145B版本更以28.5%资源匹配67B密集模型表现。

DeepSeekMoE的成功实践证明,通过专家专业化分工与智能路由机制的深度结合,MoE正在重塑大模型的技术范式,为通用人工智能时代的到来提供关键基础设施。


四、架构设计

4.1 专家架构
  • 密集层 (Dense Layer)
    为了探讨专家(MoE中的E)的代表意义和它们的工作方式,我们首先需要了解 MoE 原本要替代的密集层。
    混合专家(MoE)起始于 LLM 相对基础的功能,即前馈神经网络(FFNN)。
    在这里插入图片描述
    密集层(Dense Layer)是前馈神经网络(FFNN)中的全连接层,每个神经元通过权重矩阵与前一层的所有输出相连,利用激活函数实现特征的非线性组合,用于学习输入数据的高阶抽象表示。
    在这里插入图片描述
    传统 Transformer 中的前馈神经网络(FFNN)被称为密集模型,因为所有参数(权重和偏置)都会被激活。没有任何参数被遗漏,所有参数都参与输出计算。
    如果我们更仔细地观察这种密集模型,可以发现输入会在某种程度上激活所有参数:
    在这里插入图片描述
  • 稀疏层 (Sparse Layers)
    与此相对,稀疏模型仅激活一部分参数,并且与混合专家(MoE)紧密相关。
    可以将密集模型切割成多个部分(所谓的专家),重新训练它,并且在给定时间内只激活一组专家:
    在这里插入图片描述
    其底层思想是每个专家在训练过程中学习不同的信息。然后,在进行推理时,仅使用与给定任务最相关的特定专家。
    96074b10cd71dda74cc0890dc3a853a9.png
  • 专家的架构
    将专家视为密集模型中的隐藏层并将其切分成块,它们通常本身就是完整的前馈神经网络(FFNN),
    在这里插入图片描述
    由于大多数 LLM 具有多个解码器块,因此给定文本将在多个专家之间传递,直到文本生成:
    在这里插入图片描述
    所选的专家很可能在标记之间有所不同,这就导致了不同的“路径”被选择:
    在这里插入图片描述
    如果我们更新解码器块的可视化,它现在会包含更多的 FFNN(每个专家一个):
    在这里插入图片描述
    解码器块现在有多个 FFNN(每个都是一个“专家”),可以在推理时使用。
4.2 路由机制

现在我们有了一组专家,那么模型是如何知道应该使用哪些专家的呢?

在专家之前,添加了一个路由器(也叫网关网络),它经过训练来选择哪个专家适合给定的标记。

  • 路由器
    路由器(或门控网络)也是一种前馈神经网络(FFNN),它根据特定的输入来选择专家。它输出概率,并利用这些概率来选择最匹配的专家:
    在这里插入图片描述
    专家层返回所选专家的输出,并乘以门值(选择概率)。
    路由器与专家(其中只有少数几个被选中)一起构成了 MoE 层:
    在这里插入图片描述
    给定的 MoE 层有两种大小,分别是稀疏的混合专家或密集的混合专家模型。
    这两者都使用路由器来选择专家,但稀疏 MoE 只选择几个,而密集 MoE 则选择所有专家,但可能以不同的分布进行选择。

在这里插入图片描述给定一组标记,密集MoE 会将标记分配给所有专家,而稀疏 MoE 只选择少数专家。

  • 专家的选择
    门控网络可以说是任何 MoE 模型中最重要的组成部分,因为它不仅决定了在推理过程中选择哪些专家,还决定了在训练过程中选择哪些专家。
    在最基本的形式中,我们将输入(x)与路由器权重矩阵(W)相乘:
    在这里插入图片描述然后,我们对输出应用 SoftMax 操作,为每个专家创建概率分布 G(x):
    在这里插入图片描述
    路由器使用这种概率分布来选择与给定输入最匹配的专家。
    最后,我们将每个路由器的输出与每个选定的专家相乘,并对结果进行求和。

在这里插入图片描述

4.3 混合专家模型流程图

下图显示了输入是如何通过路由器和专家进行流动的。
在这里插入图片描述
在这里插入图片描述


五、技术优势详解

5.1 计算效率:条件计算带来的FLOPs优化

混合专家模型(MoE)通过稀疏激活机制实现计算效率质的飞跃。每个token仅激活2-4个专家(总专家量可达数千),避免传统密集模型的全参数计算。例如,DeepSeekMoE 16B模型激活参数仅6.5B,却以40%计算量达到LLaMA2 7B的性能。这种效率源于:

  • 动态路由:门控网络实时筛选相关性最高的专家
    简单的函数常常导致路由器会选择相同的专家,因为某些专家可能比其他专家学习得更快:在这里插入图片描述
    选择的专家分布不均,会导致一些专家几乎不会被训练到,这导致在训练和推理过程中都会出现问题。
    因此,希望在训练和推理过程中,专家之间具有相等的重要性,这就是我们所说的负载均衡。从某种意义上说,这是为了防止对同一专家的过拟合。

  • 负责均衡:KeepTopK
    为了平衡专家的重要性,我们需要关注路由器,因为它是决定在特定时刻选择哪些专家的主要组成部分。
    负载均衡路由器的一种方法是通过一个简单的扩展,叫做 KeepTopK。通过引入可训练的(高斯)噪声,我们可以防止总是选择相同的专家:
    在这里插入图片描述然后,除了你想激活的前 k 个专家(例如 2 个)之外,其余专家的权重将被设置为 -∞:
    在这里插入图片描述
    通过将这些权重设置为 -∞,这些权重上的 SoftMax 输出将导致概率为 0:
    2d232fa3ea0bd5a6378fa55f022aa884.png

  • 辅助损失
    为了在训练期间获得更均匀的专家分布,辅助损失(也称为负载均衡损失)被添加到网络的常规损失中。
    这个辅助损失的第一个组成部分是对整个批次中每个专家的路由器值进行求和:
    在这里插入图片描述
    这给出了每位专家的重要性分数,表示无论如何输入,某位专家被选择的可能性。
    我们可以使用这个来计算变异系数(CV),它告诉我们不同专家之间的重要性分数差异有多大。

使用这个 CV 分数,我们可以在训练过程中更新辅助损失,目的是尽可能降低 CV 分数(从而给每个专家相等的重要性):
在这里插入图片描述

5.2 扩展能力:模型容量与计算成本的解耦

MoE架构突破参数规模与计算资源的线性关系。DeepSeekMoE 145B模型通过专家拆分策略,在保持计算成本28.5%的情况下,性能超越Google GShard。关键技术包括:

  • 专家并行:将专家分布在不同计算节点
    不平衡不仅存在于被选择的专家中,也存在于分配给专家的 token 分布中。
    例如,如果输入 token 不成比例地分配给某个专家,而忽视了其他专家,那么也可能导致训练不足:
    在这里插入图片描述
    这里的问题不仅是哪些专家被使用,而是它们被使用的频率。
    解决这个问题的一种方法是限制每个专家可以处理的 token 数量,即专家容量。当一个专家的容量达到上限时,剩余的 token 会被发送到下一个专家:
    在这里插入图片描述
    如果两个专家的容量都已满,那么 token 将不会被任何专家处理,而是被发送到下一层,这就是 token 溢出。
    在这里插入图片描述
  • 容量因子调节:动态调整专家处理token上限
  • Token 选择
    KeepTopK 策略是将每个 token 路由发送到少数几个选定的专家。这种方法称为 Token Choice,允许将给定的 token 发送到一个专家(top-1 路由):
    在这里插入图片描述或发送到多个专家(top-k 路由):
    在这里插入图片描述

六、训练优化技术解析

1. 联合训练策略

专家-路由器协同优化采用双路径反向传播:
DeepSeek创新的多token预测目标
在这里插入图片描述

  • 同时预测当前token及后续n个token
  • 迫使专家学习长程依赖关系
  • 训练效率提升30%(相同epoch数下困惑度降低18%)
6.2 分布式训练实践

专家并行架构实现超大规模训练:

输入数据
Split into Shards
GPU1: Expert A
GPU2: Expert B
GPU3: Expert C
Gather Outputs
Final Output

DeepSeek关键参数:

  • 通信压缩:采用1-bit梯度量化,通信量减少83%
  • 流水线并行:重叠计算与通信,GPU利用率达92%
  • 检查点策略:每30分钟自动保存,恢复训练仅需2分钟

资源消耗

  • 145B模型全量训练消耗278.8万H800 GPU小时
  • 同等规模密集模型需920万GPU小时(成本降低67%)

七、技术突破总结

MoE架构通过计算稀疏化参数专业化的双重革新,正在重塑大模型技术路线。DeepSeek系列实践证明,国产模型在专家拆分策略(如将单个专家拆分为两个子专家而不增加参数量)、动态路由算法等领域已形成独特技术优势。未来随着万亿级MoE模型的出现,这种架构将成为突破算力瓶颈的核心解决方案。

【参考文献】
本文参考了 Maarten Grootendorst的文章,其是“袋鼠书”Hands-On Large Language Models 的作者,你可以在《袋鼠书》中查看更多关于大语言模型可视化的内容。

在这里插入图片描述

英文版封面,中文版封面

《图解大模型》
Jay Alammar,Maarten Grootendorst | 著
李博杰 | 译
美亚 4.7 星评,畅销书 Hands-on 系列新作。只要具备 Python 基础,就可以通过本书学习大语言模型,并将大语言模型的能力应用到真正的 AI 实践中。

本书将为 Python 开发人员提供使用大模型的实用工具和概念,帮助大家掌握实际应用场景。你将学习如何利用预训练的大型语言模型进行文案撰写、文本摘要、语义搜索等任务,构建超越关键词匹配的智能系统。

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

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

相关文章

hive:分区>>静态分区,动态分区,混合分区

分区表 使用场景:数据量庞大且经常用来做查询的表 特点:将数据分别存储到不同的目录里 优点:避免全盘扫描,提高查询效率 分区的类型 它们的默认值分别是: false, strict, 要求至少有一个静态分区列,而 nonstr…

React进阶之React核心源码解析(一)

React核心源码解析 react 特点CPU卡顿IO 卡顿 新老 react 架构对比v15v16.8Scheduler 调度器Reconciler 协调器 React fiber原理更新dommount 构建过程 render阶段 — scheduler reconcilerreact源码解析react-domreact-dom/src/client/ReactDOMRoot.js react-reconcilerreact-…

ubuntu20.04连接airpods pro2

youtub视频解决方法:Setup your AirPods Pro with Linux (Ubuntu w/Mic fix) 重要步骤1, sudo apt-get update sudo apt-get install pulseaudio sudo apt-get upgrade pluseaudio重要步骤2, sudo vim /etc/bluetooth/main.confsudo /ect/…

sqli_labs_master Less-8 时间盲注,boolen盲注 获取数据库中的表、列

获取当前数据库名 import requestsdef inject_database(url):namemax_length20 # 假设数据库名称最大长度为20# ASCII范围:数字、字母、下划线(_)low{a: 97, z: 122, A: 65, Z: 90, 0: 48, 9: 57, _: 95}high{97: a, 122: z, 65: A, 90: Z,…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_init 函数

#if (NGX_OPENSSL)ngx_ssl_init(log); #endif objs/ngx_auto_config.h 中 #ifndef NGX_OPENSSL #define NGX_OPENSSL 1 #endif 所以这个条件编译成立 NGX_OPENSSL 是一个宏定义,用于控制与 OpenSSL 相关的功能是否被启用 若用户通过./configure参数(如-…

常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构

文章目录 引言常见的架构图I 业务架构图-案例模块功能说明1. 用户界面层 (UI)2. 应用服务层3. 数据管理层4. 基础设施层业务流程图示例技术实现II 功能架构图 -案例功能模块说明1. 船舶监控模块2. 报警管理模块3. 应急响应模块4. 通信管理模块5. 数据分析模块数据管理层基础设施…

Redis 09章——哨兵(sentinel)

一、是什么 吹哨人巡查监控后台master主机是否故障,如果故障了根据$\textcolor{red}{投票数}$自动将某一个从库转换为新主库,继续对外服务作用:俗称无人值守运维官网理论:High availability with Redis Sentinel | Docs 二、能干…

WEB入门

1.了解什么是WEB 2.了解什么是WEB前端 3.学习和掌握开发环境的搭建 4.网页开发基础 1.什么是WEB 1946年,有一个发明了人类史上第一台完整体系的计算机 时间进展到1989年,实验室有一个研发人员 TimBernersLee(提姆博纳斯李)开…

【若依免登录】登录状态已过期,您可以继续留在该页面,或者重新登录

【问题】 【问题背景】 在实现若依的免登录出现的问题。前面已经做的操作 前端 第一步:views目录下面存在需要免登录的页面 第二步:在ruoyi-ui\src\router 的 index.js 的 constantRoutes (公共路由方)中 配置需要免登录的页面位…

JUC并发-4.wait和notify以及Atomic原理

大纲 1.wait()与notify()实现一个简易的内存队列 2.wait()与notify()的底层原理 3.分布式存储系统NameNode机制介绍 4.分布式存储系统的edits log机制介绍 5.分布式存储系统的NameNode实现 6.分布式存储系统的创建目录功能的实现 7.edits log的全局txid机制和双缓冲机制…

Jasper AI技术浅析(二):语言模型

Jasper AI 的核心语言模型是基于 OpenAI 的 GPT-4(Generative Pre-trained Transformer 4)构建的。GPT-4 是一种生成式预训练语言模型,利用深度学习技术,特别是 Transformer 架构,来理解和生成自然语言。 1. GPT-4 的基本原理 1.1 Transformer 架构 GPT-4 基于 Transfo…

(arxiv2411) CARE Transformer

作者提出了两个问题,问题 1:堆叠是充分利用局部归纳偏差和长距离信息优势的最佳方法吗? 问题 2:是否有可能同时提高线性视觉 Transformer 的效率和准确性? 为了解决这两个问题,作者提出了一种 deCoupled du…

RISC-V平台编译 state-thread x264 ffmpeg zlog

1.state-threads 源码下来之后 直接 make linux-debug 目录下生成了对应的.a 和 .h文件 gcc test.c -o test -l st -L . #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/socket.h&g…

DeepSeek笔记(二):DeepSeek局域网访问

如果有多台电脑&#xff0c;可以通过远程访问&#xff0c;实现在局域网环境下多台电脑共享使用DeepSeek模型。在本笔记中&#xff0c;首先介绍设置局域网多台电脑访问DeepSeek-R1模型。 一、启动Ollama局域网访问 1.配置环境变量 此处本人的操作系统是Windows11&#xff0c;…

2025年二级建造师报名流程图解

2025年二级建造师报名时间&#xff01;附报名流程&#xff01; ⏰️已公布25年二建考试时间的省份如下&#xff1a; ️4月19日、20日考试的城市有&#xff1a;贵州 ️5月10日、11日考试的城市有&#xff1a;湖北、陕西、宁夏、甘肃、福建、浙江、江西、黑龙江、河南、湖南、…

Android的Activity生命周期知识点总结,详情

一. Activity生命周期 1.1 返回栈知识点 二. Activity状态 2.1 启动状态 2.2 运行状态 2.3 暂停状态 2.4 停止状态 2.5 销毁状态 三. Activity生存期 3.1 回调方法 3.2 生存期 四. 体验Activity的生命周期 五. Activity被回收办法 引言&#xff1a; 掌握Acti…

frp-tool,客户端frp命令行工具

在日常开发和运维过程中&#xff0c;端口转发和配置管理是常见的需求。 如果有自己一台服务器&#xff0c;并且已经开放好端口&#xff0c;配置好token后&#xff0c;这个工具一定能帮到你。 今天给大家推荐一款非常好用的frpc命令行工具&#xff0c;它是一个用Python编写的命令…

netcore https配置

一、生成证书 1. 安装 OpenSSL 如果尚未安装 OpenSSL&#xff0c;可以通过以下命令安装&#xff1a;Ubuntu/Debian:sudo apt update sudo apt install openssl CentOS/RHEL:sudo yum install openssl 2. 生成私钥 使用以下命令生成私钥文件&#xff08;private.key&#xff09…

解锁ApplicationContext vs BeanFactory: 谁更具选择性?

目录 一、聚焦源码回顾 &#xff08;一&#xff09;源码分析和理解 &#xff08;二&#xff09;简短的回顾对比建议 二、ApplicationContext vs BeanFactory特性对比 &#xff08;一&#xff09;主要特性总结 &#xff08;二&#xff09;直接建议 三、案例简单说明 &am…

【大模型】DeepSeek 高级提示词技巧使用详解

目录 一、前言 二、DeepSeek 通用提示词技巧 2.1 DeepSeek 通用提示词技巧总结 三、DeepSeek 进阶使用技巧 3.1 DeepSeek一个特定角色的人设 3.1.1 为DeepSeek设置角色操作案例一 3.1.2 为DeepSeek设置角色操作案例二 3.2 DeepSeek开放人设升级 3.2.1 特殊的人设&#…