** 清华大学的chatglm-6b开源模型对话能力虽然能基本满足对话需求,但是针对专业领域和垂直领域回答显得智商捉急,这个时候就需要进行微调来提升效果,但是但是同学们显卡的显存更捉急,这时候一种新的微调方式诞生了,现在大火的ai作画里面的lora训练方式直接应用到微调里面,chatglm-lora方式进行微调** 下面是是教程和注意事项
第一步 下载代码
git clone https://github.com/mymusise/ChatGLM-Tuning.git
cd ChatGLM-Tuning
第二步
下载数据
英文数据链接
需要更多的中文数据,私信我
第三步 配置环境
使用conda创建虚拟环境
python版本3.10.6
我是3090显卡,大家根据自己的卡自行调整配置
pip install -r requirements.txt
第四步 数据预处理
转化alpaca数据集为jsonlpython cover_alpaca2jsonl.py \--data_path data/alpaca_data.json \--save_path data/alpaca_data.jsonl \
生成tokenizationpython tokenize_dataset_rows.py \--jsonl_path data/alpaca_data.jsonl \--save_path data/alpaca \--max_seq_length 200 \ --skip_overlength
–jsonl_path 微调的数据路径, 格式jsonl, 对每行的[‘context’]和[‘target’]字段进行encode
–save_path 输出路径
–max_seq_length 样本的最大长度
第五步 训练模型
python finetune.py \--dataset_path data/alpaca \--lora_rank 8 \--per_device_train_batch_size 6 \--gradient_accumulation_steps 1 \--max_steps 52000 \--save_steps 1000 \--save_total_limit 2 \--learning_rate 1e-4 \--fp16 \--remove_unused_columns false \--logging_steps 50 \--output_dir output
–per_device_train_batch_size 6 为6时候,显存大约是22g多,要是显存不够可以把这个参数调小
–max_steps 52000 \ 控制训练步数,loss没下来,此数值可以改大一点
3090大约使用7个小时就微调完了
上面两个训练产生的结果
加我微信:Lh1141755859 获取chatgpt类对话大模型交流群
关注微信公众号:CV算法小屋 获取更多最新大语言模型论文和代码