Windows PC 部署 ChatGLM-6B-int4 量化模型教程
本文详细阐述了在 Windows PC 无 GPU 环境下部署 ChatGLM-6B-int4 量化模型的完整流程。内容涵盖环境准备工作,包括安装 Anaconda、Git 及 TDM-GCC 编译器;模型部署步骤,涉及源码克隆、依赖安装及量化模型下载;运行脚本修改与常见报错处理,如 readline 模块缺失及集合属性错误。最终实现在 CPU 环境下通过命令行交互使用大模型,解决了个人电脑无法直接运行大模型的痛点。

本文详细阐述了在 Windows PC 无 GPU 环境下部署 ChatGLM-6B-int4 量化模型的完整流程。内容涵盖环境准备工作,包括安装 Anaconda、Git 及 TDM-GCC 编译器;模型部署步骤,涉及源码克隆、依赖安装及量化模型下载;运行脚本修改与常见报错处理,如 readline 模块缺失及集合属性错误。最终实现在 CPU 环境下通过命令行交互使用大模型,解决了个人电脑无法直接运行大模型的痛点。

ChatGLM-6B 是清华大学知识工程和数据挖掘小组发布的开源对话机器人。6B 表示该模型拥有约 60 亿参数。ChatGLM-6B-int4 是针对原模型进行 INT4 量化的优化版本,占用资源更少,适合在个人电脑上进行部署测试和使用。
大模型的部署通常需要 GPU 资源,而许多个人电脑运行 Windows 操作系统且没有独立显卡。在这种情况下,可以通过 CPU 配合特定编译环境来运行量化后的模型。本文将详细介绍如何在 Windows PC 上从零开始部署 ChatGLM-6B-int4 量化模型。
部署 ChatGLM-6B-int4 量化模型需要提供 Python 运行环境、安装 Git 版本管理工具以及 TDM-GCC 软件(用于提供 C 代码编译环境)。
Anaconda 是一个便捷的包管理和环境管理发行版,包含 conda、Python 及超过 180 个科学计算包。
下载安装 访问 Anaconda 官方下载页面,下载 Windows 版本安装包。运行安装程序,一路点击【Next】即可完成安装。
配置环境变量 在系统环境变量 Path 中添加以下路径(请根据实际安装目录修改):
E:\Anaconda
E:\Anaconda\Scripts
E:\Anaconda\Library\mingw-w64\bin
E:\Anaconda\Library\usr\bin
E:\Anaconda\Library\bin
修改 pip 镜像源 为加速依赖下载,可配置国内镜像源:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
下载并安装 Git for Windows,安装完成后打开命令行输入 git version 确认安装成功。
TDM-GCC 提供必要的 C/C++ 编译器支持。下载对应版本的安装包,安装时注意勾选添加到系统环境变量选项,或手动添加至 Path。
在工作目录下打开命令提示符,执行以下步骤:
(1)克隆官方仓库:
git clone https://github.com/THUDM/ChatGLM-6B
cd ChatGLM-6B
(2)创建 Conda 虚拟环境并指定 Python 版本:
conda create -n chatglm_env python=3.10
conda activate chatglm_env
(3)安装依赖包:
pip install -r requirements.txt
注意:依赖包的版本需与项目要求一致,否则可能引发兼容性问题。
ChatGLM-6B-int4 量化模型托管于 Hugging Face,可通过以下方式获取:
(1)Git LFS 下载方式:
git lfs install
git clone https://huggingface.co/THUDM/chatglm-6b-int4
将克隆的文件夹放入 chatglm-6b 目录下。
(2)浏览器下载:
在 Hugging Face 页面找到模型文件,下载后解压至 chatglm-6b/chatglm-6b-int4 目录(若不存在则新建)。
模型运行脚本位于 ChatGLM-6B\cli_demo.py。需修改加载路径以指向量化模型。
修改代码: 将原有的加载代码注释掉,替换为以下内容:
# 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:启动时报错 No module named 'readline' 解决方案:在当前激活的虚拟环境中安装 pyreadline3。
python -m pip install pyreadline3
问题 2:启动时报错 AttributeError: module 'collections' has no attribute 'Callable'
原因:pyreadline 依赖包中的兼容性代码存在问题。
解决方案:找到 pyreadline 安装目录下的 py3k_compat.py 文件,将 return isinstance(x, collections.Callable) 修改为 return isinstance(x, collections.abc.Callable)。
完成上述修复后,运行 python cli_demo.py 即可启动交互界面。由于是在 CPU 环境下运行,推理速度可能较慢,CPU 占用率会较高,请耐心等待输出结果。
本文介绍了在 Windows 无 GPU 环境下部署 ChatGLM-6B-int4 量化模型的全过程。通过配置 Anaconda 环境和 TDM-GCC 编译器,结合量化模型的低资源特性,实现了在普通 PC 上的本地运行。虽然推理速度受限于硬件性能,但足以满足学习和测试需求。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online