diff --git a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE Baseline入门:快速跑通最小闭环教程.md b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE Baseline入门:快速跑通最小闭环教程.md index a26e6bd..1541e65 100644 --- a/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE Baseline入门:快速跑通最小闭环教程.md +++ b/基于AI Agent开发范式的国产GPU大模型推理算子库优化/Fused MoE Baseline入门:快速跑通最小闭环教程.md @@ -57,30 +57,7 @@ **环境准备:** -* 已进入赛事专属镜像环境: - - 1. 获取算力券:[https://developer.metax-tech.com/activities/6](https://developer.metax-tech.com/activities/6) - - 2. 兑换算力和登录平台:[https://ai.gitee.com/](https://ai.gitee.com/) - - 进入 【费用中心】— 【算力券】,点击右上角 【兑换】。 - - ![image.png](https://origin.picgo.net/2026/06/04/image104df0b48e859950a.png) - - 3. 租用算力:点击顶部导航栏【算力市场】,选择【沐曦】,租用算力,建议优先选16G /32G 显存,如下图: - - ![image.png](https://origin.picgo.net/2026/06/04/image2e973eb9c33b02661.png) - - 4. 创建实例:如图安装专属镜像 - - ![image.png](https://origin.picgo.net/2026/06/04/image37ae95373fa3e2cc5.png) - - 5. 项目创作:进入我的算力容器,刚创建的实例默认开机状态,点击工具-lab开始项目创作,不用时记得关机! - - -![image.png](https://origin.picgo.net/2026/06/04/image4db7649869ff4db84.png) - -小提示:也可以用本地 AI coding 工具 ssh 连接云服务器(能实现和AI对话即可) +* 已进入赛事专属镜像环境。 **工具准备:** @@ -94,45 +71,10 @@ **代码准备:** * 已获取 Fused MoE Baseline 源码。 - -## 五、知识预备 +## 五、项目实践1-算力平台 baseline 源码部署 -### 混合专家模型 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://origin.picgo.net/2026/06/04/image552fe46f30dca5fb8.png) - -MoE 的主要优势体现在预训练和训练阶段的算力效率上,但在推理阶段带来了新的**挑战**: - -* **显存占用高:**尽管每个 Token 只激活部分专家,但所有专家的参数仍需常驻显存。例如 Mixtral 8×7B 的实际参数量接近 47B,而非 8×7B 的简单叠加,因为除 FFN 外的大多数参数在各专家间是共享的。 - -* **计算不均衡:**不同专家接收的 Token 数量可能不同,导致计算负载不均,容易形成局部瓶颈。 - -* **访存压力大:**专家权重、Token 路由、Permute / Unpermute 都会带来额外的显存读写,而不仅仅是计算量的减少。 - - -因此,在推理阶段对 MoE 算子进行系统级优化​具有非常重要的意义,在不改变模型行为和数值精度的前提下,通过更合理的调度、融合与访存优化,缓解稀疏性带来的碎片化和内存压力。 - -### INT8 模型量化: - -参考链接:[https://www.cnblogs.com/chentiao/p/18315901](https://www.cnblogs.com/chentiao/p/18315901) - -INT8 量化是一种用于减少模型大小和计算复杂度的方法,特别是在深度学习模型中。它通过将浮点数(通常是 FP32)转换为 8 位整数 (INT 8),从而减少内存使用和提高计算效率。 - -## 六、项目实践1-算力平台 baseline 源码部署 - -**项目目标:**在算力平台上拉取 fused\_moe 的 baseline 源码,快速跑通最小闭环,完成 pybind 接口对接、正确性验证和 benchmark 测试,并记录一份 baseline 性能结果,为后续算子优化提供对比基准。 +**项目目标:**在算力平台上拉取 Fused MoE 的 baseline 源码,快速跑通最小闭环,并记录一份 baseline 性能结果,为后续算子优化提供对比基准。 ### 步骤 1:检查运行环境 @@ -346,7 +288,7 @@ PYTHON_BIN=/path/to/python bash scripts/build_fused_moe_i8_tn_pybind.sh * “fused\_moe\_i8\_tn\_topk1/2/3”:分别对应选择前 1 / 2 / 3 个专家场景下的 MoE 算子; - * “avg\_ms”:平均算子执行耗时(毫秒),这里不计算预热时间,只计算正式迭代的时间; + * “avg\_ms”:平均算子执行耗时(毫秒),这里不计算预热时间,只计算正式迭代的时间��� * “TOPS”:Tera Operations Per Second,本次 MoE 算子的总运算量 / 实际耗时; @@ -361,11 +303,11 @@ PYTHON_BIN=/path/to/python bash scripts/build_fused_moe_i8_tn_pybind.sh | 终端长时间无输出 | Kernel 死锁或 MACA 驱动异常 | 减小测试 shape;重启容器或设备 | | avg\_ms 异常抖动(±50%) | 其他进程占用 GPU | 关闭其他占用显存的进程,单机单任务运行 | -## 七、项目实践2-Kernel Swift 智能算子迁移系统自动调优 +## 六、项目实践2-Kernel Swift 智能算子迁移系统自动调优 系统链接:[https://deeplink.org.cn/kernelswift/task](https://deeplink.org.cn/kernelswift/task) -**项目目标:**基于 KernelSwift 智能算子迁移系统,对 fused\_moe 算子进行在线自动调优。通过输入标准 PyTorch 代码,一键生成适配沐曦硬件的高性能实现;并利用算子广场复用与可视化管理功能,高效完成算子优化与全流程追踪。 +**项目目标:**基于 KernelSwift 智能算子迁移系统,对 Fused MoE 算子进行在线自动调优。通过输入算子代码,一键生成适配沐曦硬件的高性能实现,高效完成算子优化与全流程追踪。 ### 步骤1:复用算子广场的 fused\_moe 算子进行二次优化 @@ -535,7 +477,7 @@ PYTHON_BIN=/path/to/python bash scripts/build_fused_moe_i8_tn_pybind.sh --- -## 八、Agent使用说明 +## 七、Agent使用说明 在本模块中,Agent可以帮助你完成以下任务: @@ -603,7 +545,7 @@ PYTHON_BIN=/path/to/python bash scripts/build_fused_moe_i8_tn_pybind.sh 请帮我在算子广场检索 fused_moe 算子 ``` -## 九、常见问题与注意事项 +## 八、常见问题与注意事项 ### 算力平台 basline 源码部署项目: