参考文档:Tutorial/xtuner/personal_assistant_document.md at camp2 · InternLM/Tutorial · GitHub
Tutorial/xtuner/llava/xtuner_llava.md at camp2 · InternLM/Tutorial · GitHub
基础作业:训练自己的小助手认知
首先我们需要先安装一个 XTuner 的源码到本地来方便后续的使用
数据集准备:
模型准备:
假如大家存储空间不足,我们也可以通过以下代码一键通过符号链接的方式链接到模型文件,这样既节省了空间,也便于管理。
# 删除/root/ft/model目录 rm -rf /root/ft/model # 创建符号链接 ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/ft/model
执行上述操作后,/root/ft/model
将直接成为一个符号链接,这个链接指向 /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b
的位置。
这意味着,当我们访问 /root/ft/model
时,实际上就是在访问 /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b
目录下的内容。通过这种方式,我们无需复制任何数据,就可以直接利用现有的模型文件进行后续的微调操作,从而节省存储空间并简化文件管理。
配置文件选择
(注意要提前激活之前配置的XTuner环境,否则后面的步骤无法进行,我就是犯了这个错误)
所谓配置文件(config),其实是一种用于定义和控制模型训练和测试过程中各个方面的参数和设置的工具。准备好的配置文件只要运行起来就代表着模型就开始训练或者微调了。
# 列出所有内置配置文件 # xtuner list-cfg # 假如我们想找到 internlm2-1.8b 模型里支持的配置文件 xtuner list-cfg -p internlm2_1_8b
这里就用到了第一个 XTuner 的工具
list-cfg
,对于这个工具而言,可以选择不添加额外的参数
# 创建一个存放 config 文件的文件夹 mkdir -p /root/ft/config # 使用 XTuner 中的 copy-cfg 功能将 config 文件复制到指定的位置 xtuner copy-cfg internlm2_1_8b_qlora_alpaca_e3 /root/ft/config
这里我们就用到了 XTuner 工具箱中的第二个工具
copy-cfg
,该工具有两个必须要填写的参数{CONFIG_NAME}
和{SAVE_PATH}
配置文件修改:(修改后的代码)
模型训练:
常规训练:我们准备好了配置文件好,我们只需要将使用 xtuner train
指令即可开始训练。
# 指定保存路径
xtuner train /root/ft/config/internlm2_1_8b_qlora_alpaca_e3_copy.py --work-dir /root/ft/train
训练时间较长(我在这里等待了将近二十分钟)真的很慢!!!
使用 deepspeed 来加速训练(可以发现训练的速度明显加快)
# 使用 deepspeed 来加速训练
xtuner train /root/ft/config/internlm2_1_8b_qlora_alpaca_e3_copy.py --work-dir /root/ft/train_deepspeed --deepspeed deepspeed_zero2
进阶作业:复现多模态微调
启动30%资源配置的开发机,激活之前安装好的XTuner环境
修改llava_internlm2_chat_1_8b_qlora_clip_vit_large_p14_336_lora_e1_gpu8_finetune_copy.py
文件
开始微调:
cd /root/tutorial/xtuner/llava/
xtuner train /root/tutorial/xtuner/llava/llava_internlm2_chat_1_8b_qlora_clip_vit_large_p14_336_lora_e1_gpu8_finetune_copy.py --deepspeed deepspeed_zero2
微调前只会给图像打标题
微调后可以回答用户的各种问题: