当前位置: 首页 > article >正文

【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

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


http://www.kler.cn/a/15892.html

相关文章:

  • 15分钟学 Go 第 56 天:架构设计基本原则
  • 借助Excel实现Word表格快速排序
  • (附项目源码)nodejs开发语言,212 个性化音乐推荐系统的设计与实现,计算机毕设程序开发+文案(LW+PPT)
  • Spring Boot 中 Druid 连接池与多数据源切换的方法
  • 供应链管理、一件代发系统功能及源码分享 PHP+Mysql
  • 除了 TON, 哪些公链在争夺 Telegram 用户?数据表现如何?
  • 深度学习笔记之稀疏自编码器
  • MongoDB安装
  • [大家的项目] 获取主机IP地址
  • PAT A1019 General Palindromic Number
  • 阿里云国际版ACE与国内版ACE区别
  • 百万赞同:网络安全为什么缺人? 缺什么样的人?
  • 计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?
  • 界面控件DevExpress WinForm的垂直网格,让数据展示更灵活(二)
  • EBS R12.1 注册客户化应用的步骤
  • AlgoC++第八课:手写BP
  • “华为杯”第十七届中国研究生 数学建模竞赛-【华为杯】D题:无人机集群协同对抗(附优秀论文及python代码实现)
  • Redis常见问题/应用场景/面试题总结(含答案)
  • seurat -- 关于DE gene的讨论
  • vue性能优化之虚拟列表滚动
  • 第七章 单行函数
  • 荔枝派Zero(全志V3S)驱动开发之串口
  • 使用docker部署prometheus最新版本2.43.0
  • 你买票了吗?五一火车票发售量创历史新高,车票总发售2209万张票
  • python之面向对象练习题(七)
  • 芯片封装基本流程及失效分析处理方法