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進行各種創新應用的開發。