ChatGLM3项目详细介绍
项目概述
ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B引入了多项重要的新特性和改进。
项目地址: https://github.com/THUDM/ChatGLM3
核心特性
1. 更强大的基础模型
ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。
2. 更完整的功能支持
- 新版Prompt格式: 采用全新设计的Prompt格式,支持更灵活的对话交互
- 工具调用 (Function Call): 原生支持工具调用功能,模型可以主动调用外部工具
- 代码执行 (Code Interpreter): 支持在Jupyter环境中执行代码并获取结果
- Agent任务: 支持复杂的智能体任务场景
3. 更全面的开源序列
提供多个版本以满足不同需求:
- ChatGLM3-6B: 标准对话模型,支持8K上下文长度
- ChatGLM3-6B-Base: 基础预训练模型
- ChatGLM3-6B-32K: 长文本对话模型,支持32K上下文
- ChatGLM3-6B-128K: 超长文本理解模型,支持128K上下文
性能表现
基础能力评测
在8个中英文典型数据集上的测试结果:
| 模型 | GSM8K | MATH | BBH | MMLU | C-Eval | CMMLU | MBPP | AGIEval |
|---|---|---|---|---|---|---|---|---|
| ChatGLM2-6B-Base | 32.4 | 6.5 | 33.7 | 47.9 | 51.7 | 50.0 | - | - |
| ChatGLM3-6B-Base | 72.3 | 25.7 | 66.1 | 61.4 | 69.0 | 67.5 | 52.4 | 53.7 |
长文本处理能力
在多个长文本应用场景下对 ChatGLM3-6B-32K 进行了人工评估测试。与二代模型相比,其效果平均提升了超过 50%。在论文阅读、文档摘要和财报分析等应用中提升尤为显著。
安装与使用
环境准备
git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
pip install -r requirements.txt
基础使用示例
from transformers import AutoTokenizer, AutoModel
# 加载模型
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device='cuda')
model = model.eval()
# 对话交互
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
硬件要求
- 标准加载: 需要约13GB显存(FP16精度)
- 量化加载: 4-bit量化后显存需求大幅降低
- CPU推理: 需要约32GB内存
- 多GPU支持: 可将模型分布在多张GPU上
部署方式
1. Web界面部署
# Gradio版本
python web_demo_gradio.py
# Streamlit版本
streamlit run web_demo_streamlit.py
2. 命令行交互
python cli_demo.py
3. API服务部署
cd openai_api_demo
python api_server.py
提供OpenAI兼容的API接口,支持:
- 标准对话接口
- 工具调用接口
- 流式响应
- 温度和top_p参数控制
微调与扩展
微调支持
项目提供完整的微调套件,支持:
- 指令微调
- 对话微调
- 任务特定微调
社区生态
支持多个优秀的开源项目:
推理加速:
- chatglm.cpp: 类似llama.cpp的量化加速方案
- ChatGLM3-TPU: TPU加速推理
- TensorRT-LLM: NVIDIA GPU高性能推理
- OpenVINO: Intel设备加速推理
微调框架:
- LLaMA-Factory: 高效微调框架
应用框架:
- LangChain-Chatchat: RAG知识库项目
- BISHENG: 大模型应用开发平台
- RAGFlow: 深度文档理解RAG引擎
综合Demo功能
项目提供集成三种模式的综合Demo:
- Chat模式: 标准对话交互
- Tool模式: 工具调用演示
- Code Interpreter模式: 代码执行环境
许可证与使用条款
- 学术研究: 完全开放使用
- 商业使用: 填写问卷登记后允许免费商业使用
- 使用限制: 不得用于可能危害国家和社会的用途
- 安全要求: 需通过安全评估和备案的服务
技术架构特点
模型架构
- 基于GLM架构的改进版本
- 优化的注意力机制
- 更好的多语言支持
- 原生支持工具调用
训练优化
- 更多样化的训练数据
- 更充分的训练步数
- 更合理的训练策略
- 针对中文优化
社区贡献
项目积极拥抱开源社区,与多个优秀项目深度合作,形成了完整的生态系统。开发者可以基于ChatGLM3进行各种创新应用的开发。