下面是在虚拟机下进行XTuner 微调实践微调的笔记。
一、前置知识
XTuner 是由 InternLM 团队开发的一款高效、灵活且功能全面的大语言模型和多模态图文模型(VLM)微调工具包(安装详情:https://xtuner.readthedocs.io/zh-cn/latest/)。
HuggingFace格式文件是Hugging Face开源平台上的模型和数据集所使用的文件格式,主要分为模型文件、配置文件、分词器文件和数据集文件等类型,实验中会遇到。
二、实验过程
1.输入命令xtuner list-cfg查看是否安装了xtuner,接下来可以按照官网进行以下两步修改提供的数据:
· 创建一个新的文件夹用于存储微调数据
· 创建修改脚本,执行并查看数据

2.进行来进行模型的训练及微调,可以通过以下基本完成:
· bash中输入xtuner copy-cfg internlm2_5_chat_7b_qlora_alpaca_e3 ./获取config,修改如
pretrained_model_name_or_path = '/root/finetune/models/internlm2_5-7b-chat'等参数。

· 运行命令xtuner train ./config/internlm2_5_chat_7b_qlora_alpaca_e3_copy.py --deepspeed deepspeed_zero2 --work-dir ./work_dirs/assistTuner进行训练。

图中显示了一些训练日志,这些日志显示了训练过程中的一些关键指标,如学习率(lr)、预计剩余时间(eta)、时间(time)、数据加载时间(data_time)、内存使用(memory)和损失(loss),随着时间的增加,训练的损失将会降低,如下为相关解释:
Iter(train) [10/864] 表示当前是第 10 次迭代,总共有 864 次迭代。
lr: 7.5001e-05 表示当前的学习率。
eta: 2:01:02 表示预计剩余时间为 2 小时 1 分 2 秒。
time: 8.5042 表示当前迭代的耗时。
data_time: 0.0088 表示数据加载的耗时。
memory: 11730 表示当前的内存使用量。
loss: 1.5743 表示当前的损失值。
3.进行权重转换,使用 xtuner convert pth_to_hf 命令(完整如下
xtuner convert pth_to_hf ./internlm2_5_chat_7b_qlora_alpaca_e3_copy.py ${pth_file} ./hf)来进行模型格式转换,转换后的格式如下:

对于 LoRA 或者 QLoRA 微调出来的模型其实并不是一个完整的模型,而是一个额外的层(Adapter),训练完的这个层最终还是要与原模型进行合并才能被正常的使用。接着进行模型合并命令xtuner convert merge,其三个参数:LLM 表示原模型路径,ADAPTER 表示 Adapter 层的路径, SAVE_PATH 表示合并后的模型最终的保存路径。这一步请保证有足够的算力支撑,否则可能会保错,下为截图:

4.测试,修改脚本文件运行xtuner_streamlit_demo.py,model_name_or_path = "/root/finetune/work_dirs/assistTuner/merged"观察微调后的结果,首次登陆需要加载一些时间,其中如果无法进入使用本地ssh映射。


1021

被折叠的 条评论
为什么被折叠?



