MindSpeed-LLM模型部署案例:DeepSeek-R1-Distill-Qwen-1.5B微调

工作目录介绍

总体目录

添加图片注释,不超过 140 字(可选)

DeepSeek-R1-Distill-Qwen-1.5B:模型文件,包括权重、词表、配置文件等

MindSpeed-LLM:实操目录

mstt:性能调优工具

MindSpeed-LLM目录

添加图片注释,不超过 140 字(可选)

  • 手动创建 dataset:微调数据集目录 model_weight:权重转换输出目录 ckpt:微调训练权重保存目录 profile_dir:性能分析数据输出目录 还需要再创建一个logs目录用来保存日志

  • MindSpeed-LLM仓库自带

example:模型任务脚本目录

example目录

添加图片注释,不超过 140 字(可选)

legacy:以功能维护为主,不继续演进

mcore:为当前主要演进分支,推荐使用。Mcore相较于Legacy,采用更加解耦和模块化的设计,提供更灵活的接口和底层功能,特别适合需要自定义训练过程的用户。

mcore目录

该目录为所有已经完成适配的模型任务脚本目录

添加图片注释,不超过 140 字(可选)

目标模型任务脚本目录

添加图片注释,不超过 140 字(可选)

data_convert_distill_qwen_instruction.sh:微调数据集预处理脚本

ckpt_convert_distill_qwen_hf2mcore.sh:huggingface到mcore权重格式转换脚本

ckpt_convert_distill_qwen_mcore2hf.sh: mcore到huggingface权重格式转换脚本

tune_distill_qwen_1point5b_full.sh:微调训练脚本

generate_distill_qwen_1point5b.sh:推理脚本

微调数据集处理

微调数据集准备

添加图片注释,不超过 140 字(可选)

设置微调数据集预处理脚本参数

修改data_convert_distill_qwen_instruction.sh中的参数

添加图片注释,不超过 140 字(可选)

注意:红框中的路径为示例,需要按照本地实际路径修改上面三个参数

--input:2.1节中下载的微调数据集保存路径

--tokenizer-name-or-path:模型词表的保存路径

--output-prefix:数据集处理后的保存路径

在本实验环境中,参数修改后为:

添加图片注释,不超过 140 字(可选)

执行微调数据集预处理脚本

bash ./examples/mcore/deepseek_r1_distill_qwen/data_convert_distill_qwen_instruction.sh

注意:脚本的执行路径应为MindSpeed-LLM目录下,即/home/test/MindSpeed-LLM

数据集处理结果确认

查看./finetune_dataset目录下的输出文件:

添加图片注释,不超过 140 字(可选)

常见问题

环境问题

报错信息:

添加图片注释,不超过 140 字(可选)

解决方法:

export LD_PRELOAD=$LD_PRELOAD:/usr/local/lib/python3.8/dist-packages/sklearn/__check_build/../../scikit_learn.libs/libgomp-d22c30c5.so.1.0.0

路径问题

实际操作过程中多数问题为路径设置有误,请自行排查。

hf2mcore权重转换

权重准备

设置权重转换脚本参数

修改ckpt_convert_distill_qwen_hf2mcore.sh中的参数

添加图片注释,不超过 140 字(可选)

注意:红框中的参数设置为示例,需要按照实际环境修改

--target-tensor-parallel-size:TP并行策略

--target-pipeline-parallel-size:PP并行策略

--load-dir:huggingface权重加载目录

--save-dir:权重转换输出目录

--tokenizer-model:词表保存路径

在本实验环境中,参数修改后为:

添加图片注释,不超过 140 字(可选)

注意:TP*PP的值要与NPU卡的数量一致,本环境中只占用一张卡,故TP/PP都设置为1

执行权重转换脚本

bash ./examples/mcore/deepseek_r1_distill_qwen/ckpt_convert_distill_qwen_hf2mcore.sh

执行成功:

添加图片注释,不超过 140 字(可选)

查看权重转换结果

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

自行尝试

TP、PP分别设置不同的组合查看权重输出结果?以及对后续微调训练的影响?

常见问题

修改TP、PP的值、重新生成权重之前,最好把之前已经生成的权重文件删除掉,避免后续训练时加载错误。

模型微调训练

微调数据集准备

同2.1章节

权重准备

权重即为3.4章节中转换输出结果:

设置微调训练脚本参数

修改tune_distill_qwen_1point5b_full.sh中的参数,修改如下:

添加图片注释,不超过 140 字(可选)

NPUS_PER_NODE:使用服务器中NPU卡的数量,本此只占用一张卡,故设置为1

CKPT_LOAD_DIR:初始权重加载路径,即第三章中权重转换后的输出路径

CKPT_SAVE_DIR:微调训练后权重的保存路径,用于后续推理

DATA_PATH:微调训练所需数据集路径,即第二章中数据集处理后的输出路径(注意:数据集路径一定要带alpaca后缀)

TOKENIZER_PATH:词表路径

TP/PP设置保持与第三章中权重转换一致

添加图片注释,不超过 140 字(可选)

--train-iters:训练步长,本次实验只为了演示效果,故设置较小。

执行微调训练脚本

bash ./examples/mcore/deepseek_r1_distill_qwen/tune_distill_qwen_1point5b_full.sh

查看微调训练结果

查看训练日志,关注loss值的变化:

添加图片注释,不超过 140 字(可选)

查看权重是否成功保存:

添加图片注释,不超过 140 字(可选)

常见问题

NPUS_PER_NODE设置有误

NPUS_PER_NODE设置为8,报错如下:

添加图片注释,不超过 140 字(可选)

DATA_PATH设置有误

DATA_PATH设置为:"./finetune_dataset/",报错如下:

添加图片注释,不超过 140 字(可选)

TP/PP设置有误

TP/PP设置与权重转换时不一致,影响推理效果。

推理

权重准备

权重为4.5节中训练后保存的权重。

设置推理脚本参数

修改generate_distill_qwen_1point5b.sh中的参数,修改如下:

添加图片注释,不超过 140 字(可选)

CHECKPOINT:权重加载路径,即第4.5章节中微调训练后的权重输出路径

其它参数与微调训练一致。

执行推理脚本

bash ./examples/mcore/deepseek_r1_distill_qwen/generate_distill_qwen_1point5b.sh

添加图片注释,不超过 140 字(可选)

推理对话

添加图片注释,不超过 140 字(可选)

常见问题

推理如果出现乱码,大概率是因为权重问题,请排查权重转换时是否将之前生成的权重删除干净。

mcore2hf权重转换

权重准备

权重为4.5节中训练后保存的权重。

设置权重转换脚本参数

修改ckpt_convert_distill_qwen_mcore2hf.sh中的参数,修改如下:

添加图片注释,不超过 140 字(可选)

执行权重转换脚本

bash ./examples/mcore/deepseek_r1_distill_qwen/ckpt_convert_distill_qwen_mcore2hf.sh

添加图片注释,不超过 140 字(可选)

查看权重转换结果

添加图片注释,不超过 140 字(可选)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值