笔记
XTuner 是一个大语言模型和多模态模型微调工具箱,由 MMRazor 和 MMDeploy 联合开发。
🤓 傻瓜化:以配置文件的形式封装了大部分微调场景,即使是零基础的非专业人员也能轻松开始微调。
🍃 轻量级:对于参数量为 7B 的LLM,微调所需的最小显存仅为 8GB,适用于消费级显卡和colab环境。
作业
微调过程
1. 配置环境
训练自己的小助手认知
使用conda创建python虚拟环境并安装依赖包
```bash
conda create -n xtuner0.1.17 python==3.10 -y
conda activate xtuner0.1.17
mkdir -p /root/xtuner0117 && cd /root/xtuner0117
# 拉取 0.1.17 的版本源码
git clone -b v0.1.17 https://github.com/InternLM/xtuner
cd /root/xtuner0117/xtuner
# 从源码安装 XTuner
pip install -e '.[all]'
2. 前期准备
2.1 数据集准备
首先创建一个文件夹来存放这次训练所需要的所有文件。
# 创建一个文件夹,进入该文件夹。
mkdir -p /root/ft && cd /root/ft
# 在ft这个文件夹里再创建一个存放数据的data文件夹
mkdir -p /root/ft/data && cd /root/ft/data
之后在 data 目录下新建一个 generate_data.py 文件。
# 创建 `generate_data.py` 文件
touch /root/ft/data/generate_data.py
接着,运行 generate_data.py 文件生成数据集。
# 确保先进入该文件夹
cd /root/ft/data
# 运行代码
python /root/ft/data/generate_data.py
2.2 模型准备
准备好了数据集后,接下来准备用于微调的模型。使用 InternLM 最新推出的小模型 InterLM-chat-1.8B。
mkdir -p /root/ft/model
# 创建符号链接
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/ft/model
2.3 配置文件选择
选择一个最匹配的配置文件并对其进行调整以满足实际训练要求。
# 创建一个存放 config 文件的文件夹
mkdir -p /root/ft/config
# 复制配置文件到指定位置
xtuner copy-cfg internlm2_1_8b_qlora_alpaca_e3 /root/ft/config
3. 模型训练
使用 deepspeed 来加速训练。选择其中一种类型的 deepspeed。
xtuner train /root/ft/config/internlm2_1_8b_qlora_alpaca_e3_copy.py --work-dir /root/ft/train_deepspeed --deepspeed deepspeed_zero2
4. 模型转换、整合、测试及部署
4.1 模型转换
将模型权重文件转换为 Huggingface 格式。
# 创建一个保存转换后 Huggingface 格式的文件夹
mkdir -p /root/ft/huggingface
# 模型转换
# xtuner convert pth_to_hf ${配置文件地址} ${权重文件地址} ${转换后模型保存地址}
xtuner convert pth_to_hf /root/ft/train/internlm2_1_8b_qlora_alpaca_e3_copy.py /root/ft/train_deepspeed/iter_1676.pth /root/ft/huggingface
4.2 模型整合
对微调出的模型进行整合,与原模型进行组合。
# 创建一个名为 final_model 的文件夹存储整合后的模型文件
mkdir -p /root/ft/final_model
# 进行模型整合
# 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
4.3 与模型进行对话
# 与模型进行对话
xtuner chat /root/ft/final_model --prompt-template internlm2_chat
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1caaac39e69943b4ba198e12da295d54.png)