ChatGLM2-6B用自定义数据集lora微调(踩坑)

本文详细描述了如何从GitHub下载并微调ChatGLM-Efficient-Tuning项目,包括下载权重文件、编辑自定义数据集、处理安装依赖及遇到的错误解决方案,最后通过命令行测试微调后的模型。
摘要由CSDN通过智能技术生成

1.租用云平台(featurize)实例从github上下载lora微调项目

!!一定要在github仓库下载!国内其他平台下的不一定是实时更新的!后面会有很多bug!!

!git clone https://github.com/hiyouga/ChatGLM-Efficient-Tuning.git

cd ChatGLM-Efficient-Tuning

!pip install -r requirements.txt

2.在ChatGLM-Efficient-Tuning目录下下载chatglm2-6b 权重文件(为了方便后续理清楚文件路径,统一一下)

!!同下lora微调项目文件一样,选择在huggingface镜像网站下载!!

下载前更改一下载路径:

!pip install -U huggingface_hub

!export HF_ENDPOINT=https://hf-mirror.com

!huggingface-cli download --resume-download --local-dir-use-symlinks False THUDM/chatglm2-6b --local-dir chatglm-6b

3.编辑自己的做的数据集

3.1打开ChatGLM-Efficient-Tuning/data/example_dataset中的.json样例文件进行编辑添加自己想要的对话内容(建议复制一份,再编辑防止修改后格式出问题)

这是编辑好的自定义文件,点击json文件能打开的话,就说明格式没出现错误。

此处注意将新编辑好的自定义数据要放在与dataset_info.json的同级目录。

3.2在dataset_info文件中新加入新编辑的自定义数据集

直接复制上面原有的格式ok,修改一下文件名,其中file_sha1可以不指定。然后再复制一份自定义数据集(hjh3)到上一级目录。

到此就完成了自定义数据集的构建。

4.运行lora微调命令

!CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --model_name_or_path chatglm2-6b \
    --do_train \
    --dataset hjh3 \
    --finetuning_type lora \
    --output_dir checkpoint \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate 5e-5 \
    --num_train_epochs 3.0 \
    --plot_loss \
    --fp16

出现第一次报错:

解决方案:

!pip install trl==0.7.2

继续运行出现第二次报错:

解决方案:

!pip install transformers==4.30.2

继续运行出现第三次报错:

解决方案:

!pip install peft==0.5.0

继续运行第四次报错:

解决方案:自定义的数据集中语料太少导致的,需要加预料。

继续运行,没有报错完美运行!

微调生成的权重文件可以在同级目录下看到。(文件名字是自己定的)到此完成自定义数据集的微调。

5.浏览器或命令行测试微调后的模型

以命令行测试为例:

!python src/cli_demo.py \
    --model_name_or_path path_to_your_chatglm_model \
    --finetuning_type lora \
    --checkpoint_dir path_to_checkpoint

到此结束

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值