本文首发于:https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。ChatGLM-6B 权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。
其中一个比较关键的点是:消费级的显卡即可进行私有化部署,下文将着重介绍部署的相关步骤。
建议硬件配置:
不过该模型也可在无GPU的情况下部署,但是推理速度会更慢,最低需要32G内存。
一、克隆仓库
本地部署的话实际需要用到两个仓库,一个是源码仓,一个是模型仓。在操作之前请确认Git已正确安装并启用了LFS。
源码仓库:https://github.com/THUDM/ChatGLM-6B
模型仓库:https://huggingface.co/THUDM/chatglm-6b
使用 git clone 命令克隆至本地即可,由于仓库的默认名称一致,建议在克隆一个仓库后改名再继续克隆另一个仓库。模型仓库体积较大,请确保网络连接稳定。
二、安装依赖
1. 更新显卡驱动
进行下面的操作前请确认已更新最新的显卡驱动。如果显卡本身就以工作负载为主,请选择 Studio 版本的驱动。
2. Python3
首先确保 Python3 已正确安装并配置了相应的环境变量。打开命令窗口能正常调用 py 和 pip 命令说明配置正确。
3. 自动安装依赖
进入源码仓库,执行以下命令安装依赖:
pip install -r requirements.txt
4. 安装 PyTorch 和对应版本的 CUBA
为了确保 Torch 版本与 CUBA 匹配,先执行以下命令移除已有的 PyTorch:
pip3 uninstall torch torchvision torchaudio
打开 https://pytorch.org/get-started/locally/ 页面,选择 PyTorch 的版本,注意 CUBA 版本的选择,然后复制如图的安装命令。
打开 https://developer.nvidia.com/cuda-downloads 页面,如果自动跳转的 CUBA 版本与要求的版本不一致,可以找到在页面下方的 Archive of Previous CUDA Releases 链接打开新的页面检索并下载安装。
三、改用本地模型
源码仓库在没有修改的情况下默认不会使用本地的模型,接下来需要修改模型引用的代码来指向本地的模型文件。建议使用 VS Code 之类的工具来进行批量的替换。
实际操作时,只需要将整个源码目录下的 “THUDM/chatglm-6b” (注意,搜索替换时一定要带上这对英文的双引号,否则可能会错误匹配)替换成第一步中克隆下来的模型的目录的路径(注意替换后的文本也需要英文的双引号,Windows 下要注意 \ 需要以转义符 \ 的形式写入)。
四,启动 WebDemo
上述步骤全部完成后,进入源码仓库,使用下述命令启动即可:
py .\web_demo.py
启动完毕后会自动打开 Web 页面,Enjoy It!
PS:这玩意儿确实吃显存啊!