
ChatGLM-6B微调实践与问题汇总(fine-tune+p-tuning+知识遗忘解决尝试)
1.介绍
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。在模型量化技术的加持下,INT4 量化级别下显存占用不到6G,满足一些消费级显卡部署的需要。
https://github.com/THUDM/ChatGLM-6B.git
本文只涉及对官方仓库中模型参数全量fine-tune和p-tuning方案的复现,以及对p-tuning训练后,模型对旧知识遗忘现象的优化。
训练后,丧失了原有的对话功能的优化可直接调到第5节
2.软硬件环境
硬件平台
cpu:Inter Xeon Gold 6130 x2
GPU:Tesla V100 16G x8
预训练模型
chatglm-6B
数据集
adgen
软件环境
deepspeed==0.9.2
protobuf
transformers==4.28.1(不建议用requirements中的4.27.1版本,不要问我怎么知道的)
cpm_kernels
torch>=1.10
gradio
mdtex2html
sentencepiece
accelerate
rouge_chinese
nltk
jieba
datasets
3.模型与数据集下载
模型
https://huggingface.co/THUDM/chatglm-6b
数据集
下载处理好的 ADGEN 数据集 https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1,将解压后备用。
4.训练
训练操作过程参考https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning/README.md
4.1 fine-tune
脚本:
ds_train_finetune.sh
LR=1e-4
MASTER_PORT=$(shuf -n 1 -i 10000-65535)
deepspeed --num_gpus=4 --master_port $MASTER_PORT main.py \
--deepspeed deepspeed.json \
--do_train \
--train_file AdvertiseGen/train.json \
--test_file AdvertiseGen/dev.json \
--prompt_column content \
--response_column summary \
--overwrite_cache \
--model_name_or_path THUDM/chatglm-6b \
--output_dir ./output/adgen-chatglm-6b-ft-$LR

本文分享了ChatGLM-6B模型在ADGEN数据集上的全量微调与p-tuning实践,解决了知识遗忘问题,并优化了对话功能。
最低0.47元/天 解锁文章
636

被折叠的 条评论
为什么被折叠?



