全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1970|回复: 16

最低成本部署清华ChatGLM语言模型开启ChatGPT私有化时代

[复制链接]
发表于 2023-3-24 14:37:53 | 显示全部楼层 |阅读模式
清华ChatGLM语言模型开源项目地址:https://github.com/THUDM/ChatGLM-6B
运行环境:Windows + Virtualbox 虚拟机 + Ubuntu 20.04 LTS
Python版本:Python 3.10+, 我测试在低版本的3.7下面安装依赖库会报错,然后3.10 和3.11都正常
硬件要求:虚拟机的闲置内存在6G左右,然后把虚拟机的CPU核数拉满
注意:以上的Ubuntu 20.04 LTS和Python 3.10+的安装我就省略了哈~
不废话了,直接上部署步骤:
安装一下系统依赖:

sudo apt install cmake


安装python虚拟环境并激活虚拟环境:

python3 -m venv ChatGLM && source ChatGLM/bin/activate


安装python依赖库:

pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple 'protobuf>=3.19.5,<3.20.1' 'transformers==4.26.1' icetk cpm_kernels 'torch>=1.10' streamlit streamlit-chat


随便找个剩余空间大于5个G左右的磁盘的任意目录下建立ChatGLM的运行目录,以及量化好的语言模型的目录并下载模型和模型的配置文件代码等等,完整命令如下:

mkdir -p ChatGLM/model && cd ChatGLM/model && wget --no-check-certificate  'https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/pytorch_model.bin' && wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/config.json && wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/configuration_chatglm.py && wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/ice_text.model && wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/modeling_chatglm.py &&  wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/quantization.py &&  wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/quantization_kernels.c  &&  wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/quantization_kernels_parallel.c &&  wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/tokenization_chatglm.py &&  wget --no-check-certificate https://huggingface.co/THUDM/chatglm-6b-int4/resolve/main/tokenizer_config.json && cd ..


以上文件中最核心的就是量化好的模型文件pytorch_model.bin
然后就是将以下的代码复制粘贴到一个叫ChatGLM-cli.py的代码文件中,并放置在上面建立好的ChatGLM目录下面,不要放到model下面:

```
Firewall Warning
您的请求带有不合法参数,已被网站管理员设置拦截!

可能原因:您提交的内容包含危险的攻击请求

如何解决:

1)检查提交内容;
2)如网站托管,请联系空间提供商;
3)普通网站访客,请联系网站管理员;
```


声明:以上代码非本人原创而是来自于官方项目中的https://raw.githubusercontent.com/THUDM/ChatGLM-6B/main/cli_demo.py ,我根据本文的实际情况以及标题中的最小成本部署参考官方文档进行了小修改,方便大家一次运行成功。

再然后就是将以下的代码复制粘贴到一个叫ChatGLM-web.py的代码文件中,并放置在上面建立好的ChatGLM目录下面,不要放到model下面:

```
Firewall Warning
您的请求带有不合法参数,已被网站管理员设置拦截!

可能原因:您提交的内容包含危险的攻击请求

如何解决:

1)检查提交内容;
2)如网站托管,请联系空间提供商;
3)普通网站访客,请联系网站管理员;
```

声明:以上代码非本人原创而是来自于官方项目中的https://raw.githubusercontent.com/THUDM/ChatGLM-6B/main/web_demo2.py ,我根据本文的实际情况以及标题中的最小成本部署参考官方文档进行了小修改,方便大家一次运行成功。

最后大家参考下面的截图中的目录树,要保证和我的一致就行了,如下:

最后就是开始运行我们的cli命令行和web图形界面的demo展示了:
cli命令行demo的运行命令如下:

python ChatGLM-cli.py


效果如下:

web图形界面的demo的运行命令如下:

streamlit run ChatGLM-web.py.py --server.port 8080


最后打开浏览器输入你的虚拟机的ip地址加8080端口组成的url就可以看到实际效果了,比如我的url是:http://192.168.56.2:8080,最终效果如下:


声明:因为本文旨在让大家以最小的成本感受一下清华ChatGLM语言模型的魅力,但是也导致了以上无论是cli还是web的demo在回答你的问题的时候返回结果的速度极其缓慢,如需追求更快的回答速度请参考官方项目中的文档修改相应的代码并加大你的帶寬! 加大你的內存! 加大你的顯示器!

以上的python代码由于loc的安全策略没法贴到帖子里面,想看完整代码和更多演示的截图的移步到我的博客哈:
https://sharpgan.com/lowest-cost-to-deploy-thu-chatglm-model-into-chatgpt-self-hosted-era/
发表于 2023-3-24 14:39:05 来自手机 | 显示全部楼层
不需要显卡吗
 楼主| 发表于 2023-3-24 14:41:52 | 显示全部楼层

可以用显卡来部署,但是我的电脑没有独显,所以这里用的是纯cpu方案
发表于 2023-3-24 14:43:39 | 显示全部楼层
学习了,等有空了来弄个玩玩
发表于 2023-3-24 14:44:22 | 显示全部楼层
大佬有没有人工智能的TG群
 楼主| 发表于 2023-3-24 14:44:58 | 显示全部楼层
5700pgf 发表于 2023-3-24 14:43
学习了,等有空了来弄个玩玩

感谢老哥的支持~
 楼主| 发表于 2023-3-24 14:46:44 | 显示全部楼层
cai198271 发表于 2023-3-24 14:44
大佬有没有人工智能的TG群

目前还没有哈~
发表于 2023-3-24 14:46:46 | 显示全部楼层
6啊
发表于 2023-3-24 14:48:10 | 显示全部楼层
据说纯CPU跑交互巨慢,用8G显存基本对话两三轮就爆了,即便12G显存也对不了几轮,如果用全精度的模型官方指导价8个A100
发表于 2023-3-24 14:49:03 | 显示全部楼层
这个写程序怎么样?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-11 23:28 , Processed in 0.062274 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表