XTuner 微调个人小助手认知
1.1 环境安装
成功从源码安装XTuner:
1.2 前期准备
1.2.1 数据集准备
创建python文件、修改、运行
1.2.2 模型准备
配置文件,并修改config文件
1.3 模型训练、模型转换、整合、测试及部署
经过700多轮的训练后,进行模型转换,将原本使用 Pytorch 训练出来的模型权重文件转换为目前通用的 Huggingface 格式文件
模型整合:
- 对于 LoRA 或者 QLoRA 微调出来的模型其实并不是一个完整的模型,而是一个额外的层(adapter)。那么训练完的这个层最终还是要与原模型进行组合才能被正常的使用。
- 而对于全量微调的模型(full)其实是不需要进行整合这一步的,因为全量微调修改的是原模型的权重而非微调一个新的 adapter ,因此是不需要进行模型整合的。
在 XTuner 中也是提供了一键整合的指令,但是在使用前我们需要准备好三个地址,包括原模型的地址、训练好的 adapter 层的地址(转为 Huggingface 格式后保存的部分)以及最终保存的地址。
# 创建一个名为 final_model 的文件夹存储整合后的模型文件
mkdir -p /root/ft/final_model
# 解决一下线程冲突的 Bug
export MKL_SERVICE_FORCE_INTEL=1
# 进行模型整合
# xtuner convert merge ${NAME_OR_PATH_TO_LLM} ${NAME_OR_PATH_TO_ADAPTER} ${SAVE_PATH}
xtuner convert merge /root/ft/model /root/ft/huggingface /root/ft/final_model
如图:模型整合成功
对话测试:
模型被过拟合了,但是已经严重过拟合,回复的话就只有“我是AI小白的小助手,内在时上海AI实验室书生·浦语的1.8B大模型哦”这句话
Web Demo 部署