ToB企服应用市场:ToB评测及商务社交产业平台
标题:
DeepSeek-V3 的核心架构: DeepSeekMoE
[打印本页]
作者:
我可以不吃啊
时间:
前天 06:08
标题:
DeepSeek-V3 的核心架构: DeepSeekMoE
一. 弁言
对于最近大火的 DeepSeek,我只能说天时地利人和,在 2024 年初,在工作的时候接触过 DeepSeek LLM,有发展潜力,但在代码和数学范畴,还是 GPT, Kimi,智谱清言等大模子性能更好,社会上也都押宝在大厂大投资累计起来的模子上,不成想 2025 年让 DeepSeek 这匹黑马闯了出来。(以我自己的立场来看,DeepSeek 影响这么大是由于突破了某些骗人的虚假泡泡,纯个人观点)
最近大火的是 DeepSeek 发布的两个参数为 660B 的 DeepSeek-R1-Zero 和 DeepSeek-R1,其中 R1 在几天前也开源了。
R1-Zero 基于 DeepSeek-V3-Base,纯粹通过 RL(强化学习)练习,无 STF(监督微调)。
R1 则基于 R1-Zero,先使用少量人工标注的高质量数据举行冷启动微调,然后再举行 RL。
(DeepSeek-R1 蒸馏出六个小模子,参数从小到大分别为 1.5B、7B、8B、14B、32B 以及 70B,这六个模子完全开源。感兴趣的可以点击地址下载模子玩一玩: https://huggingface.co/deepseek-ai?continueFlag=f18057c998f54575cb0608a591c993fb)
本日简朴先容一下 DeepSeek-V3 的核心架构: DeepSeekMoE,那么必要先理解一下混合专家模子 MoE(Mixture of Experts)。
二. 混合专家模子(Mixture of Experts, MoE)
在深度学习里,想让模子变得更强,往往就得让它变得更大、更复杂。但这样一来,盘算资源的需求就会蹭蹭往上涨。混合专家模子(MoE)通过引入希奇盘算,以及根据任务动态分配资源的机制,高效的解决了在有限的盘算资源下最大化模子性能这一问题。
混合专家模子(MoE)是一种基于 Transformer 架构的模子,重要由
希奇MoE层
和
门控网络
/路由机制(Router)
两个核心组件构成。
图1
1. 希奇 MoE 层
替换传统 FFN :
在 Transformer 架构中,希奇 MoE 层通常用于替换尺度的前馈神经网络(FFN)层。传统 FFN 必要处理所有输入类型,而 MoE 通太过工协作的专家网络实现更高效的盘算。
专家网络布局:
每个专家(Expert)是一个独立的子网络,通常为轻量级 FFN(参数更少),专注于特定输入特性或任务。图1中表现两组专家体系,每组4个FFN专家(FFN 1-4)。
专家可以是分层或嵌套布局(如多层 MoE),相互独立,可以并行盘算,进一步加强表达本领。
2. 门控网络/
路由机制(Router)
路由策略(Router):
输入隐藏状态通过路由模块(如线性层或留意力机制)生成专家权重(图1中的 p 值),选择当前输入最相关的少数专家。
例如: 对输入 h_t,路由输出权重向量,仅激活权重最高的专家。
动态盘算:
每次前向流传仅激活部分专家(如1-4个),其余专家处于"关闭"状态,大幅低落盘算量。
这种希奇性使得模子参数规模能够扩展至万亿级别,而实际盘算量仅呈线性增长。
最终输出 = 选中的 FFN 专家的输出 × 门控值(图1中虚线表现的值)
3. MoE层完整工作流程:
Input Token → Router评估 → 专家选择 → 专家处理 → 门控加权 → Output
举个例子,假设有一个 MoE 模子,用于文本分类,模子中有三个专家:
专家1: 善于处理科技类文本
专家2: 善于处理体育类文本
专家3: 善于处理娱乐类文本
输入文本:"苹果公司发布了最新的iPhone 15"
分词结果:["苹果公司", "发布", "最新", "的", "iPhone", "15"]
Token向量:[T1, T2, T3, T4, T5, T6] # 每个Ti是d维向量
# 拿两个 token 举例,其他 token 同理(假设都路由到专家权重最高的专家i中)
For token "苹果公司" (T1):
专家1: 0.8
专家2: 0.1
专家3: 0.1 → 选择Top-1专家(专家1)
For token "iPhone" (T5):
专家1: 0.9
专家2: 0.05
专家3: 0.05 → 选择Top-1专家(专家1)
# 专家处理
专家1处理T1 → E1(T1) = [0.9, 0.2, ...] # 输出d维向量
专家2处理T2 → E1(T2) = [0.3, 0.8, ...]
...
专家1处理T5 → E1(T5) = [0.95, 0.1, ...]
# 门控机制,对每个 token 举行加权组合
最终表现 = ∑(门控权重 * 专家输出)
所有token处理后得到:
[0.8*E1(T1), 0.7*E1(T2), 0.6*E1(T3), 0.5*E1(T4), 0.9*E1(T5), 0.8*E1(T6)]
# 通过 Transformer 层整合上下文
上下文表现 = Transformer(MoE_output)
# 池化得到句子表现
句子向量 = MeanPooling(上下文表现)
# 最终分类
分类得分 = LinearLayer(句子向量) → [科技类: 0.92, 体育类: 0.05, 娱乐类: 0.03]
三. DeepSeek-V3 的核心架构: DeepSeekMoE
DeepSeekMoE 不仅继续了 MoE 架构的诸多优势,更在多个关键环节举行了巧妙的改进,实现了服从与性能的完善平衡,为大规模模子的高效练习与推理开辟了新的门路。
1. DeepSeekMoE 的根本架构:在 Transformer 和 MoE 机制上的创新升级
细粒度专家划分:
每个 MoE 层包含 1 个共享专家和 256 个路由专家,每个 token 激活 8 个路由专家。这种设计让共享专家处理通用特性,路由专家处理具体任务,提升了模子机动性和服从。
希奇激活机制:
每个 token 只激活少数专家,低落了盘算开销,同时让模子能机动处理差别类型输入,尤其得当必要高度专业化知识的场景。
2. 动态负载均衡
传统 MoE 中,负载(某些专家大概会由于处理过多的 token 而负载过高)不均衡会导致资源浪费甚至路由瓦解。DeepSeekMoE 的解决方案如下:
动态偏置调解:
在练习中,体系监控专家负载,自动调解偏置项:负载高的专家低落偏置,负载低的专家增长偏置,从而实现自然负载均衡。
无辅助损失优势:
不引入额外损失函数,避免对模子性能的负面影响,同时有效防止路由瓦解。
3. 序列级负载均衡
传统 MoE 关注全局(数据集级)和局部(Batch 级)负载均衡,而 DeepSeekMoE 首创序列级均衡。
序列级平衡损失:
在练习中,体系监控专家负载,自动调解偏置项: 负载高的专家低落偏置,负载低的专家增长偏置,从而实现自然负载均衡。
极小化平衡因子:
不引入额外损失函数,避免对模子性能的负面影响,同时有效防止路由瓦解。
4. 节点级负载均衡
限定路由节点:
每个 token 最多发送到 4 个节点,节点亲和度通过专家节点的汗青协作服从动态盘算,选择亲和度高的节点,优先选择通讯耽误低、缓存命中率高的节点,减少跨节点通讯的开销。
5. 推理保障机制
传统 MoE 推理中,负载不均衡大概导致 token 被扬弃。DeepSeekMoE 的解决方法如下:
冗余专家摆设:
在推理阶段,高负载专家冗余摆设在差别 GPU 上,平衡 GPU 负载。
动态负载迁移:
动态选择激活专家,进一步优化推理服从,确保推理过程完整。
四. 总结
实践结果:在671B总参数目下实现单 token 仅激活3.7%参数,推理速度提升2.1倍,练习资本低落67%。
以上纯个人总结及观点, 如有错误, 还请大佬们指教
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4