1.背景

大家好啊,我是小卷。

最近ChatGPT不仅发布了GPT-4,而且解除封印可以联网了。不得不赞叹AI更新迭代的速度真快,都跟不上节奏了。但是大家也注意到了吧,随着ChatGPT的每次更新,OpenAI对其开放使用的限制也越来越大。之前国内网随便访问GPT3,而且OpenAI现在开始限制个人账户的使用了,现在动不动就封号了

所以,今天就来教大家部署国内清华大学开源的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.对话效果

到这一步,所有安装部署过程就成功完成了,我们来看看效果吧,拷贝的链接在手机端也能打开,下面是手机端的效果

7.关闭服务以及重启服务

  • 因为我们的服务按使用量收费的,所以不用时在页面上点击停止运行即可

  • 然后想重新运行服务的时候,点工作空间页面上的启动按钮。工作空间重新创建后,进入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体验地址,能用上几天。获取方式:公众号卷福同学内发关键词ChatGLM获取

【奶奶看了都会】云服务器部署开源ChatGLM-6B,让你也能拥有自己的ChatGPT的更多相关文章

  1. MVC - 云服务器部署

    本章将和大家分享的是如果在云服务器上部署mvc,云服务器部署其实也不高大上,就和咋们在自己电脑上用iis发布部署站点一样,只是需要使用云解析把自己购买的域名解析到对应的自己的云服务器上,这些都是用的云 ...

  2. 【云服务器部署】---Linux下安装nginx

    [云服务器部署]---Linux下安装nginx 之前两篇,分别讲了:Linux下安装MySQL  和  springboot项目部署云服务器 nginx安装也是挺简单的.具体步骤如下: 第一步,下载 ...

  3. 阿里云服务器部署Office online注意事项

    阿里云服务器部署Office online注意事项 一.参考配置 实例规格:4核8GB(IO优化) 网络带宽:5Mbps 系统盘:40G 存储盘:200G OS:Windows Server 2016 ...

  4. 【云服务器部署】---Linux下安装MySQL

    [云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...

  5. #阿里云#云服务器部署可道云(KodExplorer)

    前言:在做一些项目的时候,经常有一些文档交流,修改之后的文档在QQ或微信上发来发去,还要下载,很是不爽,有一个挺有用的东西叫做KodExplorer可道云. kodexplorer可道云是目前国内有代 ...

  6. Python FLask 腾讯云服务器部署

    CentOs 7.0云服务器部署Python Flask 使用: Python 2.7 Flask nginx gunicorn easy_install python-dev yum install ...

  7. django 本地项目部署uwsgi 以及云服务器部署 uwsgi+Nginx+Docker+MySQL主从

    一 .django 本地项目部署uwsgi 1 本地部署项目 uwsgi安装测试 通过uwsgi 进行简单部署 安装uwsgi命令:pip install uwsgi -i http://pypi.d ...

  8. 云服务器部署mongodb

    我喜欢用简单的方法 步骤 下载 解压并运行 远程连接测试 下载 到官方下载页获取下载地址,如图 在云服务器上,使用命令curl 你的地址 -o mongodb.tgz ,下载到当前目录,转到下一步. ...

  9. 云服务器部署Python项目(nginx+uwsgi+mysql+项目)

    python项目部署到云服务器 关注公众号"轻松学编程"了解更多. 一.硬件准备 云服务器,系统ubuntu_16_04 . 注意:要在安全组中开放Http的80端口. 二.软件准 ...

  10. 怎么在阿里云服务器部署多个tomcat

    部署前准备: 1.到阿里云官网购买一台服务器 2.给阿里云服务器挂盘,阿里云有教程这里不讲解,自己看. Linux 系统挂载数据盘 视频:Linux服务器挂载数据盘 3.下载tomcat  http: ...

随机推荐

  1. 基于 SpringBoot + Vue3.2 + Element Plus 的后台管理系统

    简介 TANSCI 基于 SpringBoot + Vue3.2 + Element Plus 的后台管理系统. 包含基础模块:菜单管理.角色管理.组织管理.用户管理.字典管理.日志管理(操作日志.异 ...

  2. 引发C++异常的常见原因(一)从报错地址到错误症状

    在进行C++软件开发的过程中,会遇到很多问题,网上差不到,或者查到了也没什么信息可以用,所以这里想到了就将一些常见的问题放在一起,归纳整理一下. 本文主要的内容来源于CSDN的大佬文章:https:/ ...

  3. P1616-DP【橙】

    这道题好几天前就写出了记搜代码,但是理论上空间恰好够,实际上不论是用new-delete还是malloc-free,都有1~2个点MLE了(最抽象的是一开始MLE两个点,我把数组两个下标调换顺序后理应 ...

  4. VirtualBox 设置开机自动在后台启动虚拟机

    打开 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 新建文件 virtualbox.bat 编写脚本 "C:\Pr ...

  5. Java求一个集合的所有子集

    转载请注明出处: 求一个集合的所有子集表示从一个集合当中,任取任意项或不取,所能得到的所有结果,比如有一个集合{a,b,c,d},那么{a,b}, {b, d}等都是它的子集,空集也是它的子集, 一个 ...

  6. centos 安装python3导致yum报错

    centos yum报错 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 报错: 报错一: File " ...

  7. CentOS下PHP7安装mysqlnd模块

    单独安装mysqlnd驱动 如果是centos下的yum安装方式,那么可以参考后续操作. 因为mysqlnd是mysql原生的驱动,如果已经安装了php-mysql,则需要先卸载,否则会遇到冲突. 先 ...

  8. Shell-循环-for-while

  9. K8s集群CoreDNS监控告警最佳实践

    本文分享自华为云社区<K8s集群CoreDNS监控告警最佳实践>,作者:可以交个朋友. 一 背景 coreDNS作为K8s集群中的关键组成部分.主要负责k8s集群中的服务发现,域名解析等功 ...

  10. [转帖]Oracle 23c 才支持 TLS1.3

    Transport Layer Security 1.3 Protocol Now Supported in Oracle Database Starting with Oracle Database ...