拆解MindSpeed LLM:4层架构与核心模块,看懂昇腾大模型训练框架的设计
【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM
MindSpeed LLM 是面向昇腾生态的LLM 分布式训练框架,为昇腾硬件上的大语言模型训练提供端到端方案,涵盖分布式预训练、指令微调以及权重转换、推理、评估等完整工具链。这篇文章将带你逐层拆解它的4 层架构与核心代码模块,帮助新手快速看懂这个昇腾大模型训练框架的设计思路。
如上图所示,整个框架自上而下分为LLM 大模型层 → 训练算法层 → 训练后端层 → 功能模块层四个层次,底部再叠加 PyTorch、CANN 与昇腾系列硬件的基础底座。官方对架构的详细描述可参考 docs/zh/introduction.md。
第1层:模型层,内置 100+ 主流开源大模型
最上层是框架支持的LLM 大模型,按架构类型分为两大族:
- Transformer 族:包含 Dense 模型(Qwen3 系列等)与 MoE 模型(DeepSeek、Qwen3、GLM 系列等)
- Transformer-Next 族:包含 SSM 模型(Mamba2 等)与 Linear 模型(Qwen3-Next、Bailing 系列等)
框架预置了100 余个主流开源模型的高性能训练脚本,开箱即用。支持的完整模型清单见 docs/zh/pytorch/models/supported_models.md,各模型的训练脚本则集中在 examples/ 目录中,按mcore/(Megatron 后端)与fsdp2/(FSDP2 后端)分类组织。
第2层:训练算法层,预训练与指令微调双通路
这一层定义了框架支持的两大训练场景:
| 场景 | 覆盖能力 |
|---|---|
| 分布式预训练 | 数据处理、From Scratch 从头训练、断点继续训练 |
| 分布式指令微调 | 微调数据处理、全参微调 SFT、低参微调 LoRA、量化微调 QLoRA |
微调链路遵循业界主流流程——数据格式化、模板套入、训练循环,整体流程如下图所示:
在并行策略上,框架提供 TP(张量并行)、PP(流水线并行)、DP(数据并行)、CP(上下文并行)、EP(专家并行)等多维并行组合,并创新支持逐层分离训练(LDT)等昇腾大模型训练优化方案:
对应入口脚本包括 pretrain_gpt.py(预训练)、posttrain_gpt.py(后训练/微调)与 rlhf_gpt.py(RLHF 训练)。
第3层:训练后端层,Megatron 与 FSDP 双引擎
这是框架设计中最关键的一层——双训练后端,让不同开发习惯的团队都能以最低成本接入新模型:
- Megatron 训练后端(开启 MindSpeed Core 加速):以 Megatron-LM 为基座,基于 ModelSpec 模板做模型增量开发,支持 TP/PP/VP/EP/CP/DP 全并行策略,适合追求极致性能的大规模预训练;
- FSDP 训练后端(开启 FSDP Turbo 加速):以 MindSpeed-FSDP 为基座,直接接入 HuggingFace Transformers 模型定义,支持 FSDP+EP / FSDP+CP 组合,新模型以天为单位即可适配,适合快速实验与中小规模训练。
FSDP2 后端的训练入口为 train_fsdp2.py,两套后端的使用差异与选型建议可在 项目导读 的模型运行样例中找到。
第4层:功能模块层,覆盖训练全流程的工具链
最底层的功能模块分为两类,把训练之外的"脏活累活"全部封装好:
- 训练开发模块:权重转换(Megatron ↔ HuggingFace)、在线推理、在线评估
- 易用性模块:训练 Profiling 性能分析、确定性计算、断点续训、最终权重保存
以 Profiling 为例,框架可直接采集昇腾硬件上的时间线、显存与算子级别数据,用于定位训练性能瓶颈:
对应根目录工具脚本:convert_ckpt.py(权重转换)、inference.py(模型推理)、evaluation.py(模型评估)、preprocess_data.py(数据预处理)。
核心代码模块:mindspeed_llm 的 5 大子模块
看懂宏观架构后,再看代码。核心代码全部位于 mindspeed_llm/ 目录,由 5 个子模块协同工作,协作关系为core/→features_manager/→training/→tasks/,fsdp2/作为独立后端平行存在:
| 子模块 | 职责 | 代表内容 |
|---|---|---|
| core/ | 底层核心能力 | 张量/流水线/上下文并行、Transformer 与 MoE 实现、优化器、高可用断点续训 |
| features_manager/ | 特性注册与管理 | 通过补丁机制按需注入 Flash Attention、LoRA、MoE 路由、量化感知训练等特性 |
| training/ | 训练生命周期管理 | 参数解析、分布式初始化、检查点管理与训练主循环 |
| tasks/ | 业务执行层 | 评估、推理、微调、权重转换等具体任务实现 |
| fsdp2/ | FSDP2 独立后端 | 完整的模型定义、数据管道、分布式策略与推理引擎 |
其中features_manager/的特性补丁机制值得特别一提:各项训练特性(如 moe_router.py、lora.py)以插件形式注入训练流程,可自由组合开关,这正是框架能同时支撑上百个模型的工程基础。更细粒度的说明见 项目导读。
总结:如何快速上手昇腾大模型训练框架
回顾 MindSpeed LLM 的设计脉络:
- 模型层解决"支持哪些模型"——100+ 开源 LLM 开箱即用
- 训练算法层解决"怎么训"——预训练 + 指令微调,多维并行策略加持
- 训练后端层解决"用什么训"——Megatron 高性能后端 + FSDP 快适配后端双引擎
- 功能模块层解决"配套工具"——权重转换、推理、评估、Profiling 一应俱全
对新手而言,建议的上手路径是:先读 项目导读 建立全局认知,再选择 examples/ 中一个与自身模型相近的示例脚本(如 pretrain_qwen3_8b_4k_fsdp2_A3.sh),配合 docs/zh/pytorch/training/ 下的快速入门文档跑通第一个训练任务,即可完整体验这套昇腾 LLM 分布式训练框架的能力。
【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考