Windows PC上从零开始部署ChatGML-6B-int4量化模型

引言

ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布的一个开源的对话机器人。6B表示这是ChatGLM模型的60亿参数的小规模版本,约60亿参数。

ChatGML-6B-int4量化模型是针对ChatGML-6B做的优化版本,占用更少的资源,以便个人电脑进行部署测试和使用。

大模型的部署一般需要GPU资源,而个人电脑一般都是Windows操作系统,且没有独立的GPU。那么大模型如何部署在只有CPU的Windows机器上呢?需要额外安装一个叫TDM-GCC的软件。

下面详细阐述ChatGML-6B-int4量化模型在Windows PC上的操作过程:

环境准备

ChatGML-6B-int4量化模型部署需要提供python运行环境、安装好Git版本管理工具和TDM-GCC软件。

1. 安装Anaconda

Anaconda是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。

下载安装

Anaconda官方下载地址:https://www.anaconda.com/download/
下载之后,一路点击【next】,即可安装完成。

配置环境变量

在PC电脑的环境变量Path中增加Anaconda相关的环境变量。

E:\Anaconda 
E:\Anaconda\Scripts 
E:\Anaconda\Library\mingw-w64\bin
E:\Anaconda\Library\usr\bin 
E:\Anaconda\Library\bin

注意,其中E:\Anaconda改为Anaconda自己的安装根目录。

修改pip镜像源

修改pip安装软件的镜像源,可以加速依赖下载速度。

# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

2. 安装Git

Git Windows版本下载地址:https://git-scm.com/download/win
下载之后可以一路点击【next】即完成安装,通过如下命令查看版本信息:

git version

3. 安装TDM-GCC

TDM-GCC主要对模型一些C代码提供编译环境,下载地址:https://jmeubank.github.io/tdm-gcc/
下载之后可以一路点击【next】即完成安装。

模型部署

1. 下载模型源码并安装依赖

(1)在你的工作目录打开命令提示窗口,默认下载到当前目录

git clone https://github.com/THUDM/ChatGLM-6B

(2)切换到chatGLM-6B目录

cd ChatGLM-6B

(3)创建conda的虚拟环境,指定Python的版本

conda create -n VENV310 python=3.10

(4)激活环境

conda activate VENV310

(5)下载依赖包

pip install -r requirements.txt

本节指定的版本非常重要,否则会在下载依赖包环节出现各种问题。
本节操作目的主要是为下面的量化模型提供运行脚本和运行环境。

2. 下载量化模型

ChatGML-6B-int4量化模型下载比较麻烦,需要到huggingface网站下载,需要用到科学上网。网上说国内魔搭社区下载的模型代码不完整。

在huggingface上下载又有两种方式:通过Git下载和浏览器下载。

(1)Git下载方式:

git lfs install 
git clone https://huggingface.co/THUDM/chatglm-6b-int4

可以将该工程下载到chatGLM-6B目录下面。

(2)浏览器下载:
在浏览器打开https://huggingface.co/THUDM/chatglm-6b-int4/tree/main,将目录下的文件全部下载到如下目录:

chatGLM-6B/chatglm-6b-int4  #如果没有该目录则新建

3. 运行量化模型

模型运行脚本文件为:ChatGLM-6B\cli_demo.py,修改该文件的模型加载代码,改为加载chatglm-6b-int4量化模型。修改内容如下:

# tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
# model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
tokenizer = AutoTokenizer.from_pretrained("chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("chatglm-6b-int4",trust_remote_code=True).float()

注意,量化模型目录chatglm-6b-int4一定要保证与当前文件在同一个父目录下。

运行出现的问题:

(1)在启动cli_demo的时候报错:No module named ‘readline’
解决方案:下载pyreadline3,在当前激活的虚拟环境中执行如下命令:

python -m pip install pyreadline

(2)在启动cli_demo的时候报错:AttributeError: module ‘collections’ has no attribute ‘Callable’
解决方案:这是pyreadline依赖包的文件py3k_compat.py有问题,需要修改依赖包的代码,把return isinstance(x, collections.Callable)改为 return isinstance(x, collections.abc.Callable)即可正常使用。

处理完上述问题之后,ChatGLM-6B\cli_demo.py该脚本可以正常运行,控制台会输出脚本内置问题的答案,由于电脑配置的问题,结果输出非常缓慢,且我的CPU使用率一直是100%,爆了!

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧十一郎君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值