我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Centos/Ubuntu离线部署清华chatGLM(特别详细,十分钟搞定)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Centos/Ubuntu离线部署清华chatGLM(特别详细,十分钟搞定)

引言

前段时间,清华公布了中英双语对话模型 ChatGLM-6B,具有60亿的参数,初具问答和对话功能。最!最!最重要的是它能够支持私有化部署,大部分实验室的服务器基本上都能跑起来。因为条件特殊,实验室网络不通,那么如何进行离线部署呢?经过一下午的折腾终于搞定了,总结了这么一个部署文档供大家讨论学习。除去下载模型以及依赖包的时间,部署十分钟搞定!!让我们冲~~

前提条件

CUDA Version 11.0,内存32G或者显卡内存8G+8G机器内存及以上。

安装Miniconda

1.1 获取安装包

方法一、把Miniconda安装包、ChatGLM-6B模型、webui项目、项目依赖包都放到网盘里面了,可以直接通过网盘获取(获取方式放在最后)。

方法二、因为Miniconda自带python,所以要在官网下载python版本为3.10的Miniconda版本。下载地址为:https://docs.conda.io/en/latest/miniconda.html#linux-installers,具体截图如下。(如果不想自己麻烦,我也已经把它放到云盘里面了)。

1.2 安装 Miniconda

将Miniconda下载安装包放到你要放的目录,这里我放在:/home/work/chatglm/miniconda 中,然后执行sh Miniconda3-latest-Linux-x86_64.sh 如下图所示,执行完之后按照提示进行回车(enter)就好了,注意:最后选择“yes”,这样每次启动,它都会自动给你切换到conda的base环境中。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1JNLIhtv-1680244896973)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230331102305501.png)]

创建项目运行虚拟机环境

miniconda支持创建多个虚拟环境,用来支撑不同版本(python)版本的代码,这里就为chatglm-6b创建一个单独的python虚拟机环境,名字叫:chatglm,后面会在该环境中安装跑chatglm-6b模型的所有依赖。下面是命令及截图:

conda create -n chatglm --clone base  (注:因为是离线安装这里选择clone的方式创建,直接创建会报错)conda env listconda activate chatglm

3、安装模型需要的所有依赖

chatglm-6b在centos上用到的所有依赖全都打包在packages里面了(在云盘中,获取方式放在最后),将其也放到/home/work/chatglm/packages下面,然后执行:

pip install --no-index --find-links=/home/work/chatglm/packages  -r requirements.txt

4、获取模型文件

方法一、通过网盘获取模型文件。

方法二、通过Hugging Face获取,连接地址:https://huggingface.co/THUDM/chatglm-6b/tree/main,下载所有的文件。建立chatglm_model文件夹,把下载的所有文件都塞到这里面。

不管通过以上哪种方法:将模型文件放到机器目录:/home/work/chatglm/chatglm_model下面。

5、获取项目webui

方法一、通过网盘获取模型文件

方法二、通过github开源项目获取,连接地址:https://github.com/Akegarasu/ChatGLM-webui,下载所有文件。建立webui文件夹,将下载的所有文件都塞到这个文件夹里面。

还是不管按照以上哪种方法获取,将模型文件放到机器目录:/home/work/chatglm/webui里面。

6、启动webui(最后一步)

按照上面的操作,最终的文件夹目录如下:

接着,进入到webui文件夹里面,执行如下命令:

python webui.py --model-path /home/work/chatglm/chatglm_model --listen --port 8898 --precision fp16

上面参数主要是:模型路径、监听端口、以及模型工作模式;除此之外还有其它的几个参数没有用到。所有参数解释具体如下:

 --model-path 指定模型路径

 --listen 如果不加该参数,只能通过127.0.0.0本地访问。注意:在centos服务器上部署,该参数一定要加,不然没有办法通过IP加端口访问模型服务。

 --port 没有啥好说的,指定端口用的。

 --share 通过gradio进行分享,它会帮你生成一个域名连接,但是需要访问互联网。离线centos服务器部署用不到。

 --precision 精度参数有4个,分别是fp32(只用CPU,32G内存以上), fp16,(12G以上显存) int4(8G以下显存使用), int8(8G显存使用)

 --cpu 只应用CPU,无显卡的时候使用

执行完以上命令之后,等待模型加载完成,通过IP+端口就可以访问服务啦!截图如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zxekwPZs-1680244896974)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230331143457044.png)]

7,资料获取

在这里插入图片描述
下载方式 关注: AINLPer 回复:chatglm6B

推荐阅读

[1] EMNLP2022 | 带有实体内存(Entity Memory)的统一编解码框架 (美国圣母大学)

[2] NeurIPS2022 | 训练缺少数据?你还有“零样本学习(zero-shot Learning)”(香槟分校)

[3] 一文了解EMNLP国际顶会 && 历年EMNLP论文下载 && 含EMNLP2022

[4]【历年NeurIPS论文下载】一文带你看懂NeurIPS国际顶会(内含NeurIPS2022)

来源地址:https://blog.csdn.net/yinizhilianlove/article/details/129879961

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Centos/Ubuntu离线部署清华chatGLM(特别详细,十分钟搞定)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录