ChatGLM-6B使用与微调

  ChatGLM-6B 是一款大型语言模型,具有62亿参数,主要在中英文语料上进行预训练。该模型通过监督式微调和人类反馈学习进行优化,专为快速迭代的预训练和后续训练技术以及数据选择而设计。ChatGLM-6B 在多轮对话、代码生成和综合理解等方面显示出强大的能力。此外,这款模型支持本地部署在消费级显卡上,使用 INT4 量化以降低运算需求,适用于资源受限的环境。ChatGLM-6B 是GLM系列模型的一部分,这一系列模型还包括其他规模和配置的版本,以满足不同的使用需求和场景。

一、ChatGLM-6B的使用

1.1 代码下载

  首先,通过上述Github仓库下载ChatGLM-6B的代码

  或者,通过下述百度网盘链接下载:

链接:https://pan.baidu.com/s/1wT-Ms0LS-DSIRBeBl-jFLw?pwd=hes4 
提取码:hes4

1.2 环境安装

  首先,创建一个新的conda环境,名字为chatglm6b,python版本为3.8:

conda create -n chatglm6b python=3.8

  然后,使用pip安装依赖,其中 transformers 库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可。

pip install -r requirements.txt

1.3 模型下载

  可以通过清华大学网盘下载:https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

  也可以通过Hugging Face网站下载:https://huggingface.co/THUDM/chatglm-6b

  然后,将下载后的模型放到根目录的chatglm-6b文件夹下。

1.4 代码调用

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

二、ChatGLM-6B的微调

  对于 ChatGLM-6B 模型基于 P-Tuning v2 的微调。P-Tuning v2 将需要微调的参数量减少到原来的 0.1%,再通过模型量化、Gradient Checkpoint 等方法,最低只需要 7GB 显存即可运行。

1.1 环境依赖

  运行微调需要4.27.1版本的transformers。除 ChatGLM-6B 的依赖之外,还需要安装以下依赖:

pip install rouge_chinese nltk jieba datasets

1.2 数据集下载

  以ADGEN 数据集为例,任务为根据输入(content)生成一段广告词(summary)。

{
    "content": "类型#上衣*版型#宽松*版型#显瘦*图案#线条*衣样式#衬衫*衣袖型#泡泡袖*衣款式#抽绳",
    "summary": "这件衬衫的款式非常的宽松,利落的线条可以很好的隐藏身材上的小缺点,穿在身上有着很好的显瘦效果。领口装饰了一个可爱的抽绳,漂亮的绳结展现出了十足的个性,配合时尚的泡泡袖型,尽显女性甜美可爱的气息。"
}

  从 Google Drive 下载处理好的 ADGEN 数据集,将解压后的 AdvertiseGen 目录放到本目录下。

1.3 模型训练

  运行以下指令进行训练:

bash train.sh

  为了从本地加载模型,可以将 train.sh 中的 THUDM/chatglm-6b 改为你本地的模型路径。

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓shuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值