1.背景

大家好啊,我是小卷。

最近ChatGPT不仅公布了GPT-4,而且解除封印能够联网了。不得不赞叹AI更新迭代的速度真快,都跟不上节奏了。然而大家也留神到了吧,随着ChatGPT的每次更新,OpenAI对其凋谢应用的限度也越来越大。之前国内网轻易拜访GPT3,当初动不动就封号

所以,明天就来教大家部署国内清华大学开源的ChatGLM-6B。简略介绍下,ChatGLM是对话语言模型,对中文问答和对话进行了优化。以后训练模型有62亿参数,后续还会推出1300亿参数的大模型,期待国内的ChatGLM能越做越弱小。

ChatGLM的开源地址:THUDM/ChatGLM-6B

废话不多说了,间接上成果,以下是由ChatGLM中文对话的后果(不是ChatGPT哦)

(PS:文末给大家筹备了ChatGLM的收费体验地址 和 算力平台收费体验形式,肯定看到文章结尾哦)

2.筹备工作

官网阐明ChatGLM对硬件的配置要求至多13G的显存

要筹备的货色如下:

  • 一台GPU云服务器(16GB显存,32G内存)
  • 云服务器上已装置好显卡驱动cuda和pytorch框架(平台都有现成的镜像,间接装置即可)

再来说说服务器厂商的抉择,GPU服务器比拟贵,所以小卷比照了一些大厂和小厂的GPU规格,这里只看配置符合要求且价格适合的

厂商配置价格劣势
阿里云4核-15G内存-16显存NVIDIA T41878/月大厂服务,然而价格太贵
腾讯云10核-40G- NVIDIA T48.68/小时大厂服务,但独占1颗GPU价格略高
华为云8核-32G-16显存NVIDIA T43542/月太贵
mistGPU8核-32G-24G显存NVIDIA 30904.5/小时毛病:只有1GB收费存储
揽睿星舟10核-40G-24G显存NVIDIA 30901.9/小时举荐,配置高且价格低,当初NVIDIA 3090有特价

咱们这里应用揽睿星舟这个算力平台的服务器,价格就是劣势哦。须要留神的是,GPU服务器要选按量计费,就是你用的时候按应用时长计费,不必时关掉就不会计费

3.服务器配置

这一步购买服务器并装置环境,比较简单

3.1注册应用

关上揽睿星舟官网注册地址:https://www.lanrui-ai.com/register?invitation_code=4104,

注册账号时邀请码填写4104,这样平台会给你收费充值一笔钱

咱们就能够收费体验服务器了。右上角也能够给本人账户充值

3.2购买服务器并装置镜像

在网站的算力市场购买须要的服务器配置,这里我选的是3090-24G这款,点击应用按钮进入镜像装置界面

运行环境镜像选公共镜像 -> pytorch 间接用最新的就行,而后高级设置里抉择预训练模型chatglm-6b(这样会事后加载chatGLM的模型到服务器,无需再手动下载)而后创立实例(确保本人账号里有足够的余额)

期待5分钟左右,工作空间就创立好了,点击进入 -> JupyterLab 进入服务器,接下来就筹备ChatGLM的装置就行了

4.部署ChatGLM

4.1Git减速配置

为了防止git clone太慢,提前在命令行设置git学术资源减速

# 执行上面2条命令,设置git学术资源减速git config --global http.proxy socks5h://172.16.16.39:8443git config --global https.proxy socks5h://172.16.16.39:8443

前面的步骤中再执行git clone命令就不会卡住了。

要勾销git学术减速也简略,执行上面的命令(所有步骤执行完后再勾销哦~)

# 勾销git学术资源减速git config --global --unset https.proxygit config --global --unset http.proxy

4.2下载ChatGLM源代码

进入Jupyter的页面后,能够看到2个目录,对目录做下阐明:

  • data目录,存放数据,平台共享的
  • imported_models目录,寄存预训练模型,即创立工作空间时你抉择的模型

点击data目录下,能够看到ChatGLM-6B文件夹,外面是ChatGLM的源代码。

如果没有ChatGLM-6B目录,那么咱们这一步须要下载代码,操作如下:

页面关上一个Terminal终端,在Terminal终端执行命令

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

4.3 装置依赖

1.执行命令切换到ChatGLM-6B的目录

cd ChatGLM-6B

2.接着批改requirements.txt文件,把后续所有须要的依赖都加上,上面的配置加在文件开端即可,如果文件里已加上这3个依赖,无需再批改。

chardetstreamlitstreamlit-chat

3.加完之后save保留下文件,如图

4.接着命令行执行上面命令装置依赖

# 应用默认镜像源下载会超时,这里用了清华的pip镜像源地址pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

这一步可能会执行报错

ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

解决办法:切换到root用户后再执行命令

# 切换root用户sudo su# 从新执行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

4.4 启动脚本批改

  • 因为模型是独自文件夹存储的,所以须要批改启动脚本中读模型文件的代码
  • 为了能从公网拜访咱们的ChatGLM,须要批改监听地址为0.0.0.0,端口为27777,这个是揽睿星舟平台的调试地址

批改步骤:

1.批改web_demo2.py文件中的模型门路,替换为模型的绝对路径,批改办法如下:

批改前的代码

    tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)    model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()

批改后的代码

    tokenizer = AutoTokenizer.from_pretrained("/home/user/imported_models/chatglm-6b", trust_remote_code=True)    model = AutoModel.from_pretrained("/home/user/imported_models/chatglm-6b", trust_remote_code=True).half().cuda()

批改完后ctrl + s保留一下

4.5启动ChatGLM

ChatGLM-6B目录下,命令行执行

python3 -m streamlit run ./web_demo2.py --server.port 27777 --server.address 0.0.0.0

启动ChatGLM的webui界面

看到http://0.0.0.0:27777字样阐明胜利启动了

5.应用

咱们须要从浏览器拜访刚部署的服务,回到揽睿星舟平台

在工作空间页面上点击自定义服务拷贝调试链接,而后把拷贝的链接在浏览器上关上

而后你就能够在这个页面开始对话了

留神第一次对话时,程序会加载模型文件,耗时会比拟长,能够从方才启动的命令行查看加载进度

等第一次加载实现后,前面再对话,响应就很快了

6.对话成果

到这一步,所有装置部署过程就胜利实现了,咱们来看看成果吧,拷贝的链接在手机端也能关上,上面是手机端的成果

<img src="/Users/yuyunlong/Pictures/博客/ChatGLM部署/15.jpeg" style="zoom:25%;" />

7.敞开服务以及重启服务

  • 因为咱们的服务按使用量免费的,所以不必时在页面上点击进行运行即可

<img src="/Users/yuyunlong/Pictures/博客/ChatGLM部署/16.png" style="zoom:25%;" />

  • 而后想从新运行服务的时候,点工作空间页面上的启动按钮。工作空间从新创立后,进入Jupyter,通过命令行再次启动
# 进入ChatGLM-6B目录cd data/ChatGLM-6B/# 启动服务python3 -m streamlit run ./web_demo2.py --server.port 27777 --server.address 0.0.0.0

8.收费体验ChatGLM

小卷给大家筹备了2个收费体验的形式:

(1)通过上面链接注册平台账号,邀请码写4104,平台会收费充点钱,而后可自行部署体验。

https://www.lanrui-ai.com/register?invitation_code=4104

(2)小卷给大家筹备了本人的ChatGLM体验地址,能用上几天。给文章点赞珍藏后,找小卷拿哦~