一种平价的chatgpt实现方案,基于清华的 ChatGLM-6B + LoRA 进行finetune.(ai

** 清华大学的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个小时就微调完了



上面两个训练产生的结果

需要更多的中文训练数据,私信我,加交流群

本文链接:https://my.lmcjl.com/post/6265.html

展开阅读全文

4 评论

留下您的评论.