赞
踩
此前在视频中介绍了在阿里云上部署、微调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的部署和使用,以后继续给大家分享有趣的东西 作者:Joker大金宝 https://www.bilibili.com/read/cv24931671/ 出处:bilibili
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。