乐趣区

关于算法:奶奶看了都会云服务器部署开源ChatGLM6B让你也能拥有自己的ChatGPT

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 T4 1878/ 月 大厂服务,然而价格太贵
腾讯云 10 核 -40G- NVIDIA T4 8.68/ 小时 大厂服务,但独占 1 颗 GPU 价格略高
华为云 8 核 -32G-16 显存 NVIDIA T4 3542/ 月 太贵
mistGPU 8 核 -32G-24G 显存 NVIDIA 3090 4.5/ 小时 毛病:只有 1GB 收费存储
揽睿星舟 10 核 -40G-24G 显存 NVIDIA 3090 1.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:8443
git config --global https.proxy socks5h://172.16.16.39:8443

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

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

# 勾销 git 学术资源减速
git config --global --unset https.proxy
git 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 个依赖,无需再批改。

chardet
streamlit
streamlit-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 体验地址,能用上几天。给文章点赞珍藏后,找小卷拿哦~

退出移动版