赞
踩
本文做清华官方代码包中自带的ptuning微调方式实践。(如下图所见,使用的是int4量化模型)这个可以参照我发布的博文《清华ChatGLM2-6B一键式部署,无需自行安装依赖环境!!》进行快速部署
采用了5条训练数据,训练时长在四个半小时左右,主要参考以下教程进行复现
参考链接:《ChatGLM-6B 部署与 P-Tuning 微调实战》https://mp.weixin.qq.com/s/xSF23H_LHgioU8wfEcjs4A
参考链接:《ChatGLM2微调的学习笔记-2【本地部署+微调】》https://zhuanlan.zhihu.com/p/648923534
文字部分不做过多赘述,下面按步开始介绍:
0、准备数据:train.json、dev.json都用这两条
1、配置train.sh
2、展开P-Tuning V2 微调训练
此处注意的是以依赖包Transformers的版本要求为4.27.1
bash train.sh
这里的注意事项是,是在windows环境下执行了Linux系统的bash指令,安装了git来实现bash指令的调用,安装非常简单,官网上下载安装包就行,但是想要bash能够正常运行,要配置git环境变量!(如下图)配置好了就能正常执行bash指令了
下图为训练过程:
运行了非常久,结果如下:
3、配置evaluate.sh并推理测评
CHECKPOINT 实际就是 train.sh 中的 output_dir。
(我是基于这位作者的文章:https://mp.weixin.qq.com/s/xSF23H_LHgioU8wfEcjs4A进行修改的,不过也根据自己的情况保留了quantization_bit 4,如果你的情况和我一样,可以直接使用我截图上的参数配置。)
bash evaluate.sh
这个运行起来非常快,如下图所示
执行完成后,会生成评测文件(内容如下),评测指标为中文 Rouge score 和 BLEU-4。生成的结果保存在 ./output/adgen-chatglm-6b-pt-32-2e-2/generated_predictions.txt。我们准备了 5 条推理数据,所以相应的在文件中会有 5 条评测数据,labels 是 dev.json 中的预测输出,predict 是 ChatGLM2-6B 生成的结果,对比预测输出和生成结果,评测模型训练的好坏。如果不满意调整训练的参数再次进行训练。
4、部署并使用微调后的模型
模型参数有两个,一个是微调得到的参数,一个是原参数。因为在 P-tuning v2 训练时模型只保存 PrefixEncoder 部分的参数,所以在推理时需要同时加载原 ChatGLM2-6B 模型以及 PrefixEncoder 的权重,因此需要指定对应的参数,并且配置对应的参数:
(我是基于这位作者的文章:https://mp.weixin.qq.com/s/xSF23H_LHgioU8wfEcjs4A进行参数修改的)
bash web_demo.sh
即可使用微调后的模型,使用情况如下图所示:
微调前的效果如下:
结语:
其实一开始也没抱希望说6GB显存的电脑能跑起来微调,因为官方教程上看见的是最低7GB显存即可实现为微调,没想到我6GB的电脑也跑起来了,分享出来,如果里面的哪怕一点内容对你也有帮助的话,那就再好不过了。如有错误或者不合理的地方,欢迎批评指正和指导!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。