ChatGLM-6B云服务器部署(以恒源云为例)
写在前面:
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数,使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。由于其对显存硬件要求较高(详见下图),对于硬件配置较低的使用者不太友好,因此可尝试部署在云端,以此实现低配高效。
一、下载源码和模型
源码:https://github.com/THUDM/ChatGLM-6B
将模型文件放入chatglm_6b的文件夹内
然后将两个文件夹压缩成zip格式。
注意:GLM模型的第一个模型文件(pytorch_model-00001-of-00008.bin)和最后一个文件(pytorch_model-00008-of-00008.zip)有过更新,请务必全部下载最新版本的镜像,并注意进行sha256校验以确保版本正确。
这里如果没有安装正确版本的镜像,可能会出现size mismatch for lm_head.weight: copying a param with shape torch.Size([150528, 4096]) from checkpoint, the shape in current model is torch.Size([130528, 4096])的错误。
二、上传模型数据
注册好账号后,下载oss_windows_x86_64.exe,重命名为oss.exe后,在在当前目录进入cmd,执行.\oss login
命令,输入恒源云平台账号和密码登录。
执行.\oss cp 压缩文件所在目录\xxx.zip oss://
命令,上传本地当前目录数据到个人数据根目录
三、创建实例
在恒源云筛选需要的主机配置(GPU需在16G以上),选择实例镜像,创建实例。
四、使用实例
1.打开JupyterLab来登陆实例
2.打开终端(Terminal)进入实例系统内
3.执行oss login
命令,登陆个人数据空间,输入恒源云平台账号和密码登录,账号为手机号
4.执行cd /hy-tmp
命令,进入下载路径,如果有共享存储的机型可以用选择hy-nas
6.执行oss cp oss://xxx.zip .
命令,将个人数据中的xxx.zip下载到当前目录中
7.执行unzip -q xxx.zip
命令,解压 xxx.zip 文件到当前目录
8.执行cd /hy-tmp/ChatGLM-6B-main
指令转到解压后的文件夹
9.执行pip install -r requirements.txt
,安装依赖。此处如报错,要注意是否正确打开文件夹路径( requirements.txt文件位于/hy-tmp/ChatGLM-6B-main内)
10.修改要运行的代码的模型保存路径(下方以cli_demo.py为例)
你需要修改tokenizer和model的读取路径(也就是镜像的位置),如果这里不修改,则代码会选择从HuggingFace上下载模型缓存,无法达到整整本地部署的效果。
11.执行python cli_demo.py
运行cli_demo.py文件。运行中需要加载8个模型。如果途中报错如图,先检查自己的库中是否装了下面三个库 certifi、cryptography、pyOpenSSL,没有的话请依次安装:
pip install certifi
pip install cryptography
pip install pyOpenSSL
程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入 clear
可以清空对话历史,输入 stop
终止程序。
至此,就基本完成了命令行式的交互。