Go to file
liuxinyang 4b28e4f9ea !1853 奖励模型增加加速特性
Merge pull request !1853 from liuxinyang/master
2024-11-07 01:05:52 +00:00
ci !1782 add Third_Party_Open_Source_Software_Notice 2024-10-22 06:13:45 +00:00
docs !1835 添加lora feature readme 2024-11-06 01:17:20 +00:00
examples !1853 奖励模型增加加速特性 2024-11-07 01:05:52 +00:00
modellink !1814 refactor trainer 2024-11-06 10:53:02 +00:00
sources/images !1835 添加lora feature readme 2024-11-06 01:17:20 +00:00
tests !1814 refactor trainer 2024-11-06 10:53:02 +00:00
.gitignore !1306 feat: 给评估任务加上总文件及子任务进度条 2024-05-30 01:37:41 +00:00
convert_ckpt.py !1799 refactor: use MegatronAdaptation to support adaptation registration, application and execution. 2024-10-26 08:13:07 +00:00
evaluation.py !1805 推理模块整改 2024-11-02 07:36:42 +00:00
inference.py !1805 推理模块整改 2024-11-02 07:36:42 +00:00
LICENSE update LICENSE. 2024-08-13 10:15:09 +00:00
OWNERS !1832 支持recompute-in-advance特性 2024-11-01 09:33:05 +00:00
posttrain_gpt.py !1814 refactor trainer 2024-11-06 10:53:02 +00:00
preprocess_data.py !1745 新增baichuan2全参微调脚本和相应模版 2024-11-04 13:03:12 +00:00
pretrain_gpt.py !1814 refactor trainer 2024-11-06 10:53:02 +00:00
README.md !1835 添加lora feature readme 2024-11-06 01:17:20 +00:00
requirements.txt !1716 修改torch及torchvision的安装说明 2024-09-23 07:39:59 +00:00
SECURITYNOTE.md !1760 整理主线分支 README 2024-10-25 01:33:31 +00:00
setup.py !1373 修改typos和issue 2024-06-24 13:00:04 +00:00
Third_Party_Open_Source_Software_Notice !1782 add Third_Party_Open_Source_Software_Notice 2024-10-22 06:13:45 +00:00

GitHub Documentation

MindSpeed-LLM作为昇腾大模型训练框架旨在为华为 昇腾芯片 提供端到端的大语言模型训练方案, 包含分布式预训练、分布式指令微调、分布式偏好对齐以及对应的开发工具链。


MindSpeed-LLM 大模型训练框架功能特性概览

训练方案

  • 分布式预训练:预训练方案/并行策略/加速算法/融合算子
  • 分布式指令微调:指令微调方案/Prompt模板/动态padding/长序列方案
  • 分布式偏好对齐:偏好对齐方案/DPO/奖励模型
  • 开发工具链:权重转换/数据处理/分布式推理/分布式评估
  • 昇腾工具链Profiling采集/确定性计算/高可用

预置模型

研发中特性与模型


分布式预训练

【预训练实测集群性能与线性度】

模型系列 实验模型 硬件信息 集群规模 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计算公式线性度计算公式.

【并行策略/加速算法/显存优化/融合算子】

场景 特性名称 Mcore Legacy 贡献方
SPTD并行 张量并行 【昇腾】
流水线并行 【昇腾】
虚拟流水并行 【昇腾】
序列并行 【昇腾】
长序列并行 Ascend Ring Attention 长序列并行 【昇腾】
Ulysses 长序列并行 【昇腾】
混合长序列并行 【昇腾】
MOE MOE 专家并行 【昇腾】
MOE 重排通信优化 【计算研究部】
显存优化 参数副本复用 【计算算法部】
分布式优化器 【昇腾】
Swap Attention 【计算研究部】
重计算 【计算研究部】
融合算子 Flash attention 【昇腾】
Fused rmsnorm 【昇腾】
Fused swiglu 【昇腾】
Fused rotary position embedding 【昇腾】
GMM 【昇腾】
通信掩盖 梯度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驱动 在研版本 驱动固件安装指南
昇腾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.RC3 常规版本 维护 2024/09/30 预计2025/03/30起无维护
1.0.RC2 常规版本 维护 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安全声明