阿里开源大模型通义千问Qwen进行训练
训练包括全参数训练和微调。这里主要针对微调进行说明。这里首先运行成功一个官网的案例
官网地址:https://github.com/QwenLM/Qwen2.5
看官网代码中,位置:Qwen2.5-main\examples\llama-factory,同时看 “finetune-zh.md”,里面有详细说明,但是部分说明细节不够,下面同时进行说明。
**前置条件**:已经实现“使用阿里开源大模型通义千问Qwen进行推理”
使用阿里开源大模型通义千问Qwen进行推理-CSDN博客
(1)激活虚拟环境
conda activate qwen25_env
此虚拟环境下已经可以使用大模型进行推理,看前置条件说明。
(2)下载并安装LLaMA-Factory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
运行llamafactory-cli version显示如下,成功
(3)拷贝qwen2-7b-qlora-sft.yaml训练配置文件到LLaMA-Factory目录
为了先快速测试,先测试qlora训练,qwen2-7b-qlora-sft.yam
在https://github.com/QwenLM/Qwen2.5下载的例子examples/llama-factory目录中
当然不拷贝也可以,如果不拷贝,需要指定qwen2-7b-qlora-sft.yaml的相对或绝对路径
(4)修改qwen2-7b-qlora-sft.yaml三个位置
模型路径,数据集名字,输出路径
(5)dataset_info.json中配置数据集
LLaMA-Factory/data/dataset_info.json中配置数据集的名字和一些属性,例子已经配置好了,这里使用identity,一个模型自我认知的数据集
(6)数据集identity.json部分内容展示
里面的name和author可以根据需要替换成你需要的名字和作者。比如名字可以是“Tom”,作者可以是“Qwen”,可以替换后训练
(7)训练命令在LLaMA-Factory目录下执行
QLoRA训练:
cd /home/lyp/qwen2.5/LLaMA-Factory/
llamafactory-cli train qwen2-7b-qlora-sft.yaml
如果报错:
按照提示,虚拟环境下安装即可
pip install bitsandbytes>=0.39.0
重新运行成功
llamafactory-cli train qwen2-7b-qlora-sft.yaml
(8)合并:配置文件qwen2-7b-merge-lora.yaml也拷贝到LLaMA-Factory目录
当然在命令行直接指定qwen2-7b-merge-lora.yaml的相对或绝对路径也可以
(9)修改qwen2-7b-merge-lora.yaml配置文件
三个位置,原来模型路径,训练后增量模型目录,输出合并后目录
(10)LLaMA-Factory目录下执行合并
cd /home/lyp/qwen2.5/LLaMA-Factory/
llamafactory-cli export qwen2-7b-merge-lora.yaml
(11)使用合并模型预测代码
里面的提示语prompt可以修改为hi或hello等,看看与训练文件数据的结果是否一致,经过测试是一致的。
(12)更多可以测试的训练数据集
看数据集配置文件:LLaMA-Factory/data/dataset_info.json,里面配置好的很多都有数据集可以测试。目录LLaMA-Factory/data下面,json结尾的都是可以测试的数据集。
(13)如何训练自己的垂直业务来微调大模型
最简单的一个方案,看(12)更多可以测试的训练数据集,观察分析里面的数据集类型,看看哪一种数据模式和自己的垂直业务最接近,直接模仿设置你自己的数据集替代即可。
(14)训练模式选择
全量参数训练需要GPU资源和性能比较高,一般个人和小企业使用较少。通常先尝试LoRA 和QLoRA两个方法,QLoRA训练需要的显存更少。至于那个方法更好,需要经过实验来验证。
机器学习原理与实践
https://www.bilibili.com/cheese/play/ss27274
优质课程,试听课一定听听,100%好评至今。
版权归原作者 云博士的AI课堂 所有, 如有侵权,请联系我们删除。