ChatGLM2-6B 微调改变AI自我认知
一、前言
上篇说到ChatGLM2-6B及百川大模型的本地部署实战,实际商业项目中可能还需要在此基础上对模型进行相关微调再进行应用。本篇文章带大家微调入门教学。
注意:当前为AI技术高速发展期,技术更新迭代快,本文章仅代表作者2023年8月的观点。
上篇文章:ChatGLM2-6B清华开源本地部署
二、微调依赖项目
https://github.com/hiyouga/ChatGLM-Efficient-Tuning
三、数据集准备
1、在项目的/data目录下,复制一份self_cognition.json,改为train001_cognition.json
instruction是问题,output是回答
2、更改dataset_info.json文件,新增刚才的文件索引
四、开始训练
1、还是先安装相关依赖:pip install -r requirements.txt
2、采用lora微调模型,设置数据集dataset,更改模型地址--model_name_or_path,执行该sh
3、测试
4.输出微调后模型
会默认输出到项目文件夹的model目录
五、其他
1、建议使用conda虚拟环境
2、该微调不支持ChatGLM2-int4,否则会报错:ValueError: Target module QuantizedLinear() is not supported. Currently, only `torch.nn.Linear` and `Conv1D` are supported.
3、各种环境的版本要能匹配上,否则会出现各种奇怪的问题
4、torch一定是GPU模式,而不是cpu,即torch.cuda.is_available()=true
5、也可使用网页版进行微调配置,python src/train_web.py
6、切换数据集重新训练要清空output文件夹和C:\Users\A\.cache\huggingface文件夹
7、要持续学习各项微调的参数,防止过拟合,loss要稳定下降,不能为0,到0.1左右是比较合适的