# MindSpeed-LLM **Repository Path**: wxjch2002/MindSpeed-LLM ## Basic Information - **Project Name**: MindSpeed-LLM - **Description**: 昇腾LLM分布式训练框架 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/ascend/MindSpeed-LLM/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1138 - **Created**: 2024-12-12 - **Last Updated**: 2024-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

GitHub Documentation

MindSpeed-LLM,原仓名ModelLink,作为昇腾大模型训练框架,旨在为华为 [昇腾芯片](https://www.hiascend.com/) 提供端到端的大语言模型训练方案, 包含分布式预训练、分布式指令微调、分布式偏好对齐以及对应的开发工具链。 ***注 : 原包名 modellink 更改为 mindspeed_llm *** --- ## 预置模型 MindSpeed-LLM当前已支持和预置大模型列表: - MindSpeed-LLM [100+ 预置大模型及其权重下载地址](./docs/models/pretrain.md) ## 用户使用指南 - MindSpeed-LLM [使用指南](./docs/USER_GUIDE.md) - [基于 Megatron-LM + MindSpeed-LLM 训练自定义大模型](./docs/DEVELOP_GUIDE.md) ## MindSpeed-LLM 大模型训练框架功能特性 ### 训练方案 * 分布式预训练:预训练方案/并行策略/加速算法/融合算子 * 分布式指令微调:指令微调方案/Prompt模板/动态padding/长序列方案 * 分布式偏好对齐:偏好对齐方案/DPO/奖励模型 * 开发工具链:权重转换/数据处理/分布式推理/分布式评估 * 昇腾工具链:Profiling采集/确定性计算/高可用 ### 研发中特性与模型 - O1: https://openai.com/index/learning-to-reason-with-llms/ - COT:[Chain-of-Thought Reasoning without Prompting](https://arxiv.org/pdf/2402.10200) - GRPO: [DeepSeek Reinforcement Learning](https://arxiv.org/pdf/2405.04434) - Search: [AlphaZero-Like Tree-Search](https://arxiv.org/pdf/2309.17179) - PPO: [Proximal Policy Optimization Algorithms](https://arxiv.org/abs/1707.06347) - PRM: [Reward Modeling as Next-Token Prediction](https://arxiv.org/pdf/2408.15240) - QLoRA: [Efficient Finetuning of Quantized LLMs](https://arxiv.org/pdf/2305.14314) - Mamba2: [Transformers are SSMs](https://arxiv.org/pdf/2405.21060) - Mamba-Hybird: [An Empirical Study of Mamba-based Language Models](https://arxiv.org/pdf/2406.07887) - DeepSeek-V2: [236B](https://huggingface.co/deepseek-ai/DeepSeek-V2) - DeepSeek-V2.5: [236B](https://huggingface.co/deepseek-ai/DeepSeek-V2.5) - QWen2.5: [7B](https://huggingface.co/Qwen/Qwen2.5-7B), [14B](https://huggingface.co/Qwen/Qwen2.5-14B), [32B](https://huggingface.co/Qwen/Qwen2.5-32B), [72B](https://huggingface.co/Qwen/Qwen2.5-72B) - InternLM2.5: [1.8B](https://huggingface.co/internlm/internlm2_5-1_8b), [7B](https://huggingface.co/internlm/internlm2_5-7b), [20B](https://huggingface.co/internlm/internlm2_5-20b) - MiniCPM3: [4B](https://huggingface.co/openbmb/MiniCPM3-4B) - Yi1.5: [6B](https://huggingface.co/01-ai/Yi-1.5-6B), [9B](https://huggingface.co/01-ai/Yi-1.5-9B), [34B](https://huggingface.co/01-ai/Yi-1.5-34B) - Phi3.5: [MoE](https://huggingface.co/microsoft/Phi-3.5-MoE-instruct), [Mini](https://huggingface.co/microsoft/Phi-3.5-mini-instruct) --- ## 分布式预训练 【预训练实测集群性能与线性度】
模型系列 实验模型 硬件信息 集群规模 MFU
LLAMA2 LLAMA2-7B Atlas 900 A2 PODc 1x8 68.8%
LLAMA2-13B Atlas 900 A2 PODc 1x8 62.23%
LLAMA2-70B Atlas 900 A2 PODc 4x8 55.8%
Mixtral Mixtral-8x7B Atlas 900 A2 PODc 8x8 31%
基于 `GPT3-175B` 稠密大模型,从128颗 NPU 扩展到 7968颗 NPU 进行 MFU 与线性度实验,下图是实验数据:

图中呈现了对应集群规模下的 `MFU` 值与集群整体的 `线性度`情况. 计算公式已经放到社区,点击链接可进行参考:[MFU计算公式](https://gitee.com/ascend/MindSpeed-LLM/wikis/%E6%9C%AF%E8%AF%AD%E5%AE%9A%E4%B9%89/%E5%A4%A7%E6%A8%A1%E5%9E%8B%20MFU%20%E8%AE%A1%E7%AE%97%E5%85%AC%E5%BC%8F),[线性度计算公式](https://gitee.com/ascend/MindSpeed-LLM/wikis/%E6%9C%AF%E8%AF%AD%E5%AE%9A%E4%B9%89/%E7%BA%BF%E6%80%A7%E5%BA%A6%E5%85%AC%E5%BC%8F). 【并行策略/加速算法/显存优化/融合算子】
场景 特性名称 Mcore Legacy 贡献方
SPTD并行 张量并行 【昇腾】
流水线并行 【昇腾】
虚拟流水并行 【昇腾】
序列并行 【昇腾】
Noop Layers 【昇腾】
长序列并行 Ascend Ring Attention 长序列并行 【昇腾】
Ulysses 长序列并行 【昇腾】
混合长序列并行 【昇腾】
自适应长序列并行 【计算研究部】
MOE MOE 专家并行 【昇腾】
MOE 重排通信优化 【计算研究部】
显存优化 参数副本复用 【计算算法部】
分布式优化器 【昇腾】
Swap Attention 【计算研究部】
重计算 【计算研究部】
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 【昇腾】
--- ## 分布式指令微调 【指令微调实测性能】
模型 硬件 集群 方案 序列 性能 MFU
llama2-7B Atlas 900 A2 PODc 1x8 全参 dynamic 45.7 samples/s -
全参 16K 1.78 samples/s 56.0%
全参 32K 0.79 samples/s 61.9%
llama2-13B Atlas 900 A2 PODc 1x8 全参 dynamic 28.4 samples/s -
llama2-70B Atlas 900 A2 PODc 1x8 LoRA dynamic 11.72 samples/s -
【指令微调特性】
场景 特性名称 Mcore Legacy 贡献方
微调数据集支持格式 Alpaca 风格 【昇腾】
ShareGPT 风格 【昇腾】
全参微调 单样本微调 【昇腾】
多样本pack微调 【NAIE】
多轮对话微调 【昇腾】
长序列方案 【NAIE】
低参微调 LoRA 微调 【NAIE】
CCLoRA 【计算算法部】
--- ## 分布式偏好对齐 【偏好对齐实测性能】
模型 硬件 算法 集群 方案 序列 吞吐
llama2-7B Atlas 900 A2 PODc Offline DPO 1x8 全参 dynamic 12.77 samples/s
全参 16K 0.442 samples/s
Lora dynamic 9.79 samples/s
2x8 全参 32K 0.227 samples/s
【偏好对齐特性】
场景 特性名称 Mcore Legacy 贡献方
数据预处理 Pairwise数据集处理 【NAIE】
PRM数据集处理 【昇腾】
偏好对齐 Offline DPO 【NAIE】
SimPO 【China Mobile Cloud】
奖励模型 ORM 【昇腾】
PRM 【昇腾】
--- ## 开发工具链
场景 特性 Mcore Legacy 贡献方
权重转换 Huggingface 与 Megatron 互转 【昇腾】
数据处理 预训练数据处理 【昇腾】
Alpaca风格指令微调数据处理 【昇腾】
ShareGPT风格指令微调数据处理 【昇腾】
Pairwise数据集处理 【NAIE】
分布式推理 流式推理 【NAIE】
Chat对话 【NAIE】
分布式评估 开源测评集评测 【NAIE】
--- ## 昇腾工具链
场景 特性 Mcore Legacy 贡献方
性能采集分析 基于昇腾芯片采集 profiling 数据 【昇腾】
高可用性 基于昇腾芯片开启确定性计算 【昇腾】
基于昇腾芯片开启临终 ckpt 保存 【计算研究部】
--- ## 版本配套与维护策略
依赖软件 版本 软件安装指南 推荐硬件形态
昇腾NPU驱动 在研版本 驱动固件安装指南 Atlas 900 A2 PODc
昇腾NPU固件
Toolkit(开发套件) 在研版本 CANN 软件安装指南
Kernel(算子包)
NNAL(Ascend Transformer Boost加速库)
PyTorch 在研版本 Ascend Extension for PyTorch 配置与安装
torch_npu插件
apex
MindSpeed-LLM版本有以下五个维护阶段: | **状态** | **时间** | **说明** | | ------------------- | -------- |----------------------------------------------------------------------| | 计划 | 1—3 个月 | 计划特性 | | 开发 | 3 个月 | 开发特性 | | 维护 | 6-12 个月| 合入所有已解决的问题并发布版本,针对不同的MindSpeed-LLM版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 | | 无维护 | 0—3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 | | 生命周期终止(EOL) | N/A | 分支不再接受任何修改 | MindSpeed-LLM已发布版本维护策略: | **MindSpeed-LLM版本** | **对应标签** | **维护策略** | **当前状态** | **发布时间** | **后续状态** | **EOL日期** | | ------------------- | ----------- | -------- | ------------ | ----------------------- | ----------- | -----------| | 1.0.0 | \ | 常规版本 | 维护 | 2024/12/30 | 预计2025/06/30起无维护 | | | 1.0.RC3 | v1.0.RC3.0 | 常规版本 | 维护 | 2024/09/30 | 预计2025/03/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由华为公司的下列部门以及昇腾生态合作伙伴联合贡献 : 华为公司: - 昇腾计算产品部 - 计算算法部 - 计算研究部 - 公共开发部:NAIE - 全球技术服务部:GTS - 华为云计算 - 昇腾计算生态使能部 生态合作伙伴: - 移动云(China Mobile Cloud):大云震泽智算平台 感谢来自社区的每一个PR,欢迎贡献 MindSpeed-LLM --- ## 安全声明 [MindSpeed-LLM安全声明](https://gitee.com/ascend/MindSpeed-LLM/wikis/%E5%AE%89%E5%85%A8%E7%9B%B8%E5%85%B3/%E5%AE%89%E5%85%A8%E5%A3%B0%E6%98%8E)