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
到此结束