MindSpeed-LLM是基于昇腾生态的大语言模型分布式训练框架,旨在为华为 昇腾芯片 生态合作伙伴提供端到端的大语言模型训练方案,包含分布式预训练、分布式指令微调、分布式偏好对齐以及对应的开发工具链,如:数据预处理、权重转换、在线推理、基线评估。
注 : 原仓名ModelLink更改为MindSpeed-LLM,原包名modellink更改为mindspeed_llm
🚀🚀🚀Qwen3 系列模型同步首发支持!!!🚀🚀🚀
🚀🚀🚀DeepSeek-R1 系列功能逐步上线!!🚀🚀🚀
🚀🚀🚀DeepSeek-V3-671B 模型全家桶已上线!!!🚀🚀🚀
权重转换 😊
预训练 😊
🚀🚀🚀DeepSeek-R1-Distill 系列模型已上线!!🚀🚀🚀
MindSpeed-LLM的依赖配套如下表,安装步骤参考安装指导。
依赖软件 | 版本 |
---|---|
昇腾NPU驱动 | 在研版本 |
昇腾NPU固件 | |
Toolkit(开发套件) | 在研版本 |
Kernel(算子包) | |
NNAL(Ascend Transformer Boost加速库) | |
Python | >=3.8 |
PyTorch | 2.1 |
torch_npu插件 | 在研版本 |
apex |
注:由于master分支使用在研版本的驱动以及CANN包,因此master上的一些新特性老版本配套可能有不支持情况,要使用稳定版本,请切换到商发分支并下载对应依赖版本进行安装。
MindSpeed-LLM目前已内置支持百余个业界常用稠密和MOE大模型的预训练、微调和偏好对齐,预置模型清单详见下表。
模型类别 | 模型列表 |
---|---|
稠密模型 | Dense |
MOE模型 | MOE |
MindSpeed-LLM包含分布式预训练、分布式微调、分布式偏好对齐等训练方案。
-
legacy是megatron早期方案,与新的mcore方案在代码设计上存在差异,legacy方案不支持moe模型以及长序列CP切分方案,我们建议优先使用mcore方案。
-
Released表示是否商用发布,未商用发布特性处于内部开发状态,不推荐开发者使用。
基于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% |
基于 GPT3-175B
稠密大模型,从128颗 NPU 扩展到 7968颗 NPU 进行 MFU 与线性度实验,下图是实验数据:
图中呈现了对应集群规模下的 MFU
值与集群整体的 线性度
情况. 计算公式已经放到社区,点击链接可进行参考:MFU计算公式,线性度计算公式.
方案类别 | Legacy | Mcore | Released | 贡献方 |
---|---|---|---|---|
样本拼接 | ✅ | ✅ | ✅ | 【Ascend】 |
样本pack | ✅ | ✅ | ❌ |
场景 | 特性名称 | Mcore | Legacy | 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 | Legacy | LoRA | Released | 贡献方 | |
---|---|---|---|---|---|---|
单样本微调 | ✅ | ✅ | ✅ | ✅ | ✅ | 【Ascend】 |
多样本pack微调 | ✅ | ✅ | ✅ | ❌ | ❌ | 【NAIE】 |
多轮对话微调 | ✅ | ✅ | ✅ | ❌ | ❌ | 【Ascend】 |
场景 | 特性 | Mcore | Legacy | Released | 贡献方 |
---|---|---|---|---|---|
LoRA微调 | CCLoRA | ✅ | ✅ | ✅ | 【Ascend】 |
Fused_MLP | ✅ | ✅ | ✅ | 【Ascend】 | |
QLoRA微调 | CCLoRA | ❌ | ❌ | ❌ | 【NAIE】 |
Fused_MLP | ❌ | ❌ | ❌ | 【NAIE】 | |
长序列微调 | 长序列CP方案 | ✅ | ❌ | ❌ | 【Ascend】 |
MindSpeed-LLM支持huggingface、megatron-core、megatron-legacy三种格式的权重互转,支持Lora权重合并。权重转换特性参数和使用说明参考权重转换。
源格式 | 目标格式 | 切分特性 | lora | 贡献方 | Released |
---|---|---|---|---|---|
huggingface | megatron-core | tp、pp、dpp、vpp、cp、ep、loop layer | ❌ | 【Ascend】 | ❌ |
megatron-legacy | ❌ | ||||
megatron-core | huggingface | ✅ | |||
megatron-legacy | tp、pp、dpp、vpp、cp、ep、loop layer | ✅ | |||
megatron-core | ✅ | ||||
megatron-legacy | huggingface | ✅ | |||
megatron-core | tp、pp、dpp、vpp、cp、ep、loop layer | ✅ | |||
megatron-legacy | ✅ |
MindSpeed-LLM支持预训练、指令微调、RLHF等多种任务的数据预处理。
任务场景 | 数据集 | Mcore | Legacy | Released | 贡献方 |
---|---|---|---|---|---|
预训练 | 预训练数据处理 | ✅ | ✅ | ✅ | 【Ascend】 |
微调 | Alpaca风格 | ✅ | ✅ | ✅ | |
ShareGPT风格 | ✅ | ✅ | ✅ | ||
DPO | Pairwise数据集处理 | ✅ | ✅ | ✅ | 【NAIE】 |
SimPO | ✅ | ✅ | ❌ | ||
ORM | ✅ | ✅ | ❌ | ||
PRM | PRM数据集处理 | ✅ | ✅ | ❌ | 【Ascend】 |
特性 | Mcore | Legacy | Released | 贡献方 |
---|---|---|---|---|
流式推理 | ✅ | ✅ | ✅ | 【NAIE】 |
Chat对话 | ✅ | ✅ | ✅ | 【NAIE】 |
yarn上下文扩展 | ✅ | ❌ | ❌ | 【Ascend】 |
特性 | 数据集 | Mcore | Legacy | Released | 贡献方 |
---|---|---|---|---|---|
开源测评集评测 | MMLU | ✅ | ✅ | ❌ | 【NAIE】 |
CEval | ✅ | ✅ | ❌ | 【NAIE】 | |
BoolQ | ✅ | ✅ | ❌ | 【NAIE】 | |
BBH | ✅ | ✅ | ❌ | 【NAIE】 | |
AGIEval | ✅ | ✅ | ❌ | 【NAIE】 | |
HumanEval | ✅ | ✅ | ❌ | 【NAIE】 |
场景 | 特性 | Mcore | Legacy | Released | 贡献方 |
---|---|---|---|---|---|
性能采集 | 基于昇腾芯片采集 profiling 数据 | ✅ | ✅ | ❌ | 【Ascend】 |
场景 | 特性 | Mcore | Legacy | Released | 贡献方 |
---|---|---|---|---|---|
高可用性 | 基于昇腾芯片开启确定性计算 | ✅ | ✅ | ❌ | 【Ascend】 |
MindSpeed-LLM版本有以下五个维护阶段:
状态 | 时间 | 说明 |
---|---|---|
计划 | 1—3 个月 | 计划特性 |
开发 | 3 个月 | 开发特性 |
维护 | 6-12 个月 | 合入所有已解决的问题并发布版本,针对不同的MindSpeed-LLM版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 |
无维护 | 0—3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 |
生命周期终止(EOL) | N/A | 分支不再接受任何修改 |
MindSpeed-LLM已发布版本维护策略:
MindSpeed-LLM版本 | 对应标签 | 维护策略 | 当前状态 | 发布时间 | 后续状态 | EOL日期 |
---|---|---|---|---|---|---|
2.0.0 | \ | 常规版本 | 维护 | 2025/3/30 | 预计2025/09/30起无维护 | |
1.0.0 | v1.0.0 | 常规版本 | 维护 | 2024/12/30 | 预计2025/06/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平台仅提示性地向您建议可用于训练的数据集,华为不提供任何数据集,如您使用这些数据集进行训练,请您特别注意应遵守对应数据集的License,如您因使用数据集而产生侵权纠纷,华为不承担任何责任。
- 如您在使用MindSpeed-LLM模型过程中,发现任何问题(包括但不限于功能问题、合规问题),请在Gitee提交issue,我们将及时审视并解决。
如果您不希望您的数据集在MindSpeed-LLM中的模型被提及,或希望更新MindSpeed-LLM中的模型关于您的数据集的描述,请在Gitee提交issue,我们将根据您的issue要求删除或更新您的数据集描述。衷心感谢您对MindSpeed-LLM的理解和贡献。
Ascend MindSpeed-LLM提供的模型,如模型目录下存在License的,以该License为准。如模型目录下不存在License的,以Apache 2.0许可证许可,对应许可证文本可查阅Ascend MindSpeed-LLM根目录。