ChatGLM-6B · 智谱清华中英双语开源对话模型 · 本地部署与使用全指南
项目仓库: https://github.com/THUDM/ChatGLM-6B
开源协议:MODEL_LICENSE(学术研究完全开放,登记后可免费商用) · 架构:GLM(General Language Model) · 参数:62 亿 · 推理框架:Hugging Face Transformers · 默认 API 端口:8000 · 仓库分支:main
1 项目简介
ChatGLM-6B 是一个开源、支持中英双语的对话语言模型,基于 General Language Model(GLM)架构,具有 62 亿参数。结合模型量化技术,用户可在消费级显卡上本地部署:INT4 量化级别下最低只需 6GB 显存即可推理。官方同时提供基于 P-Tuning v2 的高效参数微调方法。
模型权重对学术研究完全开放,填写问卷登记后亦允许免费商业使用。官方同时提示:请勿将模型及基于其的衍生物用于任何可能危害国家社会的用途,以及未经过安全评估和备案的服务。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | ChatGLM-6B |
| 仓库地址 | github.com/THUDM/ChatGLM-6B |
| 项目定位 | 中英双语开源对话模型(62 亿参数) |
| 架构 | GLM(General Language Model) |
| 开源协议 | MODEL_LICENSE(学术开放,登记后免费商用) |
| 推理库 | Hugging Face Transformers(推荐 4.27.1,≥4.23.1) |
| 模型权重 | Hugging Face Hub THUDM/chatglm-6b |
| 默认 API 端口 | 8000(api.py) |
| 升级版本 | ChatGLM2-6B / GLM-4 系列 |
1.2 适用场景
- 想在消费级显卡(6GB 显存)上本地跑一个中英双语对话模型。
- 需要在自己应用里用 Transformers 加载权重做对话推理。
- 研究基于 P-Tuning v2 的高效参数微调。
1.3 能力边界(官方口径)
- 模型实现仍在变动中;固定版本可在
from_pretrained加revision="v1.1.0"。 - 官方明确:未基于 ChatGLM-6B 开发任何网页/安卓/iOS/Windows 应用,使用须遵守安全与备案要求。
- 更强大的能力见后续的 ChatGLM2-6B 与 GLM-4 系列。
2 功能特性
- 中英双语对话:基于 GLM 架构,面向中文对话优化。
- 量化部署:FP16 / INT8 / INT4 量化,最低 6GB 显存可推理。
- 微调支持:基于 P-Tuning v2 的高效参数微调(INT4 下最低 7GB 显存)。
- 三种 Demo:网页版(Gradio)、命令行、API(FastAPI)。
- 本地加载:支持 Git LFS 下载权重后从本地路径加载。
3 官方界面预览
本仓库 README 以文字与代码为主,网页版 Demo 界面运行
web_demo.py 后本地打开为准。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/THUDM/ChatGLM-6B | 源码与脚本 |
| 模型权重 | HuggingFace THUDM/chatglm-6b | 模型参数 |
| 智谱开放平台 | open.bigmodel.cn | 更大规模 GLM 商业模型 |
| 升级版本 | ChatGLM2-6B | 升级版本 |
| 微调指南 | ptuning/README.md | P-Tuning v2 |
5 前置要求与服务器配置
5.1 硬件需求(官方表)
| 量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(微调) |
|---|---|---|
| FP16(无量化) | 13 GB | 14 GB |
| INT8 | 8 GB | 9 GB |
| INT4 | 6 GB | 7 GB |
5.2 软件前提
- Python + PyTorch:与 CUDA 匹配。
- Transformers:推荐
4.27.1,理论上不低于4.23.1。 - Git LFS:本地下载模型权重时需要。
- CPU 量化运行:需安装
gcc与openmp(多数 Linux 默认已装;Windows 用 TDM-GCC 勾选 openmp)。
6 方式一:代码调用(官方最小示例)
# 1. 克隆仓库
git clone https://github.com/THUDM/ChatGLM-6B.git
cd ChatGLM-6B
# 2. 安装依赖
pip install -r requirements.txt>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])7 方式二:本地加载模型权重
# 安装 Git LFS 后克隆权重
git clone https://huggingface.co/THUDM/chatglm-6b
# 网络较差时跳过 LFS 自动拉取,再手动拉取
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b8 三种运行入口
# 网页版 Demo(先装 gradio)
pip install gradio
python web_demo.py
# 命令行 Demo
python cli_demo.py
# API 部署(先装 fastapi uvicorn)
pip install fastapi uvicorn
python api.py
# 默认部署在本地 8000 端口,通过 POST 调用9 配置项说明
| 配置 | 位置 | 说明 |
|---|---|---|
trust_remote_code=True |
from_pretrained | 加载仓库自定义模型实现 |
.half().cuda() |
模型加载 | FP16 半精度 + GPU |
revision="v1.1.0" |
from_pretrained | 固定模型实现版本以保证兼容 |
| API 端口 | api.py |
默认 8000 |
| 量化 | 加载参数 | FP16 / INT8 / INT4 |
10 常见故障排查
- 显存不足:改用 INT4 量化(最低 6GB)。
- 模型下载慢/失败:用 Git LFS 先克隆到本地再从本地路径加载。
- transformers 版本不兼容:推荐
4.27.1,不低于4.23.1。 - CPU 量化运行报错:确认已装
gcc与openmp。 - 模型实现变动:在
from_pretrained中加revision="v1.1.0"锁定版本。
11 风险与合规说明
- 许可证:学术研究完全开放,商用需登记问卷;衍生物不得用于危害用途与未备案服务。
- 安全与备案:官方明确提醒用于未经过安全评估和备案的服务属于违规。
- 升级版本:新项目建议直接评估 ChatGLM2-6B / GLM-4 系列。
- 非官方声明:本文基于官方仓库 README 整理,参数以仓库 main 分支最新为准。