ChatGLM-6B云服务器部署(以恒源云为例)

写在前面:

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数,使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。由于其对显存硬件要求较高(详见下图),对于硬件配置较低的使用者不太友好,因此可尝试部署在云端,以此实现低配高效。

image-20230409125717715

一、下载源码和模型

源码:https://github.com/THUDM/ChatGLM-6B

模型:https://huggingface.co/THUDM/chatglm-6b(模型文件较大,若Huggingface上下载较慢可用清华云盘https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/)

将模型文件放入chatglm_6b的文件夹内

image-20230409014040940

然后将两个文件夹压缩成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命令,输入恒源云平台账号和密码登录。

image-20230409014944689

执行.\oss cp 压缩文件所在目录\xxx.zip oss:// 命令,上传本地当前目录数据到个人数据根目录

image-20230409014826718

三、创建实例

在恒源云筛选需要的主机配置(GPU需在16G以上),选择实例镜像,创建实例。

image-20230409015314707

image-20230409015655905

四、使用实例

1.打开JupyterLab来登陆实例

2.打开终端(Terminal)进入实例系统内

image-202304090242003103.执行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为例)

image

你需要修改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 终止程序。

至此,就基本完成了命令行式的交互。

posted @ 2023-04-09 14:31  AlphaInf  阅读(1423)  评论(2编辑  收藏  举报