chatglm2-6b-int4大语言模型家用电脑部署
介绍
ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGLM 相同的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
ChatGLM-6B-INT4 是 ChatGLM-6B 量化后的模型权重。具体的,ChatGLM-6B-INT4 对 ChatGLM-6B 中的 28 个 GLM Block 进行了 INT4 量化,没有对 Embedding 和 LM Head 进行量化。量化后的模型理论上 6G 显存(使用 CPU 即内存)即可推理,具有在嵌入式设备(如树莓派)上运行的可能。
在 CPU 上运行时,会根据硬件自动编译 CPU Kernel ,请确保已安装 GCC 和 OpenMP (Linux一般已安装,对于Windows则需手动安装),以获得最佳并行计算能力。
安装anaconda
下载anaconda,通过bash Anaconda3-2023.03-Linux-x86_64.sh 安装anaconda包
https://www.anaconda.com/download#downloads
下载git代码
git clone https://gitee.com/wilkwo/ChatGLM2-6B.git
通过项目内的requirements.txt 文件安装项目依赖
pip install -r requirements.txt
下载模型数据,将下载好的文件放到项目根目录下新建的int4目录
https://huggingface.co/THUDM/chatglm2-6b-int4
修改cli_demo.py文件中的目录为上面新建的Int4目录
tokenizer = AutoTokenizer.from_pretrained("./int4", trust_remote_code=True)
model = AutoModel.from_pretrained("./int4", trust_remote_code=True).cuda()
# 多显卡支持,使用下面两行代替上面一行,将num_gpus改为你实际的显卡数量
# from utils import load_model_on_gpus
# model = load_model_on_gpus("THUDM/chatglm2-6b", num_gpus=2)
model = model.eval()
启动命令行模型
python3 cli_demo.py
如果出现对话输入提示并且输入内容后能返回相应结果表明服务启动成功。
如果出现问题:Library cudart is not initialized,解决办法是通过conda安装相应的cudatoolkit驱动:
conda install cudatoolkit=11.3 -c nvidia
发表评论 (审核通过后显示评论):