# ModelLink **Repository Path**: gigi-two222/ModelLink ## Basic Information - **Project Name**: ModelLink - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-13 - **Last Updated**: 2024-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

GitHub Documentation

MindSpeed-LLM作为昇腾大模型训练框架,旨在为华为 [昇腾芯片](https://www.hiascend.com/) 提供端到端的大语言模型训练方案, 包含分布式预训练、分布式指令微调、分布式偏好对齐以及对应的开发工具链。 --- ## MindSpeed-LLM 大模型训练框架功能特性概览 ### 训练方案 * 分布式预训练:预训练方案/并行策略/加速算法/融合算子 * 分布式指令微调:指令微调方案/Prompt模板/动态padding/长序列方案 * 分布式偏好对齐:偏好对齐方案/DPO/奖励模型 * 开发工具链:权重转换/数据处理/分布式推理/分布式评估 * 昇腾工具链:Profiling采集/确定性计算/高可用 ### 预置模型 - MindSpeed-LLM [100+ 预置大模型及其权重下载地址](./docs/models/pretrain.md) - MindSpeed-LLM [使用指南](./docs/USER_GUIDE.md) - [基于 Megatron-LM + MindSpeed-LLM 训练自定义大模型](./docs/DEVELOP_GUIDE.md) ### 研发中特性与模型 - 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 65.8%
LLAMA2-13B Atlas 900 A2 PODc 1x8 57.4%
LLAMA2-70B Atlas 900 A2 PODc 4x8 53.9%
基于 `GPT3-175B` 稠密大模型,从128颗 NPU 扩展到 7968颗 NPU 进行 MFU 与线性度实验,下图是实验数据:

图中呈现了对应集群规模下的 `MFU` 值与集群整体的 `线性度`情况. 计算公式已经放到社区,点击链接可进行参考:[MFU计算公式](https://gitee.com/ascend/ModelLink/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/ModelLink/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并行 张量并行 【昇腾】
流水线并行 【昇腾】
虚拟流水并行 【昇腾】
序列并行 【昇腾】
长序列并行 Ascend Ring Attention 长序列并行 【昇腾】
Ulysses 长序列并行 【昇腾】
混合长序列并行 【昇腾】
MOE MOE 专家并行 【昇腾】
MOE 重排通信优化 【计算研究部】
显存优化 参数副本复用 【计算算法部】
分布式优化器 【昇腾】
Swap Attention 【计算研究部】
重计算 【计算研究部】
融合算子 Flash attention 【昇腾】
Fused rmsnorm 【昇腾】
Fused swiglu 【昇腾】
Fused rotary position embedding 【昇腾】
GMM 【昇腾】
Matmul Add 【昇腾】
通信掩盖 梯度reduce通算掩盖 【昇腾】
Recompute in advance 【昇腾】
权重all-gather通算掩盖 【昇腾】
MC2 【昇腾】
--- ## 分布式指令微调 【指令微调实测性能】
模型 硬件 集群 框架 方案 序列 性能
llama2-7B Atlas 900 A2 PODc 1x8 MindSpeed-LLM + NPU 全参 dynamic 45.7 samples/s
DeepSpeed + NPU 全参 dynamic 40.4 samples/s
DeepSpeed + 参考 全参 dynamic 46.5 samples/s
MindSpeed-LLM + NPU 全参 16K 1.455 samples/s
DeepSpeed + 参考 全参 16K 1.003 samples/s
MindSpeed-LLM + NPU 全参 32K 0.727 samples/s
DeepSpeed + 参考 全参 32K 0.4 samples/s
llama2-13B Atlas 900 A2 PODc 1x8 MindSpeed-LLM + NPU 全参 dynamic 28.4 samples/s
DeepSpeed + NPU 全参 dynamic 17.8 samples/s
DeepSpeed + 参考 全参 dynamic 24.9 samples/s
llama2-70B Atlas 900 A2 PODc 1x8 MindSpeed-LLM + NPU LoRA dynamic 11.72 samples/s
DeepSpeed + 参考 LoRA dynamic 3.489 samples/s
【指令微调特性】
场景 特性名称 Mcore Legacy 贡献方
微调数据集支持格式 Alpaca 风格 【昇腾】
ShareGPT 风格 【昇腾】
全参微调 单样本微调 【昇腾】
多样本 pack 【NAIE】
多轮对话 【昇腾】
长序列方案 【NAIE】
低参微调 LoRA 微调 【NAIE】
CCLoRA 【计算算法部】
--- ## 分布式偏好对齐 【偏好对齐特性】
场景 特性名称 Mcore Legacy 贡献方
偏好对齐 Offline DPO 【NAIE】
奖励模型 ORM 【昇腾】
--- ## 开发工具链
场景 特性 Mcore Legacy 贡献方
权重转换 Huggingface 与 Megatron 互转 【昇腾】
数据处理 预训练数据处理 【昇腾】
Alpaca风格指令微调数据处理 【昇腾】
ShareGPT风格指令微调数据处理 【昇腾】
分布式推理 流式推理 【NAIE】
微调后 Chat 对话 【NAIE】
分布式评估 开源测评集评测 【NAIE】
--- ## 昇腾工具链
场景 特性 Mcore Legacy 贡献方
性能采集分析 基于昇腾芯片采集 profiling 数据 【昇腾】
高可用性 基于昇腾芯片开启确定性计算 【昇腾】
基于昇腾芯片开启临终 ckpt 保存 【计算研究部】
--- ## 版本配套与维护策略
依赖软件 版本 软件安装指南 推荐硬件形态
昇腾NPU驱动 在研版本 驱动固件安装指南 Atlas 900 A2 PODc
昇腾NPU固件
Toolkit(开发套件) 在研版本 CANN 软件安装指南
Kernel(算子包)
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.RC4 | 常规版本 | 维护 | 2024/012/30 | 预计2025/06/30起无维护 | | | 1.0.RC3 | 常规版本 | 维护 | 2024/09/30 | 预计2025/03/30起无维护 | | | 1.0.RC2 | 常规版本 | EOL | 2024/06/30 | 生命周期终止 | 2024/12/30 | | 1.0.RC1 | 常规版本 | EOL | 2024/03/30 | 生命周期终止 | 2024/9/30| | bk_origin_23 | Demo | EOL | 2023 | 生命周期终止 | 2024/6/30 | --- ## 致谢 MindSpeed-LLM由华为公司的下列部门联合贡献 : - 昇腾计算产品部 - 计算算法部 - 计算研究部 - 公共开发部:NAIE - 全球技术服务部:GTS - 华为云计算 - 昇腾计算生态使能部 感谢来自社区的每一个PR,欢迎贡献 MindSpeed-LLM --- ## 安全声明 [MindSpeed-LLM安全声明](https://gitee.com/ascend/ModelLink/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)