前言 ChatGPT的爆火让许多公司和个人都想要开发自己的大型语言模型,但是,由于算力和语言模型开发能力等诸多方面的限制,许多人最终都只能在开发的早期阶段止步不前。然而,近期清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布了对话机器人ChatGLM-6B的开源版本,这一切都变得更加容易了。 这个中英文语言模型拥有千亿参数规模,并且对中文进行了优化。本次开源的版本是其60亿参数的小规模版本,仅需要6GB显存就可以在本地部署。这意味着,即使是在普通显卡的电脑上,也可以轻松部署一个类似于GPT的大型语言模型。这是一个令人振奋的时刻,让我们一起期待中国版ChatGPT更多的创新和突破! 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。具体教程详见官网教程。 首先在终端查看你的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 不配置可能会报错,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登录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_demo.py文件中的模型地址,具体为第5行与第6行,具体如下: 温馨提示,根据实际显卡显存,可以更改第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分钟加载本地模型: 接着在浏览器打开::7861,就可以开始体验ChatGLM-6B了。博主体验了下,生成速度还是很快。 首先需要安装额外的依赖 pip install fastapi uvicorn然后运行仓库中的 api.py: python api.py默认部署在本地的 8000 端口,通过 POST 方法进行调用 curl -X POST ":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 博客 如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》 |