基于昇腾MindSpeed LLM训练和微调Qwen2.5
作者:MindSpeed LLM组,GTS IT产品技术部,瑾丞
目 录
- 概述
- 环境准备
- 获取与准备模型
- 配置启动模型预训练
- 配置与启动指令微调
- 常见问题与解决办法
(这是昇腾知识体系的配套预览材料,转载随意,如反馈bug请移步原文:链接)
第1章 概述:2小时快速入门昇腾模型开发实践
1.1 教程目标
大语言模型作为人工智能领域的核心技术,具备强大的自然语言处理能力,经过预训练和微调后的模型能够理解、生成和推理人类语言,广泛应用于智能客服、文本生成、代码编写辅助成等场景。
Qwen2.5-7B作为能力较为全面的大语言模型,支持多模态交互、逻辑推理等功能,其参数量小、轻量化优势突出,可单机部署,降低硬件要求与成本,方便开发者快速搭建应用系统。 本教程旨在基于昇腾生态环境,完成Qwen2.5-7B大语言模型的训练与微调工作,具体将指导开发者在2小时内完成以下核心任务:
- 模型获取:从开源模型社区下载Qwen2.5-7B原始模型
- 权重转换:将PyTorch权重转换为昇腾MindSpeed兼容的分布式格式
- 预训练实战:在昇腾NPU上进行模型预训练
- 微调实战:在昇腾NPU上进行模型指令微调
1.2 适用场景
- 开发者背景:具备基础PyTorch或MindSpore使用经验
- 硬件环境:昇腾Atlas系列NPU(单机/分布式)
- 典型需求:需要快速在昇腾平台上复现Qwen2.5的指令微调训练
1.3 昇腾生态及核心优势
昇腾生态围绕Ascend处理器构建了一系列组件,全面覆盖从底层硬件到上层应用的各个环节:
- 硬件层面:基于昇腾AI处理器,形成了嵌入式模组、板卡、小站、服务器、集群等硬件产品;
- 软件层面:异构计算架构CANN向上对接主流AI框架,向下适配系列化芯片的硬件差异,借助软硬协同,充分挖掘硬件算力潜能;MindSpeed Core作为大模型训练加速库实现多卡协同高效训练,结合MindSpeed LLM / MindSpeed MM模型仓为用户提供一系列先进的SOTA模型的加速训练能力
通过昇腾MindSpeed LLM套件,我们将充分发挥昇腾NPU的以下特性:
技术特性 | 实现效果 |
---|---|
生态兼容性 | 无缝支持Megatron、Transformer等主流并行框架 |
混合并行策略 | 张量并行(TP)+ 流水线并行(PP)组合,最大化芯片利用率 |
内存优化 | 梯度裁剪、参数分片、BF16混合精度训练,降低显存压力 |
通信优化 | 高性能HCCL通信库,减少分布式训练的通信开销 |
训练加速 | 融合算子(如Flash Attention)加速Transformer计算,吞吐量提升30%-50% |
1.4 基本概念介绍
- 预训练:在大规模通用数据上对模型进行训练的过程,通过处理这些多样化的数据,模型能够学习到语言的基本结构、语义信息、语法规则以及各种领域的一般性知识
- 微调:在大规模通用数据上对模型进行训练的过程,通过微调,模型可以在保持原有通用能力的基础上,针对特定需求优化参数,从而提高在特定场景下的性能和表现
1.5 操作步骤一览
接下来2小时我们将分步骤完成:
- 第2章 环境准备:安装昇腾软件栈和MindSpeed LLM (15min)
- 第3章 模型原数据获取:从开源模型社区下载原始权重(5min)
- 第4章 模型预训练:拉起Qwen2.5预训练任务(60min)
- 第5章 模型微调:拉起Qwen2.5模型微调 (40min)
第2章 环境准备
请参考MindSpeed-LLM仓首页“版本配套表”,选择下载对应版本的软件依赖(驱动、固件、Toolkit、Kernel、Pytorch、torch_npu插件、apex)。
2.1 驱动固件安装
下载驱动固件,请根据系统和硬件产品型号选择对应版本的driver
和firmware
下载到本地并上传到服务器任意目录,驱动固件下载示意图如下:
参考安装NPU驱动固件或执行以下命令安装:
# 因为版本迭代,包名存在出入,根据实际下载的包进行修改
bash Ascend-hdk-910b-npu-firmware_7.5.0.5.220.run --full
bash Ascend-hdk-910b-npu-driver_24.1.0.3_linux-aarch64.run --full --force
2.2 CANN安装
下载CANN,请根据根据系统选择aarch64
或x86_64
对应版本的cann-toolkit
、cann-kernel
和cann-nnal
下载到本地并上传到服务器任意目录。相关软件下载示意图如下:
参考CANN安装完成cann包安装,若缺少依赖请参考CANN依赖安装:
# 因为版本迭代,包名存在出入,根据实际修改
bash Ascend-cann-toolkit_8.1.RC1_linux-aarch64.run --install
bash Ascend-cann-kernels-910b_8.1.RC1_linux-aarch64.run --install
# 安装nnal包需要先完成toolkit和kernels包安装,并且source环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
bash Ascend-cann-nnal_8.1.RC1_linux-aarch64.run --install
2.3 PTA安装
准备torch_npu和apex,参考Ascend Extension for PyTorch 配置与安装或执行以下命令安装
# 安装torch和torch_npu,因为版本迭代,包名存在出入,根据实际修改
wget https://download.pytorch.org/whl/cpu/torch-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip install torch-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
wget https://gitee.com/ascend/pytorch/releases/download/v7.0.0-pytorch2.1.0/torch_npu-2.1.0.post12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip install torch_npu-2.1.0.post12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# apex for Ascend 需要自行参考 https://gitee.com/ascend/apex 完成whl包的构建,再通过如下指令完成安装
pip install apex-*.whl
2.4 MindSpeed LLM及相关依赖安装
# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
# 安装MindSpeed加速库
git clone https://gitee.com/ascend/MindSpeed.git
cd MindSpeed
git checkout 2.0.0_core_r0.8.0 # checkout commit from MindSpeed 2.0.0_core_r0.8.0
pip install -r requirements.txt
pip3 install -e .
cd ..
# 准备MindSpeed-LLM及Megatron-LM源码
git clone https://gitee.com/ascend/MindSpeed-LLM.git
git clone https://github.com/NVIDIA/Megatron-LM.git # megatron从github下载,请确保网络能访问
cd Megatron-LM
git checkout core_r0.8.0
cp -r megatron ../MindSpeed-LLM/
cd ../MindSpeed-LLM
git checkout 2.0.0
pip install -r requirements.txt # 安装其余依赖库
2.5 关键点总结
步骤 | 操作要点 |
---|---|
驱动安装 | 根据硬件型号选择对应固件和驱动版本 |
CANN版本匹配 | 确保CANN版本与PyTorch扩展版本兼容(如CANN8.0搭配PyTorch2.1) |
路径配置 | 所有路径需绝对化,避免相对路径导致脚本中断 |
环境变量 | 每次启动终端后需重新执行source set_env.sh 加载环境变量 |
第3章 模型原数据获取
3.1 从开源模型社区下载模型
步骤1:创建模型存储目录
mkdir -p ./model_from_hf/qwen2.5-7b-hf
cd ./model_from_hf/qwen2.5-7b-hf
步骤2:下载原始模型文件
下面以huggingface为例,使用wget
直接下载官方qwen2.5-7B权重:
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/config.json
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/generation_config.json
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/merges.txt
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/model-00001-of-00004.safetensors
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/model-00002-of-00004.safetensors
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/model-00003-of-00004.safetensors
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/model-00004-of-00004.safetensors
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/model.safetensors.index.json
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/tokenizer.json
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/tokenizer_config.json
wget https://huggingface.co/Qwen/Qwen2.5-7B/tree/main/vocab.json
3.2 模型文件完整性验证
基于transformer加载模型权重。
在MindSpeed-LLM目录下创建并运行如下.py文件,进行模型加载,用于验证所下载权重文件的完整性
import torch
import torch_npu
import numpy as np
from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig
def set_device(device_id):
torch.npu.set_device(torch.device(f"npu:{device_id}"))
def load_model(load_dir):
"""load model"""
config = AutoConfig.from_pretrained(load_dir, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(load_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(load_dir, trust_remote_code=True).npu().eval()
return tokenizer, model
if __name__ == "__main__":
set_device(1)
load_dir = "./model_from_hf/qwen2.5-7b-hf"
tokenizer, model = load_model(load_dir)
print(model)
基于如上代码完成基于下载文件的模型加载,若无报错,则确认下载文件完整。(只针对该示例,参数更大的模型可能会出现oom)
第4章 模型预训练
4.1 核心目标
在这一阶段,我们将基于下载的HuggingFace(hf)原数据,完成权重转换、数据集预处理,启动模型预训练,包含步骤如下:
- hf权重转换成megatron权重;
- 预训练数据集处理;
- 预训练任务启动。
4.2 权重转换
昇腾MindSpeed LLM要求模型权重采用Megatron-LM格式,将原始HuggingFace权重格式转换为Megatron-Mcore格式,同时根据需要,指定特性和切分配置,完成权重转换。 详见hf2mg权重转换
转换脚本路径
使用官方提供的转换脚本,获取对应切分的mg权重。 在MindSpeed LLM目录下运行以下命令:
bash examples/mcore/qwen25/ckpt_convert_qwen25_hf2mcore.sh
如下为调整后的hf2mcore权重转换示例脚本
source /usr/local/Ascend/ascend-toolkit/set_env.sh
python convert_ckpt.py \
--use-mcore-models \
--model-type GPT \
--load-model-type hf \
--save-model-type mg \
--target-tensor-parallel-size 1 \
--target-pipeline-parallel-size 4 \
--add-qkv-bias \
--load-dir ./model_from_hf/qwen2.5-7b-hf/ \
--save-dir ./model_weights/qwen2.5_mcore/ \
--tokenizer-model ./model_from_hf/qwen2.5-7b-hf/tokenizer.json \
--model-type-hf llama2 \
--params-dtype bf16
参数解析
参数 | 说明 | 必填 |
---|---|---|
--model-type GPT | 指定模型类型为GPT系列 | ✅ |
--use-mcore-models | 转换为Megatron-Mcore格式 | ✅ |
--target-tensor-parallel-size 1 | 张量并行度设置(建议配置1) | ✅ |
--target-pipeline-parallel-size 4 | 流水线并行度设置(建议保持4) | ✅ |
--tokenizer-model | 指定分词器路径 | ✅ |
--load-model-type | 加载权重的类别(可以是hf、mg) | ✅ |
--save-model-type | 存储权重的类别(可以是hf、mg) | ✅ |
--load-dir | 权重文件加载路径 | ✅ |
--save-dir | 权重文件保存路径 | ✅ |
--model-type-hf | huggingface模型类别,默认为llama2 | |
--params-dtype | 指定权重转换后的权重精度模式,默认为fp16,如果源文件格式为bf16,则需要设置为bf16 | ✅ |
- 注意:对该qwen2.5-7b模型,此处推荐的切分配置是tp1pp4,对应上述配置。
4.3 预训练数据集处理
通过对各种不同格式的数据做提前预处理,避免原始数据的反复处理加载,并将所有的数据都统一存储到为.bin和.idx两个文件中,详见预训练数据处理
常用的预训练数据集包括alpaca、enwiki、c4等,链接中提供了数据集下载地址。
预训练数据集下载
如下以alpaca数据集为例,进行预训练数据集示例。
mkdir dataset
cd dataset/
wget https://huggingface.co/datasets/tatsu-lab/alpaca/blob/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet
cd ..
执行预训练数据集转换
使用官方提供的转换脚本,获取预训练数据集。 在MindSpeed LLM目录下运行以下命令:
bash examples/mcore/qwen25/data_convert_qwen25_pretrain.sh
data_convert_qwen25_pretrain.sh中的配置需做如下修改:
# 请按照您的真实环境修改 set_env.sh 路径
source /usr/local/Ascend/ascend-toolkit/set_env.sh
python ./preprocess_data.py \
--input ./dataset/train-00000-of-00001-a09b74b3ef9c3b56.parquet \
--tokenizer-name-or-path ./model_from_hf/qwen2.5-7b-hf/ \
--output-prefix ./dataset/alpaca \
--tokenizer-type PretrainedFromHF \
--workers 4 \
--log-interval 1000
参数解析
参数 | 说明 | 必填 |
---|---|---|
--input | 支持输入数据集目录或文件,目录则处理全部文件, 支持.parquet、.csv、.json、.jsonl、.txt、.arrow格式,同一目录要求数据格式保持一致 | ✅ |
--tokenizer-type | 说明使用tokenizer类别,参数值为PretrainedFromHF时,词表路径填写模型目录即可 | ✅ |
--tokenizer-name-or-path | 配合tokenizer-type,目标模型的tokenizer原数据文件夹,用于数据集的转换 | |
--tokenizer-model | 配合指定分词器模型的路径,路径具体到tokenizer.model文件 | |
--output-prefix | 转换后输出的数据集文件的文件名前缀 | ✅ |
--workers | 多进程数据集处理 | ✅ |
4.4 预训练任务启动
完成了数据集处理和权重转换之后,可以开始拉起预训练任务,在仓库examples/mcore下放置了支持模型的文件夹,其中有对应功能的脚本,其中预训练脚本的命名为:pretrain_xxx_xx.sh
配置预训练参数
# vi examples/mcore/qwen25/pretrain_qwen25_7b_32k_ptd.sh 打开示例脚本
# 单机配置如下
NPUS_PER_NODE=8 # 使用单节点的8卡NPU
MASTER_ADDR=locahost # 以本节点ip地址为master_ip
MASTER_PORT=6000 # 本节点端口号为6000
NNODES=1 # 单机,即一台节点,多机即多节点
NODE_RANK=0 # 单机RANK为0,多机为(0,NNODES-1),不同节点不可重复
WORLD_SIZE=$(($GPUS_PER_NODE * $NNODES))
# 根据实际情况配置权重保存、权重加载、词表、数据集路径
CKPT_LOAD_DIR="./model_weights/qwen2.5_mcore/" # 权重加载路径,填入权重转换时保存的权重路径
CKPT_SAVE_DIR="./ckpt/qwen25-7b" # 训练完成后的权重保存路径
DATA_PATH="./dataset/alpaca_document" # 数据集路径,填入数据预处理时保存的数据路径
TOKENIZER_PATH="./model_from_hf/qwen2.5-7b-hf/" # 词表路径,填入下载的开源权重词表路径
TP=1 # 权重转换设置--target-tensor-parallel-size 1,修改为1
PP=4 # 权重转换设置--target-pipeline-parallel-size 4,修改为4
SEQ_LEN=4096 # 修改seq_length为4096
MBS=1 # 设置micro-batch-size为1
GBS=64 # 设置global-batch-size为64
启动预训练
# 初始化环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
# 启动预训练脚本
bash examples/mcore/qwen25/pretrain_qwen25_7b_32k_ptd.sh
参数解析
脚本中特性包含训练参数也包含优化特性,如下部分参数解释
参数名 | 说明 |
---|---|
--use-mcore-models | 使用mcore分支运行模型 |
--disable-bias-linear | 去掉linear的偏移值,与qwen原模型一致 |
--add-qkv-bias | 增加Q、K、V的偏移值,是权重的组成部分 |
--group-query-attention | 开启GQA注意力处理机制 |
--num-query-groups 4 | 配合GQA使用,设置groups为4 |
--position-embedding-type rope | 位置编码采用rope方案 |
--untie-embeddings-and-output-weights | 根据原模型要求将output层和embedding层的权重解耦 |
--bf16 | 昇腾芯片对BF16精度支持良好,可显著提升训练速度 |
4.5 启动多机预训练任务
如果需要启动多机预训练任务,那么在单机预训练脚本的基础上
配置预训练参数
# vi examples/mcore/qwen25/pretrain_qwen25_7b_32k_ptd.sh 打开示例脚本
# 单机配置如下
NPUS_PER_NODE=8 # 同单机
MASTER_ADDR=${master_ip} # 参与多机训练的节点都配置为master_ip
MASTER_PORT=6000 # 本节点端口号为6000
NNODES=1 # 根据参与节点数量配置
NODE_RANK=0 # 多机为(0,NNODES-1),不同节点不可重复,master_node rank为0,其ip为master_ip
WORLD_SIZE=$(($GPUS_PER_NODE * $NNODES))
# 参与节点都要有如下数据
CKPT_LOAD_DIR="./model_weights/qwen2.5_mcore/"
CKPT_SAVE_DIR="./ckpt/qwen25-7b"
DATA_PATH="./dataset/alpaca_document"
TOKENIZER_PATH="./model_from_hf/qwen2.5-7b-hf/"
注意:
- 多机训练需在多个终端同时启动预训练脚本(每个终端的预训练脚本只有NODE_RANK参数不同,其他参数均相同)
- 如果使用多机训练,且没有设置数据共享,需要在训练启动脚本中增加
--no-shared-storage
参数,设置此参数之后将会根据布式参数判断非主节点是否需要load数据,并检查相应缓存和生成数据
第5章 模型微调
5.1 核心目标
通过预训练获得一份训练充分的权重,微调时基于同配置加载预训练完成后保存的权重,进行下一步的微调,在这里我们可以继续使用hfmcore转换的mg权重,完成模型微调,包含步骤如下:
- 微调数据集处理;
- 脚本配置并启动微调。
5.2 微调数据集处理
当前仓库支持的微调数据集风格有如下几种,点击链接可调节对应处理的具体数据集和预处理方法。
执行预训练数据集转换
如下以alpaca数据集为例,进行微调数据集转换示例。 在MindSpeed LLM目录下运行以下命令:
bash examples/mcore/qwen25/data_convert_qwen25_instruction.sh
data_convert_qwen25_instruction.sh中的配置需做如下修改:
# 请按照您的真实环境修改 set_env.sh 路径
source /usr/local/Ascend/ascend-toolkit/set_env.sh
mkdir ./finetune_dataset
python ./preprocess_data.py \
--input ./dataset/train-00000-of-00001-a09b74b3ef9c3b56.parquet \
--tokenizer-name-or-path ./model_from_hf/qwen2.5-7b-hf/ \
--output-prefix ./finetune_dataset/alpaca \
--handler-name AlpacaStyleInstructionHandler \
--tokenizer-type PretrainedFromHF \
--workers 4 \
--log-interval 1000 \
--prompt-type qwen
# --map-keys '{"prompt":"instruction","query":"input","response":"output"}' # 默认值,可不传
参数解析
参数 | 说明 | 必填 |
---|---|---|
--input | 支持输入数据集目录或文件,目录则处理全部文件, 支持.parquet、.csv、.json、.jsonl、.txt、.arrow格式,同一目录要求数据格式保持一致 | ✅ |
--tokenizer-type | 说明使用tokenizer类别,参数值为PretrainedFromHF时,词表路径填写模型目录即可 | ✅ |
--tokenizer-name-or-path | 配合tokenizer-type,目标模型的tokenizer原数据文件夹,用于数据集的转换 | |
--handler-name | 微调数据风格,支持从数据集中提取目标数据,一般与--map-keys 配合使用 | ✅ |
--prompt-type | 以模型匹配的微调模板进行训练,让模型获得更好的微调效果 | ✅ |
--map-keys | 用于配置字段映射来使用数据集 | ✅ |
--output-prefix | 转换后输出的数据集文件的文件名前缀 | ✅ |
5.3 微调任务启动
获取微调的权重和数据集后,可进行任务拉起。
- 通过微调数据集处理获取匹配的数据集
- 通过权重转换或者预训练存储权重,获取用于微调的权重,部分模型会把微调权重发布在开源模型社区,模型后缀带有instruct。
配置微调参数
# vi examples/mcore/qwen25/tune_qwen25_7b_4k_full_ptd.sh 打开示例脚本
# 根据实际情况配置权重保存、权重加载、词表、数据集路径
CKPT_LOAD_DIR="./model_weights/qwen2.5_mcore/" # 权重加载路径,填入权重转换时保存的权重路径
CKPT_SAVE_DIR="./ckpt/qwen25-7b-finetune" # 训练完成后的权重保存路径
DATA_PATH="./finetune_dataset/alpaca" # 数据集路径,这里没有后缀,与预训练不同
TOKENIZER_PATH="./model_from_hf/qwen2.5-7b-hf/" # 词表路径,填入下载的开源权重词表路径
TP=1 # 权重转换设置--target-tensor-parallel-size 1,修改为1
PP=4 # 权重转换设置--target-pipeline-parallel-size 4,修改为4
SEQ_LEN=4096 # 修改seq_length为4096
MBS=1 # 设置micro-batch-size为1
GBS=64 # 设置global-batch-size为64
启动微调训练
在MindSpeed-LLM目录下运行以下命令
# 初始化环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
# 启动预训练脚本
bash examples/mcore/qwen25/tune_qwen25_7b_4k_full_ptd.sh
参数解析
参数名 | 说明 |
---|---|
--finetune | 设置微调flag,从第一步开始运行模型,而不是走权重中的epoch开始断点续训 |
--stage sft | 设置当前为微调任务 |
--is-instruction-dataset | 指定为微调数据集,避免走预训练数据链路 |
--variable-seq-lengths | 动态序列长度,根据实际帧数据长度进行微调训练 |
第6章 常见问题与解决办法
问题1:训练日志显示"Checkpoint path not found"?
→ 检查CKPT_LOAD_DIR
是否指向正确的权重转换后路径,确认文件夹内包含.ckpt
或.bin
文件。
问题2:显示数据集加载out of range?
→ 微调脚本,没有读取到数据集,请检查DATA_PATH是否符合上面示例的规范。
问题3:训练脚本拉起失败?
→ 检查有无source,检查是否有进程残留,未清理干净。
问题4:没有生成运行日志文件?
→ 需要自行创建logs文件夹。
加入昇腾开发者生态
- 🌐 社区资源:访问昇腾开源社区获取最新模型支持
- 📈 性能优化:参考MindSpeed Profiling分析瓶颈
- 💡 定制需求:通过
model_cfg.json
扩展自定义模型
附:本教程成果速查表
步骤 | 成功标志 | 验证命令 |
---|---|---|
模型权重转换 | 生成mcore权重 | ls model_weights/ |
数据集处理 | 生成预训练数据集和微调数据集 | ls dataset; ls finetune_dataset |
模型预训练 | 预训练日志中Loss持续下降 | |
模型微调 | 微调日志中loss稳定下降 |
通过本教程,您已掌握MindSpeed LLM的基础技能,能够正常使用仓库的模型功能,无论是训练现有模型,还是进行微调优化,都有一定的基础。下一步可以尝试更深入理解脚本特性和仓库,实现模型优化,或探索MOE混合专家模型的前沿应用!