您现在的位置是:首页 >技术交流 >【LLM】离线部署ChatGLM-6B模型网站首页技术交流

【LLM】离线部署ChatGLM-6B模型

提笔忘字的帝国 2023-06-25 20:00:02
简介【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

👍点赞,你的认可是我创作的动力 !
🌟收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!    

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。