Home
Login

智谱AI与清华大学KEG实验室联合发布的开源双语对话大语言模型,支持工具调用、代码执行等功能

Apache-2.0Python 13.7kTHUDM Last Updated: 2025-01-13

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:

  1. Chat模式: 标准对话交互
  2. Tool模式: 工具调用演示
  3. Code Interpreter模式: 代码执行环境

许可证与使用条款

  • 学术研究: 完全开放使用
  • 商业使用: 填写问卷登记后允许免费商业使用
  • 使用限制: 不得用于可能危害国家和社会的用途
  • 安全要求: 需通过安全评估和备案的服务

技术架构特点

模型架构

  • 基于GLM架构的改进版本
  • 优化的注意力机制
  • 更好的多语言支持
  • 原生支持工具调用

训练优化

  • 更多样化的训练数据
  • 更充分的训练步数
  • 更合理的训练策略
  • 针对中文优化

社区贡献

项目积极拥抱开源社区,与多个优秀项目深度合作,形成了完整的生态系统。开发者可以基于ChatGLM3进行各种创新应用的开发。