A20a_昇腾MindSpeed LLM训练和微调Qwen2.5

基于昇腾MindSpeed LLM训练和微调Qwen2.5

作者:MindSpeed LLM组,GTS IT产品技术部,瑾丞

目 录

  1. 概述
  2. 环境准备
  3. 获取与准备模型
  4. 配置启动模型预训练
  5. 配置与启动指令微调
  6. 常见问题与解决办法

(这是昇腾知识体系的配套预览材料,转载随意,如反馈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 驱动固件安装

下载驱动固件,请根据系统和硬件产品型号选择对应版本的driverfirmware下载到本地并上传到服务器任意目录,驱动固件下载示意图如下:

参考安装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,请根据根据系统选择aarch64x86_64对应版本的cann-toolkitcann-kernelcann-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_npuapex,参考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-hfhuggingface模型类别,默认为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混合专家模型的前沿应用!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值