MCTLASS / Fused MoE 算子优化部分参考知识补充

This commit is contained in:
wu_xy 2026-06-05 14:30:06 +08:00
parent 40845dfd38
commit 386069526a
1 changed files with 33 additions and 1 deletions

View File

@ -28,6 +28,38 @@
聚焦 MoE 模型中的稀疏专家计算,优化 Fused MoE 算子的执行效率。
参考知识:待更新
参考知识:
**1、混合专家模型 MoE**
参考链接:[https://huggingface.co/blog/zh/moe](https://huggingface.co/blog/zh/moe)
混合专家模型Mixed Expert Models简称 MoE是一种稀疏激活的模型结构。与稠密模型不同MoE 在前向计算时只激活部分参数从而在相近的计算预算下获得更大的模型容量和更快的收敛速度。这也是当前大模型扩展参数规模的主流路径之一。
MoE 是一种基于 Transformer 架构的模型由两个关键部分组成
* **稀疏 MoE 层**这些层代替了传统 Transformer 模型中的前馈网络 (FFN) 层。MoE 层包含若干“专家”(例如 8 个),每个专家本身是一个独立的神经网络。在实际应用中,这些专家通常是前馈网络 (FFN)但它们也可以是更复杂的网络结构甚至可以是 MoE 层本身从而形成层级式的 MoE 结构。
* **门控网络或路由**:这个部分用于决定哪些令牌 (token) 被发送到哪个专家。例如在下图中“More”这个令牌可能被发送到第二个专家而“Parameters”这个令牌被发送到第一个专家。有时一个令牌甚至可以被发送到多个专家。令牌的路由方式是 MoE 使用中的一个关键点因为路由器由学习的参数组成并且与网络的其他部分一同进行预训练。
![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/r4mlQ5b7084Ndlxo/img/fe41ddaa-b2b2-4b30-bcdb-452c3ecfb138.png)
MoE 的主要优势体现在预训练和训练阶段的算力效率上但在推理阶段带来了新的**挑战**
* **显存占用高**尽管每个 Token 只激活部分专家但所有专家的参数仍需常驻显存。例如 Mixtral 8×7B 的实际参数量接近 47B而非 8×7B 的简单叠加因为除 FFN 外的大多数参数在各专家间是共享的。
* **计算不均衡**不同专家接收的 Token 数量可能不同导致计算负载不均容易形成局部瓶颈。
* **访存压力大**专家权重、Token 路由、Permute / Unpermute 都会带来额外的显存读写而不仅仅是计算量的减少。
因此在推理阶段对 MoE 算子进行系统级优化具有非常重要的意义在不改变模型行为和数值精度的前提下通过更合理的调度、融合与访存优化缓解稀疏性带来的碎片化和内存压力。
**2、INT8 模型量化**
参考链接:[https://www.cnblogs.com/chentiao/p/18315901](https://www.cnblogs.com/chentiao/p/18315901)
INT8 量化是一种用于减少模型大小和计算复杂度的方法特别是在深度学习模型中。它通过将浮点数通常是 FP32转换为 8 位整数 (INT 8),从而减少内存使用和提高计算效率。
教程链接:<a href="https://gitlink.org.cn/metax-maca/op_optimization/tree/master/%E5%9F%BA%E4%BA%8EAI%20Agent%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E5%9B%BD%E4%BA%A7GPU%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E7%AE%97%E5%AD%90%E5%BA%93%E4%BC%98%E5%8C%96/Fused%20MoE%20Baseline%E5%85%A5%E9%97%A8%EF%BC%9A%E5%BF%AB%E9%80%9F%E8%B7%91%E9%80%9A%E6%9C%80%E5%B0%8F%E9%97%AD%E7%8E%AF%E6%95%99%E7%A8%8B.md">Fused MoE Baseline 入门:快速跑通最小闭环教程</a>