Signed-off-by: ascend-ci-bot <2476391793@qq.com>
通知: 本项目已经正式迁移至 Gitcode 平台
MindSpeed LLM是基于昇腾生态的大语言模型分布式训练框架,旨在为华为 昇腾芯片 生态合作伙伴提供端到端的大语言模型训练方案,包含分布式预训练、分布式指令微调以及对应的开发工具链,如:数据预处理、权重转换、在线推理、基线评估。
注 : 原仓名ModelLink更改为MindSpeed LLM,原包名modellink更改为mindspeed_llm
通知: 本项目已经正式迁移至 Gitcode 平台
NEWS !!! 📣📣📣
🚀🚀🚀DeepSeek-V3预训练已支持基于 MindSpore AI框架 运行!!!🚀🚀🚀
🚀🚀🚀glm4.5-moe 系列模型同步首发支持!!!🚀🚀🚀
🚀🚀🚀Qwen3 系列模型同步首发支持!!!🚀🚀🚀
🚀🚀🚀DeepSeek-R1 系列功能逐步上线!!🚀🚀🚀
😊 DeepSeek-R1-ZERO Qwen-7B DeepSeek-R1-ZERO Qwen-32B
🚀🚀🚀 DeepSeek-V3-671B模型全家桶 已上线!!!🚀🚀🚀
😊支持数据集处理、权重转换、预训练、全参微调、lora微调、qlora微调
🚀🚀🚀DeepSeek-R1-Distill 系列模型已上线!!🚀🚀🚀
😊 DeepSeek-R1-Distill-Qwen DeepSeek-R1-Distill-LLaMA
注:
当前qwen3系列模型功能已逐步完善,移步examples/mcore使用更完整功能;
glm4.5-moe系列模型功能完善、验证中,非商用版本,移步examples/mcore使用更完整功能。
版本配套表
MindSpeed LLM的依赖配套如下表,安装步骤参考安装指导。
| 依赖软件 | 版本 |
|---|---|
| 昇腾NPU驱动 | Ascend HDK 25.2.0 |
| 昇腾NPU固件 | |
| Toolkit(开发套件) | CANN 8.2.RC1 |
| Kernel(算子包) | |
| NNAL(Ascend Transformer Boost加速库) | |
| Python | PT配套版本 |
| PyTorch | 2.1,2.6 |
| torch_npu插件 | 7.1.0 |
| apex |
预置模型
MindSpeed LLM目前已内置支持百余个业界常用LLM大模型的预训练与微调,预置模型清单详见下表。
| 模型类别 | 模型列表 |
|---|---|
| 稠密模型 | Dense |
| MOE模型 | MOE |
| SSM模型 | SSM |
训练方案与特性
MindSpeed LLM包含分布式预训练、分布式微调等训练方案。
分布式预训练
基于MindSpeed LLM的实测预训练性能如下:
| 模型系列 | 实验模型 | 硬件信息 | 集群规模 | MFU |
|---|---|---|---|---|
| LLAMA2 | LLAMA2-7B | Atlas 900 A2 PODc | 1x8 | 69.0% |
| LLAMA2-13B | Atlas 900 A2 PODc | 1x8 | 64.7% | |
| LLAMA2-70B | Atlas 900 A2 PODc | 4x8 | 44.1% | |
| Mixtral | Mixtral-8x7B | Atlas 900 A2 PODc | 8x8 | 31.7% |
预训练方案
| 方案类别 | Mcore | Released | 贡献方 |
|---|---|---|---|
| 多样本集预训练 | ✅ | ✅ | 【Ascend】 |
| 多样本pack模式预训练 | ✅ | ❌ |
加速特性
| 场景 | 特性名称 | Mcore | Released | 贡献方 |
|---|---|---|---|---|
| SPTD并行 | 张量并行 | ✅ | ✅ | 【Ascend】 |
| 流水线并行 | ✅ | ✅ | ||
| 虚拟流水并行 | ✅ | ✅ | ||
| 序列并行 | ✅ | ✅ | ||
| noop layers | ✅ | ✅ | ||
| 长序列并行 | Ascend Ring Attention 长序列并行 | ✅ | ✅ | |
| Ulysses 长序列并行 | ✅ | ✅ | ||
| 混合长序列并行 | ✅ | ✅ | ||
| MOE | MOE 专家并行 | ✅ | ✅ | |
| MOE 重排通信优化 | ✅ | ✅ | ||
| 显存优化 | 参数副本复用 | ✅ | ✅ | |
| 分布式优化器 | ✅ | ✅ | ||
| Swap Attention | ✅ | ✅ | ||
| 重计算 | ✅ | ✅ | ||
| Norm重计算 | ✅ | ✅ | ||
| O2 BF16 Optimizer | ✅ | ❌ | ||
| 融合算子 | Flash attention | ✅ | ✅ | |
| Flash attention variable length | ✅ | ✅ | ||
| Fused rmsnorm | ✅ | ✅ | ||
| Fused swiglu | ✅ | ✅ | ||
| Fused rotary position embedding | ✅ | ✅ | ||
| GMM | ✅ | ✅ | ||
| Matmul Add | ✅ | ✅ | ||
| 通信优化 | 梯度reduce通算掩盖 | ✅ | ✅ | |
| Recompute in advance | ✅ | ✅ | ||
| 权重all-gather通算掩盖 | ✅ | ✅ | ||
| MC2 | ✅ | ❌ | ||
| CoC | ✅ | ❌ | ||
| Ascend Gloo 存档落盘优化 | ✅ | ❌ |
分布式微调
基于MindSpeed LLM的实测指令微调性能如下:
| 模型 | 硬件 | 集群 | 方案 | 序列 | 性能 | MFU |
|---|---|---|---|---|---|---|
| llama2-7B | Atlas 900 A2 PODc | 1x8 | 全参 | dynamic | 15.87 samples/s | - |
| 全参 | 16K | 1.14 samples/s | 37.4% | |||
| 全参 | 32K | 0.51 samples/s | 48.4% | |||
| llama2-13B | Atlas 900 A2 PODc | 1x8 | 全参 | dynamic | 50.4 samples/s | - |
| llama2-70B | Atlas 900 A2 PODc | 1x8 | LoRA | dynamic | 15.2 samples/s | - |
微调方案
| 方案名称 | Mcore | LoRA | QLoRA | Released | 贡献方 |
|---|---|---|---|---|---|
| 单样本微调 | ✅ | ✅ | ✅ | ✅ | 【Ascend】 |
| 多样本pack微调 | ✅ | ✅ | ❌ | ❌ | 【NAIE】 |
| 多轮对话微调 | ✅ | ✅ | ❌ | ❌ | 【Ascend】 |
加速特性
| 场景 | 特性 | Mcore | Released | 贡献方 |
|---|---|---|---|---|
| LoRA微调 | CCLoRA | ✅ | ✅ | 【Ascend】 |
| Fused_MLP | ✅ | ✅ | 【Ascend】 | |
| QLoRA微调 | CCLoRA | ❌ | ❌ | 【NAIE】 |
| Fused_MLP | ❌ | ❌ | 【NAIE】 | |
| 长序列微调 | 长序列CP | ✅ | ❌ | 【Ascend】 |
在线推理
| 特性 | Mcore | Released | 贡献方 |
|---|---|---|---|
| 流式推理 | ✅ | ✅ | 【NAIE】 |
| Chat对话 | ✅ | ✅ | 【NAIE】 |
| yarn上下文扩展 | ✅ | ❌ | 【Ascend】 |
开源数据集评测
仓库模型基线见开源数据集评测基线
| 场景 | 数据集 | Mcore | Released | 贡献方 |
|---|---|---|---|---|
| 评测 | MMLU | ✅ | ❌ | 【NAIE】 |
| CEval | ✅ | ❌ | 【NAIE】 | |
| BoolQ | ✅ | ❌ | 【NAIE】 | |
| BBH | ✅ | ❌ | 【NAIE】 | |
| AGIEval | ✅ | ❌ | 【NAIE】 | |
| HumanEval | ✅ | ❌ | 【NAIE】 |
开发工具链
权重转换
MindSpeed LLM支持huggingface、megatron-core两种格式的权重互转,支持Lora权重合并。权重转换特性参数和使用说明参考权重转换。
| 源格式 | 目标格式 | 切分特性 | lora | 贡献方 | Released |
|---|---|---|---|---|---|
| huggingface | megatron-core | tp、pp、dpp、vpp、cp、ep、loop layer | ❌ | 【Ascend】 | ❌ |
| megatron-core | huggingface | ✅ | |||
| megatron-core | tp、pp、dpp、vpp、cp、ep、loop layer | ✅ |
数据预处理
MindSpeed LLM支持预训练、指令微调等多种任务的数据预处理。
| 任务场景 | 数据集 | Mcore | Released | 贡献方 |
|---|---|---|---|---|
| 预训练 | 预训练数据处理 | ✅ | ✅ | 【Ascend】 |
| 微调 | Alpaca风格 | ✅ | ✅ | |
| ShareGPT风格 | ✅ | ✅ |
性能采集
| 场景 | 特性 | Mcore | Released | 贡献方 |
|---|---|---|---|---|
| 性能采集 | 基于昇腾芯片采集 profiling 数据 | ✅ | ❌ | 【Ascend】 |
高可用性
| 场景 | 特性 | Mcore | Released | 贡献方 |
|---|---|---|---|---|
| 高可用性 | 基于昇腾芯片开启确定性计算 | ✅ | ❌ | 【Ascend】 |
版本维护策略
MindSpeed LLM版本有以下五个维护阶段:
| 状态 | 时间 | 说明 |
|---|---|---|
| 计划 | 1—3 个月 | 计划特性 |
| 开发 | 3 个月 | 开发特性 |
| 维护 | 6-12 个月 | 合入所有已解决的问题并发布版本,针对不同的MindSpeed LLM版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 |
| 无维护 | 0—3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 |
| 生命周期终止(EOL) | N/A | 分支不再接受任何修改 |
MindSpeed LLM已发布版本维护策略:
| MindSpeed LLM版本 | 对应标签 | 维护策略 | 当前状态 | 发布时间 | 后续状态 | EOL日期 |
|---|---|---|---|---|---|---|
| 2.1.0 | v2.1.0 | 常规版本 | 维护 | 2025/6/30 | 预计2025/12/30起无维护 | |
| 2.0.0 | v2.0.0 | 常规版本 | 维护 | 2025/3/30 | 预计2025/09/30起无维护 | |
| 1.0.0 | v1.0.0 | 常规版本 | EOL | 2024/12/30 | 生命周期终止 | 2025/6/30 |
| 1.0.RC3 | v1.0.RC3.0 | 常规版本 | EOL | 2024/09/30 | 生命周期终止 | 2025/3/30 |
| 1.0.RC2 | v1.0.RC2.0 | 常规版本 | EOL | 2024/06/30 | 生命周期终止 | 2024/12/30 |
| 1.0.RC1 | v1.0.RC1.0 | 常规版本 | EOL | 2024/03/30 | 生命周期终止 | 2024/9/30 |
| bk_origin_23 | \ | Demo | EOL | 2023 | 生命周期终止 | 2024/6/30 |
致谢
MindSpeed LLM由华为公司的下列部门以及昇腾生态合作伙伴联合贡献 :
华为公司:
- 计算产品线:Ascend
- 公共开发部:NAIE
- 全球技术服务部:GTS
- 华为云计算:Cloud
生态合作伙伴:
- 移动云(China Mobile Cloud):大云震泽智算平台
感谢来自社区的每一个PR,欢迎贡献 MindSpeed LLM。
安全声明
免责声明
致MindSpeed LLM使用者
- MindSpeed LLM提供的模型仅供您用于非商业目的。
- MindSpeed LLM功能依赖的Megatron等第三方开源软件,均由第三方社区提供和维护,因第三方开源软件导致的问题修复依赖相关社区的贡献和反馈。您应理解,MindSpeed LLM仓库不保证对第三方开源软件本身的问题进行修复,也不保证会测试、纠正所有第三方开源软件的漏洞和错误。
- 对于各模型,MindSpeed LLM平台仅提示性地向您建议可用于训练的数据集,华为不提供任何数据集,如您使用这些数据集进行训练,请您特别注意应遵守对应数据集的License,如您因使用数据集而产生侵权纠纷,华为不承担任何责任。
- 如您在使用MindSpeed LLM模型过程中,发现任何问题(包括但不限于功能问题、合规问题),请在Gitee提交issue,我们将及时审视并解决。
致数据集所有者
如果您不希望您的数据集在MindSpeed LLM中的模型被提及,或希望更新MindSpeed LLM中的模型关于您的数据集的描述,请在Gitee提交issue,我们将根据您的issue要求删除或更新您的数据集描述。衷心感谢您对MindSpeed LLM的理解和贡献。
License声明
Ascend MindSpeed LLM提供的模型,如模型目录下存在License的,以该License为准。如模型目录下不存在License的,以Apache 2.0许可证许可,对应许可证文本可查阅Ascend MindSpeed LLM根目录。
