在windows部署ChatGLM-6B


图源:https://arxiv.org/pdf/2303.18223.pdf

在windows部署ChatGLM-6B

本文适合初级入门同学阅读参考,旨在介绍如何本地离线部署大语言模型,因此选了以部署资源要求较低的大模型ChatGLM-6B为例,其他大模型的部署大同小异。一般是选择在Linux系统上部署大模型的,本次就走一下不一般的路 – 在windows上部署。当然,系统的选择可不是本文的重点。

部署前的准备

因为在windows直接安装部署大模型会出现各种问题,所以先安装子系统WSL(不清楚怎么安装的可以参考文章),然后在子系统上安装官方要求的python环境和版本,最后就可以根据大模型官方教程进行模型部署了。

(后期建议使用python集成环境Anaconda来部署,即在Anaconda环境内启动模型api服务,优点是python环境隔离,因为每种大模型的python依赖都可能很有个性。但要注意在子系统WSL和在宿主windows下装conda有些许区别。)

下载模型文件

进入安装了python环境的子系统WSL下,下载模型文件ChatGLM-6B。使用git clone下载文件操作如下:

在这里插入图片描述

因为模型文件较大,根据指引需要先安装git lfs。
在这里插入图片描述
模型下载过程需要好几个小时,需要耐心等待。

安装模型依赖

根据教程:
在这里插入图片描述

依赖安装过程如果出现包错误,请尝试更换镜像源或许可以得到解决。
在这里插入图片描述

启动服务

依赖安装完之后,cli跑起来验证模型部署成功。看到如下界面则说明运行成功。

在这里插入图片描述

但是这种方式是每次运行完释放资源,之后每次运行脚本都会重新启动模型,进程非常驻的。我们接下来使用api来部署运行。参考github教程,我们直接克隆仓库代码,安装相关依赖运行api.py脚本。命令如下:
在这里插入图片描述

我们看到服务启动成功。
在这里插入图片描述

尝试调用api,成功响应如下:
在这里插入图片描述
至此在windows部署ChatGLM-6B的api服务部署成功了。

看一眼GPU面板。
在这里插入图片描述

常用命令

上文说到,为了环境隔离,一般会选择在Anaconda环境下部署。以下是在Anaconda环境下的一些Anaconda常用命令以及部署微调时经常用到的Linux基本命令,放这里备忘各取所需。

conda info --envs #查看环境 conda info --e
conda create -n env_name #创建一个虚拟环境
conda activate env_name #激活环境/进入环境
nvidia-smi #显示所有GPU的当前信息状态
nvidia-smi -l 1 #间隔1秒刷新GPU信息
nvidia-smi -q #查询所有GPU的当前详细信息
nvidia-smi -L #列出当前所有GPU设备
watch -n 0.5 nvidia-smi #动态地观察 GPU 的状态
ls -lh /home/mw/input/ChatGLM6B #检查模型文件正确挂载(GLM)

后记

一般情况我们不会考虑直接使用全量模型去支撑业务生产,太耗资源了。于是有很多的模型加速方案,比如压缩量化、剪枝、蒸馏等。但目前看起来都会对模型性能效果有影响,比如量化,官方我说影响微小,但实测不然,甚至无法满足场景需求。最终还是要看是否愿意牺牲业务效果来换性能了,如果从全量过渡到优化加速后有损的模型都存在一个问题,就是模型效果要重新评估
最新的GLM-4貌似官方集成了vLLM,不知道效果如何。使用vLLM官方代码对百川2和GLM-4等模型启动优化,倒是看到了加速效果,原理是显存管理,但看起来还是有损。
大语言模型的本地部署就介绍到这吧,感谢阅读。后续我们再聊一聊微调。如有兴趣其他更多关于AI落地资料还可以参看这里:AI应用落地

如果还学不会,来公众号【贝可林】找我,我骑共享单车到你家一起探讨。

  • 你打到几周目了呀?

黑神话悟空

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值