欢迎光临散文网 会员登陆 & 注册

在阿里云部署、微调chatGLM,配置langchain chatGLM2的过程

2023-07-11 12:21 作者:Joker大金宝  | 我要投稿

此前在视频中介绍了在阿里云上部署、微调chatGLM、chatGLM2、langchain chatGLM2的过程,这里概述部署过程以便大家参考

视频地址:

在阿里云上部署chatGLM-6B:https://www.bilibili.com/video/BV1K14y1m7Hu

在阿里云上微调chatGLM-6B:https://www.bilibili.com/video/BV15s4y1c7QW

在阿里云上部署chatGLM2和langchain chatGLM2:https://www.bilibili.com/video/BV1EW4y1f7GA

先领取阿里云机器学习平台的免费使用资格

创建机器学习平台,若是首次申请试用应该直接带你去了机器学习界面,则可跳过此步

打开交互式建模

创建实例

配置实例名称、选择GPU规格,我选择NVIDA V100这款(我不确定以后有哪些可选的规格,原则上只要显存够大都可以)

镜像这里选择的是pytorch:1.12-gpu-py39-cu113-ubuntu20.04

而数据集和专用网络没有设置,也不影响后面的测试,尝试添加过专用网络但是会提示资源暂时不足

等待实例初始化,待实例初始化完毕后,打开实例

进入terminal终端

更新git-lfs

apt-get update

apt-get install git-lfs

这里极容易报错,如果报错就初始化git

git init

git lfs install

下载chatGLM-6B源代码

git clone https://github.com/THUDM/ChatGLM-6B.git

进入chatGLM-6B文件夹,安装chatGLM的依赖

pip install -r requirements.txt

创建model文件夹

cd ChatGLM-6B

mkdir model

cd model

下载模型文件

git clone https://huggingface.co/THUDM/chatglm-6b

如果显存不够也可下载量化后的模型

git clone https://huggingface.co/THUDM/chatglm-6b-int4

修改web_demo.py里的模型路径

将模型路径改程自己的chatGLM路径,这里我改成model/chatGLM-6B

启动web_demo:python web_demo.py

顺利即可弹出对话网页,也亦可使用cli_demo或api_demo进行终端对话或创建api


微调过程

准备语料或下载官方语料(官方语料下载地址:https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1

上传语料,可传至ptuning文件夹

打开train.sh文件

将train_file,validation_file值改为自己的训练语料和推断语料,我这里都是train.json

若train.json放在其他目录下则补齐相对路径

修改model_name_or_path为自己chatGLM模型的路径,我的是../model/chatglm-6b

修改per_device_train_batch_size为自己的显存大小,这里设成16

修改训练步长,我这里将max_steps改为500,将save_steps改为50

修改上方的python3为python

其它保持默认即可,当然感兴趣也可以研究着改

保存文件(ctrl + s)

在terminal里定位到ptuning文件夹

cd ChatGLM-6B

cd ptuning

然后调用train.sh开始训练

bash train.sh(此步会提示几个没装的依赖,提示什么就pip install什么即可)

装好依赖后再执行bash train.sh,开始训练

等待训练完毕,训练完毕后可检查output里的checkpoint文件夹已经生成了bin文件

此时可进行推断,修改ptuning里的evaluate.sh文件

将python3改为python

将validation_file和test_file改为自己的训练语料和推断语料,我这里都是train.json

修改model_name_or_path为chatGLM原本的模型路径../model/chatglm-6b \

修改STEP为自己的步长,如训练时没修改步长则不需要动,我这里将其改为500

确认CHECKPOINT和自己output里生成的文件夹名称一致

保存文件(ctrl + s)

进入terminal界面,执行

bash evaluate.sh

会得到推断的结果,可用来对训练出的模型进行评估

接下来加载训练的模型,打开web_demo.sh文件

修改python3为python

将model_name_or_path改为原本的大模型所在的路径,

我这里是../model/chatglm-6b

将ptuning_checkpoint改为自己训练得到的模型路径

我这里是output/adgen-chatglm-6b-pt-128-2e-2/checkpoint-500

然后保存文件(ctrl + s)

进入terminal界面,执行

bash web_demo.sh

顺利则已经弹出对话界面,此时可与微调后的模型对话

在前面阿里云上部署chatGLM2和langchain chatGLM2

与部署chatGLM一样先安装

安装并初始化git-lfs(若在前面的机器上部署则无需此步)

apt-get update

apt-get install git-lfs

git init

git lfs install

l然后oad chatGLM2源文件

git clone https://github.com/THUDM/ChatGLM2-6B.git

然后安装其依赖

cd ChatGLM2-6B

pip install -r requirements.txt

然后新建个目录用来下载模型文件,若连接不到huggingface则需多试几次

mkdir model

cd model

git clone https://huggingface.co/THUDM/chatglm2-6b

然后配置web_demo中模型的路径

接着运行配置好的web_demo.py

顺利则已打开chatGLM2的网页对话

接下来开始部署langchain chatGLM2

可在terminal里按(ctrl + c)结束当前任务,

接着返回到顶层,下载langchain chatGLM的源代码

git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git

接着进入下载好的langchain-ChatGLM,下载embedding模型,langchain chatGLM默认的是text2vec模型,而闻达这里则推荐m3e模型,大家可以多做些尝试

cd langchain-ChatGLM

git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese

返回langchain chatGLM最上层的目录,安装其依赖

pip install -r requirements.txt

接着配置config文件夹里的model_config.py,设置chatGLM2和text2vec的模型路径

把LLM_MODEL也改程chatGLM2-6B

我这里打开了LOAD_IN_8BIT以量化方式加载模型,否则V100的显卡有些不够用

接着运行webui.txt

python webui.txt

因为开启了量化,会报错,要求安装以下两个以来,根据提示先后安装即可

pip install accelerate

pip install bitsandbytes

接着再运行python webui.txt即可打开langchain chatGLM2的界面

可以与LLM模型对话,也可加载知识库,加载bing

另有朋友反应此时会出现

ValueError: If you want to offload some keys to `cpu` or `disk`, you need to set `llm_int8_enable_fp32_cpu_offload=True`.

的错误,我没有出现,可能是GPU出现了问题,可以重启一下机器试试,我联系同志时问题已解决,我感觉可能是这个问题

至此,我们完成了chatGLM的部署、微调、chatGLM2的部署以及langchain chatGLM2的部署和使用,以后继续给大家分享有趣的东西


在阿里云部署、微调chatGLM,配置langchain chatGLM2的过程的评论 (共 条)

分享到微博请遵守国家法律