目录
前言
ChatGPT的爆火让许多公司和个人都想要开发自己的大型语言模型,但是,由于算力和语言模型开发能力等诸多方面的限制,许多人最终都只能在开发的早期阶段止步不前。然而,近期清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布了对话机器人ChatGLM-6B的开源版本,这一切都变得更加容易了。
这个中英文语言模型拥有千亿参数规模,并且对中文进行了优化。本次开源的版本是其60亿参数的小规模版本,仅需要6GB显存就可以在本地部署。这意味着,即使是在普通显卡的电脑上,也可以轻松部署一个类似于GPT的大型语言模型。这是一个令人振奋的时刻,让我们一起期待中国版ChatGPT更多的创新和突破!
量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(高效参数微调) |
---|---|---|
FP16(无量化) | 13 GB | 14 GB |
INT8 | 8 GB | 9 GB |
INT4 | 6 GB | 7 GB |
前期准备
电脑要求
- python版本要求:3.8
- windows系统:Windows 7 or later (with C++ redistributable)
- 显卡:6G以上GPU
安装anaconda
从anaconda官网,下载安装anaconda。具体教程详见官网教程。
安装相应版本的CUDA
首先在终端查看你的Nividian版本,命令如下:
nvidia-smi
查看到本机可装CUDA版本最高为12.0,版本向下兼容,意思就是CUDA 12.0及以下版本的都可以安装,但一般不建议使用最新版本的。因为可能后续其他安装包没有更新对应版本的可以下载。由于Pytorch(可以从pytorch官网)中可以看到,目前的CUDA版本一般是11.7和11.8,所以建议选择11.8版本以下的。博主这里选择了11.7进行安装。
安装完后,注意需要看下系统环境变量中地址有没有相应版本的cuda,比如我的电脑就是配置了下面几个环境变量
除上面两个之外 ,还可以加入以下环境变量,以保证不会出错。我没配置下面两个,也没出错,所以大家根据实际情况选择是否加入下面两个环境配置。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\CUPTI\lib64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include
不配置可能会报错,Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found
配置ChatGLM-6B Conda环境
首先以管理员方式启动windows命令窗口,在搜索中输入cmd
即可打开,输入以下命令,新建一个名字为ChatGLM的环境,并安装tensorflow-gpu版本。新建环境过程中选择y,进入下一步
conda create --name ChatGLM python==3.8.10
接下来激活ChatGLM的环境
conda activate ChatGLM
安装pytorch
如果电脑配置了GPU,要注意需安装GPU版本的pytorch,具体可登录官网链接:
这里要注意选择你是什么系统,cuda是安装了什么版本(博主前面选择的是11.7),然后复制下面红框中的命令到终端就可以安装了。
在终端运行下面命令,即可安装成功pytorch-GPU版本:
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
在终端输入python
,然后依次输入下面代码,验证torch-GPU版本是不是成功。
import torch
torch.cuda.is_available() ## 输出应该是True
ChatGLM-6B最新版模型环境部署及安装
源码下载
登录github官方地址下载源码或者直接使用git命令clone:
git clone https://github.com/THUDM/ChatGLM-6B.git
接着在源码所在文件夹下,新建model文件夹
模型下载
从hugging face下载所有文件下来,放到model文件夹内。
其中模型文件(大于 1G 的)如果下载速度慢,可以在国内清华云源中单独下载这几个模型文件(其他这个源没有的文件还是需要在 huggingface 上下载):https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/
最后model文件夹内应该如下显示:
相关库安装
在终端下打开ChatGLM-6B安装的目录,然后运行下面命令,安装相关库:
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simp1e
运行web演示
在运行之前,需要先修改web_demo.py
文件中的模型地址,具体为第5行与第6行,具体如下:
tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True)
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().cuda()
温馨提示,根据实际显卡显存,可以更改第6行关于model运行方式:
# 6G 显存可以 4 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
# 10G 显存可以 8 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(8).cuda()
# 14G 以上显存可以直接不量化,博主显存为16G选择的就是这个
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().cuda()
在终端输入命令,注意不要用python3,因为可能会使用到其它环境下的python。
python web_demo.py
刚开始运行,需要等到1-2分钟加载本地模型:
接着在浏览器打开:http://127.0.0.1:7861,就可以开始体验ChatGLM-6B了。博主体验了下,生成速度还是很快。
作为API部署
首先需要安装额外的依赖
pip install fastapi uvicorn
然后运行仓库中的 api.py:
python api.py
默认部署在本地的 8000 端口,通过 POST 方法进行调用
curl -X POST "http://127.0.0.1:8000" \
-H 'Content-Type: application/json' \
-d '{"prompt": "你好", "history": []}'
得到的返回值为
{
"response":"你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。",
"history":[["你好","你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。"]],
"status":200,
"time":"2023-03-23 21:38:40"
}
参考资料
ChatGLM-6B 博客
ChatGLM-6B 官方github地址
其它资料下载
如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。