ChatGLM3 本地化部署与常见问题排查指南
ChatGLM3 是智谱 AI 推出的开源对话模型。本文介绍如何在本地环境部署 ChatGLM3-6B,涵盖 Python 环境配置、依赖安装及 Streamlit 演示启动。重点解决 CPU 运算警告、CUDA 版本不匹配及 PyTorch 无法调用显卡等常见问题,提供详细的版本检查命令与代码修改方案,帮助用户顺利完成本地化部署并优化推理性能。

ChatGLM3 是智谱 AI 推出的开源对话模型。本文介绍如何在本地环境部署 ChatGLM3-6B,涵盖 Python 环境配置、依赖安装及 Streamlit 演示启动。重点解决 CPU 运算警告、CUDA 版本不匹配及 PyTorch 无法调用显卡等常见问题,提供详细的版本检查命令与代码修改方案,帮助用户顺利完成本地化部署并优化推理性能。

ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是该系列中的开源模型,在保留对话流畅、部署门槛低等特性的基础上,引入了更强大的基础模型和完整的功能支持(如工具调用、代码执行)。
项目要求 Python 环境最低版本为 3.10。安装完成后,可通过以下命令查看版本:
python --version
推荐使用 Miniconda 管理环境。安装完成后使用 conda -V 确认版本号。
克隆官方仓库到本地:
git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
使用 pip 安装项目所需的依赖包:
pip install -r requirements.txt
进入 basic_demo 目录,运行 Streamlit 脚本:
streamlit run web_demo_streamlit.py
首次执行时会自动下载约 11GB 的模型文件。注意网络连接稳定性,国内用户可能需要配置代理以确保模型权重下载成功。
如果控制台出现 WARNING:root:Some parameters are on the meta device...,说明模型正在使用 CPU 或磁盘卸载进行计算,速度极慢。需确保 PyTorch 正确识别了 GPU。
默认配置可能未强制指定设备。编辑 web_demo_streamlit.py 中的 get_model 函数,显式指定 CUDA 设备并进行量化:
def get_model():
tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)
# 指定 device_map="cuda" 并使用 4bit 量化以节省显存
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device_map="cuda").quantize(4).cuda()
return tokenizer, model
若仍无法调用 GPU,请检查 PyTorch 是否安装了 CUDA 支持版本。
验证 PyTorch CUDA 状态:
import torch
print(torch.cuda.is_available())
print(torch.__version__)
若输出 False 或版本后缀含 cpu,则需重新安装。
查询驱动支持的 CUDA 版本:
在终端输入 nvidia-smi,查看右上角显示的 CUDA Version。这是驱动支持的最高版本,实际安装的 CUDA Toolkit 版本不应超过此值。
安装 CUDA Toolkit:
根据驱动版本前往 NVIDIA 官网下载对应的 CUDA Toolkit。安装时注意环境变量配置,确保 nvcc -V 能正常显示版本。
安装 PyTorch: 访问 PyTorch 官网生成安装命令,选择匹配的 CUDA 版本。例如:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
ChatGLM3-6B 全量参数占用较大显存。建议使用 4-bit 量化(如上述代码所示),可显著降低显存需求。若显存不足,可尝试调整 device_map 策略或使用更低精度的量化版本。
本地部署受限于硬件性能,推理速度可能不如云端 API。对于高并发场景,建议考虑云服务器部署或使用模型蒸馏技术。
完成上述步骤后,即可在本地体验 ChatGLM3 的对话能力。部署过程中核心在于确保 PyTorch 与 CUDA 版本的严格对应,以及合理配置显存资源。遇到问题时,优先检查环境变量的路径设置及依赖包的版本兼容性。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 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