XTuner 微调实践微调笔记

下面是在虚拟机下进行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映射。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值