【LLM】离线部署ChatGLM-6B模型
目录
前言
准备环境
打包环境
下载/上传模型
部署模型
前言
甲方出手,天下我有🤩。圆梦了圆梦了~一直想整一台GPU服务器尝尝鲜,奈何钱包空空,虽然有可以在CPU上部署的方案,但效果却不是让人那么满意,可以看下我这篇文章末尾的效果就知道了:
【LLM】Windows本地CPU部署民间版中文羊驼模型踩坑记录_提笔忘字的帝国的博客-CSDN博客
让我们看看GPU参数吧😍
输入命令:(如果报了未找到命令的话需要给显卡驱动目录添加进环境变量,自行百度)
nvidia-smi
我滴乖乖,49G显存爱了爱了~
ChatGLM-6B仓库链接:
GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型
准备环境
因为服务器是在内网里的,没法联网下载,所以我只能把环境配置好再安装到服务器里,我这里使用的是Anaconda3来搭建python环境,搭建好后可以直接把环境打包放到服务器上用,下载地址:Free Download | Anaconda
安装说明:一直点next即可(需要注意有个地方要勾选添加PATH变量,忘记截图了)
使用Anaconda3迁移环境有两个注意的地方(避免其他问题):
- 相同的操作系统(比如不可以将windows下制作的环境放到linux上)
- 相同的Anaconda3版本
因为甲方的服务器上装的是windows server,因此我可以使用windows制作环境
记住自己的Anaconda3安装目录,我们待会需要找到安装目录内的环境把它打包!!!
除了Anaconda3还需要安装git工具,地址:Git - Downloading Package
安装的话一直点下一步就行了
接下来如图我在D盘目录下打开cmd窗口:
在cmd窗口输入命令创建一个python的环境:
conda create -n glm python=3.9
激活环境:
conda activate glm
克隆ChatGLM-6B的仓库:
git clone https://github.com/THUDM/ChatGLM-6B.git
接下来你应该能在D盘中看到一个名为ChatGLM-6B的文件夹,把文件夹内的requirements.txt内容替换为以下内容(想踩坑的话不替换也行):
protobuf
transformers==4.27.1
cpm_kernels
gradio==3.12.0
mdtex2html
sentencepiece
accelerate
fastapi
uvicorn
将cmd切换到ChatGLM-6B目录,分别执行一下命令(一个一个去执行,免得出错):
pip install -r requirements.txt
pip uninstall torch
pip cache purge
pip install torch -f https://download.pytorch.org/whl/torch_stable.html
到这环境就准备好了~
打包环境
找到你的Anaconda3安装目录,在里面会有一个名为envs的文件夹,里面的内容如下:
这样就已经好了,接下来只需要在服务器上安装好Anaconda3,然后把这个压缩包解压放到服务器上对应的envs目录就好了
下载/上传模型
分别执行以下命令:
git lfs install
git clone https://huggingface.co/THUDM/chatglm-6b
下载好后把模型放到上面克隆下来的ChatGLM-6B仓库中:
接下来只需要把ChatGLM-6B仓库压缩下上传到服务器即可
部署模型
记得把Anaconda3安装包也一块上传到服务器,安装好Anaconda3后把上面制作的那个环境放到envs目录下,把ChatGLM-6B的压缩包解压下,ChatGLM-6B目录下有个web_demo.py文件,打开文件将里面所有的"THUDM/chatglm-6b"替换为你的模型绝对路径,做完这些操作后在当前目录下开一个cmd窗口分别执行以下命令:
conda activate glm
python web_demo.py
启动完后将会弹出一个网页
如果你想部署一个api, 那么只需要将目录下的api.py文件跟web_demo.py一样把文件内的模型路径换成你自己的模型绝对路径, 执行以下命令即可
python api.py
👍点赞,你的认可是我创作的动力 !
🌟收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!