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

news2024/11/24 19:04:57

目录

前言

准备环境

打包环境

下载/上传模型 

部署模型


前言

甲方出手,天下我有🤩。圆梦了圆梦了~一直想整一台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的压缩包解压下,根目录下有个web_demo.py文件,打开文件将里面所有的"THUDM/chatglm-6b"替换为你的模型绝对路径,做完这些操作后运行一下在当前目录下开一个cmd窗口分别执行以下命令:

conda activate glm

python web_demo.py

启动完后将会弹出一个网页


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

杭州一公司开出20万月薪/320万年薪抢人!ChatGPT掀起AI热潮,AIGC人才被爆抢

5年工作经历,博士学位,最高月薪20万。 最近,位于杭州未来科技城一家公司,开出了最高320万年薪,招聘AIGC方向算法工程师一名。 ChatGPT在全球掀起了AI热潮,国内互联网大厂纷纷加入战局打造国内版ChatGPT。…

Analysis For Office的一些使用技巧

目录 1. 自由特性下钻停止刷新 2. 直接双击过滤内容 3.重复层级值 4. 从过滤值选参数 5.从Excel复制参数 6. 保存参数值 7.计划值回退到上一步 8. 保存当前导航步骤 1. 自由特性下钻停止刷新 一般我们每次拖一个自由特性到workbook里,报表都会自动刷新。如…

电商败给了直播带货,实体店能靠直播提升销量吗?

根据官方发布的最新数据,直播带货的市场规模将达到4.7万亿元,不少品牌借助直播间触达了上亿的用户,完成了千万级别的销售订单。 目前直播带货已经成为“红海”市场,未来仍然有巨大的发展空间。 一、直播带货打败传统电商 自从电商…

vue3+ts数组去重方法-reactive/ref响应式显示

vue3ts数组去重方法-reactive/ref响应式显示 本文目录 vue3ts数组去重方法-reactive/ref响应式显示简单数组使用 Set 和 扩展运算符(...)将集合转换回数组使用 Set 和 Array.from() 方法将集合转换回数组使用 filter 和 indexOf 进行判断使用 splice 和 …

函函函函函函函函函函函数——two

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,…

【DevOps视频】笔记】1. DevOps的诞生

视频官网 目录 一、DevOps介绍 定义: 作用: 核心: 二、软件开发流程 三、流程图 一、DevOps介绍 定义: Development & Operations的缩写,也就是开发&运维DevOps 是一个不断提高效率并且持续不断工作…

(八)Geoprocessing地理处理框架——基本介绍

(八)Geoprocessing地理处理框架——基本介绍 目录 (八)Geoprocessing地理处理框架——基本介绍 1.基本概念2.集成ArcToolbox3.多种使用方式3.1对话框3.2Python窗口3.3模型构建器3.4脚本 4.应用基础4.1启动ArcToolbox4.2激活扩展工…

PostgreSQL中创建索引的消极影响

相信大家在使用数据库中,提高SQL查询速度最简单的办法就是添加相关索引,但是其实我们创建的索引并不一定能用上,有时候顺序扫描也并不见的就比离散的索引扫描差,任何事物我们要辩证的看待,今天我们说明一下创建索引的一…

AQS 抽象同步队列的简单理解

前置知识: 可重入锁又叫递归锁,同一个线程在外层方法获取锁的时候,在进入该线程内层方法会自动获取锁,不会因为之前已经获取过还没释放就阻塞 同一个线程可以多次获得同一把锁 每个锁对象都有一个锁计数器和一个指向持有该锁的…

Python爬虫-D车网近半年(六个月)汽车销量排行榜

前言 本文是该专栏的第46篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏前面,笔者有单独详细介绍过该平台当前月更新的最新汽车销量排行榜数据。感兴趣的同学,可往前翻阅查看(Python爬虫-某懂车平台之汽车销量排行榜)。 而本文,笔者将详细来介绍该平台近半年…

【git】git提交代码-使用简易指南

1、创建新仓库:git init 创建新文件夹,打开执行:git init ,创建新的git仓库 2、检出仓库:git clone 执行该命令,以创建一个本地仓库的克隆版本:git clone /path/to/repository 如果是远端服务器…

一文解析Systrace 的原理、流程及定制

一、原理和基本流程 Systrace是android性能调试优化的常用工具,它可以收集进程的活动信息,如界面布局、UI渲染、binder通信等;也可以收集内核信息,如cpu调度、IO活动、中断等;这些信息会统一时间轴,在Chro…

【ROS仿真实战】Gazebo仿真平台介绍及安装方法(一)

文章目录 前言一、Gazebo简介二、Gazebo仿真平台的基本概念三、Gazebo仿真平台的安装方法四、总结 前言 Gazebo仿真平台是一个广泛应用于机器人研发、测试和教育等领域的开源软件。它可以模拟机器人的运动、感知和控制等行为,并提供了丰富的物理引擎、传感器模拟和…

PYQT5学习笔记05——QObject父子对象API以及案例

一、父子对象API 我们在这里简单演示一下父子对象API的具体用法以及代码实现,父子对象API有五个,分别是setParent、parent、children、findChild、findChildren,接下来对每一个API都具体演示一下。 1、setParent(parent)和parent() setParen…

国外导师对博士后申请简历的几点建议

正所谓“工欲善其事,必先利其器”,想要申请国外的博士后职位,就要准备好相应的申请文书材料。如果说Cover Letter是职位的窍门砖,那么申请者的简历就是争取职位的决定性筹码。 相信大家已经看过许多简历的模版了,但是…

c++自学笔记

本笔记为从菜鸟教程边学边记录的笔记---》C 教程 | 菜鸟教程 面向对象程序设计 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。…

vsftpd.conf各参数含义

文章目录 初始vsftdp.conf翻译后需修改参数write_enableYES(启用任何形式的FTP写入命令)userlist_file/etc/vsftpd.user_list、userlist_enableYES、userlist_denyNOlocal_umask022(放开权限)chroot_local_userYES(限定…

【容器文件系统】了解容器 overlay 文件系统和 /var/lib/docker/overlay2下目录的作用

转载自 浅析 Docker overlay2 文件结构 docker(5): 层 朱双印 目的 有这个问题困惑着我:容器删除 docker rm 后,docker cp 到容器内的文件,在 /var/lib/docker/overlay2 目录中是否还会存在 答案:容器删除后 docker rm 后&…

银河麒麟操作系统,安装Gitlab 基于docker

不废话。直接上干货 操作系统信息 ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Sword) Kernel: 4.19.90-24.4.v2101.ky10.aarch64 Build: Kylin Linux Advanced Server release V10 (SP2) /(Sword)-aarch64-…

【电商必学】 WhatsApp 全新攻略:什么是交互式消息模板

网购与WhatsApp等社交通讯平台有着密不可分的关系,为什么这么说呢?因为基本上所有的网购的平台都会提供查询、下单方式给客户,而WhatsApp是全世界使用率最高的通讯平台,所以大部分电子商户都会选择WhatsApp Business与电子商务连接…