深度学习13——MoE模型
1. Dense 模型与 MoE 模型Dense 模型Dense 模型中每个 token 都会经过同一套完整参数。在 Transformer 中一层通常包含Attention → FFN其中 FFN 的参数量和计算量通常占较大比例。无论输入哪个 tokenDense 模型都会激活完整的 FFN。特点所有参数对每个 token 都参与计算训练过程相对稳定实现简单通信开销较低参数量增加时每个 token 的计算量也会同步增加。MoE 模型MoE 全称为Mixture of Experts中文为“混合专家模型”。MoE 的核心目标是在显著增加模型总参数量的同时只让每个 token 激活少量参数从而控制实际计算量。MoE 通常不是替换整个 Transformer而是将普通 FFN 替换成多个专家 FFNAttention → MoE FFN多个专家通常具有相同的网络结构但拥有不同的参数。例如Expert 0一套 FFN 参数 Expert 1一套 FFN 参数 ... Expert 7一套 FFN 参数2. Router 如何选择专家每个 token 不会经过全部专家而是先交给一个 Router也称为 Gate 网络。Router 通常是一个较小的线性层token 隐藏向量 → Router → 每个专家的分数假设有 8 个专家某个 token 的 Router 输出为Expert 00.05 Expert 10.40 Expert 20.02 Expert 30.25 Expert 40.08 Expert 50.04 Expert 60.12 Expert 70.04如果使用 Top-2 路由就选择分数最高的两个专家Expert 1 Expert 3这个 token 只进入这两个专家计算其他六个专家不参与该 token 的前向传播。不同 token 可以选择不同的专家token A → Expert 1、Expert 3 token B → Expert 0、Expert 6 token C → Expert 1、Expert 5因此MoE 是一种稀疏激活模型。3. MoE 的参数量与计算量假设一个 Dense 7B 模型中Attention 等非 FFN 参数约 1.4B FFN 参数约 5.6B 总参数约 7B总参数量总参数量 共享参数 8 个专家参数 1.4B 8 × 5.6B 46.2B现在将 FFN 替换为 8 个专家每个专家都有约 5.6B 参数而 Attention 等参数仍然共享。如果每个 token 只选择两个专家激活参数量 共享参数 2 个专家参数 1.4B 2 × 5.6B 12.6B可以近似理解为总参数量约 46B 每个 token 实际激活约 13B 参数因此 MoE 可以做到模型总容量很大 但单个 token 的计算量明显低于同规模 Dense 模型需要注意激活参数量不完全等于实际 FLOPs但可以用于直观比较计算规模。4. MoE 节省计算但不等于节省全部显存虽然每个 token 只经过少量专家但模型仍然需要保存所有专家的参数。原因是当前 token 可能选择 Expert 1、Expert 3 下一个 token 可能选择 Expert 0、Expert 7因此推理或训练时所有专家参数都必须存在于设备显存、CPU 内存或多卡系统中。可以概括为总参数量约 46.2B 每个 token 激活参数量约 12.6B 参数存储仍需容纳全部 46.2BMoE 主要减少的是每个 token 的 FFN 计算量每一步实际激活的参数数量。它不会自动减少全部模型权重的存储空间优化器状态占用多卡训练时的通信开销。而且在多 GPU 场景中不同专家可能分布在不同 GPU 上token 需要在设备之间发送这种方式称为 Expert Parallelism可能带来较高通信成本。因此MoE 的理论计算量较低但实际训练和推理速度不一定按参数比例直接提升。5. MoE的问题专家坍缩与负载不均衡专家坍缩专家坍缩是指 Router 长期只选择少数几个专家。例如有 8 个专家但大多数 token 都被路由到Expert 1 Expert 3其他专家很少收到 token。这会导致热门专家负载过高冷门专家训练不足多个专家没有形成差异化能力设备负载不均衡部分 token 因容量不足被丢弃或重新路由模型训练不稳定。理想情况下不是要求每个专家使用次数绝对相同而是避免流量过度集中。6. 常见的负载均衡方法辅助负载均衡损失训练时加入额外的辅助损失鼓励 Router 将 token 较均匀地分配给不同专家。总损失可以写成total_loss language_model_loss balance_coefficient × load_balance_loss负载均衡损失通常同时考虑每个专家被实际选择的 token 比例Router 分配给每个专家的平均概率。它不是简单地规定“某专家被选择一次就增加一次惩罚”而是当流量过度集中在少数专家时提高辅助损失。辅助损失权重过小可能无法解决专家坍缩权重过大又可能干扰模型根据 token 内容选择合适专家。专家容量限制每个专家在一个 batch 中能够处理的 token 数量通常有上限。例如每个专家最多接收 100 个 token当某个专家超过容量后额外 token 可能会被丢弃进入第二候选专家被重新分配通过残差路径跳过专家计算。专家容量通常与下面因素有关总 token 数 专家数量 每个 token 选择的专家数量 capacity factor容量限制可以防止单个专家负载过大但容量过小可能导致大量 token 无法进入首选专家。Router 噪声训练时可以在 Router logits 中加入少量噪声router_logits → 加入噪声 → 再选择 Top-k 专家作用是增加早期探索防止 Router 过早固定在少数专家上让不同专家有机会接收到训练样本。这并不是直接强制选择低分专家而是轻微扰动专家排序使分数接近的专家都有机会被选择。推理阶段通常关闭这类随机噪声。Router 正则化与稳定化还可以使用Router logits 正则化限制 Router logits 过大合理初始化 Router调整 Router 学习率对 Router 使用更高精度计算设置共享专家或始终激活的专家。这些方法主要用于避免 Router 过早饱和和训练数值不稳定。7. Dense 与 MoE 对比对比项DenseMoEFFN 数量每层通常一套每层包含多个专家 FFN每个 token 激活范围激活全部 FFN 参数只激活 Top-k 专家总参数量相对较小可以非常大单 token 计算量随总参数量增加低于同总参数量 Dense 模型权重存储保存全部参数仍需保存全部专家参数KV Cache主要由 Attention 决定通常不会因 FFN MoE 直接变化训练稳定性相对稳定Router 和负载均衡更复杂多卡通信相对简单可能产生较大 All-to-All 通信主要问题扩大参数会直接增加计算量专家坍缩、负载不均、通信开销核心区别可以概括为Dense 每个 token 使用同一套完整 FFN。 MoE 模型拥有多套专家 FFN 但每个 token 只选择其中少数几个参与计算。MoE 并不是让模型“用更少参数”而是保存大量参数形成更大的模型容量同时通过稀疏激活控制每个 token 的实际计算量。

相关新闻

XUnity.AutoTranslator终极指南:5步构建高效Unity游戏自动翻译系统

XUnity.AutoTranslator终极指南:5步构建高效Unity游戏自动翻译系统

XUnity.AutoTranslator终极指南:5步构建高效Unity游戏自动翻译系统 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是一个专业的Unity游戏自动翻译插件,通过…

2026/10/1 21:22:13 阅读更多 →
抖音买单服务商:3个关键指标帮你避坑选优

抖音买单服务商:3个关键指标帮你避坑选优

在短视频电商快速发展的当下,越来越多的商家开始寻求专业的抖音买单解决方案。作为电商生态中的重要一环,优质的ISV服务商不仅能为商家提供稳定可靠的技术支持,更能帮助实现营销闭环和交易转化。1. 专业ISV服务商的核心价值优质的抖音买单服务…

2026/10/4 11:59:32 阅读更多 →
IT66630 芯片技术全解析:HDMI2.0一分二有源分配器底层原理科普

IT66630 芯片技术全解析:HDMI2.0一分二有源分配器底层原理科普

摘要依托 ITE 官方规格文件,对 HDMI2.0 一分二有源分配芯片 IT66630 开展中立技术科普。文章讲解芯片协议兼容性、4K60 音视频处理能力、内部硬件模块、电源时序、电气与功耗指标,梳理硬件开发关键设计要点,纯技术原理分享,不含推…

2026/10/8 3:45:25 阅读更多 →

最新新闻

Loop:macOS 窗口管理工具功能全解

Loop:macOS 窗口管理工具功能全解

Loop:macOS 窗口管理工具功能全解 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 屏幕里同时堆着编辑器、终端和浏览器,想把其中一个窗口拖进左半屏,还得对准缝隙&am…

2026/10/14 8:15:52 阅读更多 →
二分查找在魔法染色问题中的应用与实现

二分查找在魔法染色问题中的应用与实现

1. 项目背景与核心思路"小苯的魔法染色"这个题目一看就是典型的二分查找算法应用场景。作为一名经常刷题的算法爱好者,我第一眼就被这个充满想象力的题目吸引了。题目中的"魔法染色"暗示着某种具有特殊性质的染色问题,而前缀"二…

2026/10/14 8:15:52 阅读更多 →
1秒初筛8份漏洞报告:Jev批量引擎与代码智能体判断力沉淀

1秒初筛8份漏洞报告:Jev批量引擎与代码智能体判断力沉淀

1. 从一份漏洞报告说起:为什么“初筛”才是安全流程里最要命的一环做安全运营的人都有一个共同的痛:漏洞报告不是太少,而是太多。多到什么程度?一个中等规模的产品线,每周从扫描器、外部提交、内部巡检、第三方组件通告…

2026/10/14 8:15:52 阅读更多 →
超帧结构解析:多传感器融合SLAM与实时稠密重建的关键架构

超帧结构解析:多传感器融合SLAM与实时稠密重建的关键架构

直接聊结论:如果你在 2020 年之后关注过实时稠密重建、视觉惯性导航或者多传感器融合 SLAM,hyperframes这个结构几乎绕不开。我在实际项目里用它做过室内全场景扫描,也把它拆开改过、对比过别的方案,可以说这是一个“概念极其简单…

2026/10/14 8:15:52 阅读更多 →
感觉流编程复刻专业软件:AI生成代码的工程实践与边界

感觉流编程复刻专业软件:AI生成代码的工程实践与边界

1. 当“感觉流”编程撞上专业软件:一场关于复刻的认知重构最近圈子里聊得最多的一件事,就是有人用“感觉流编程”的方式,把那些我们以为只有大厂才能做出来的专业软件,硬生生给复刻了出来。所谓感觉流编程,说白了就是不…

2026/10/14 8:15:52 阅读更多 →
Cangjie std.collection 集合库全解析:数据结构、迭代器函数与实战示例

Cangjie std.collection 集合库全解析:数据结构、迭代器函数与实战示例

人工智能AI 技能文档开发工具 【免费下载链接】DocAgent 项目地址: https://gitcode.com/Cangjie-SIG/DocAgent 点击查看 免费下载 std.collection 是 Cangjie 标准库中提供常见数据结构高效实现、抽象接口定义以及集合操作通用函数的包。它覆盖了列表、双端队列、…

2026/10/14 8:14:51 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →