** 清华大学的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数据集为jsonl
python cover_alpaca2jsonl.py \
--data_path data/alpaca_data.json \
--save_path data/alpaca_data.jsonl \
生成tokenization
python 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算法小屋 获取更多最新大语言模型论文和代码