|
清华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/ |
|