API平台 新一代 API 平台已经上线,您可以直接在 API
平台上体验 GLM-4、GLM-3-Turbo、CharacterGLM-3,CogView-3 等新模型。
其中GLM-4、GLM-3-Turbo两个模型支持了 System Prompt、Function Call、 Retrieval、Web_Search等新功能,欢迎体验。
@article{zeng2022glm,
title={Glm-130b: An open bilingual pre-trained model},
author={Zeng, Aohan and Liu, Xiao and Du, Zhengxiao and Wang, Zihan and Lai, Hanyu and Ding, Ming and Yang, Zhuoyi and Xu, Yifan and Zheng, Wendi and Xia, Xiao and others},
journal={arXiv preprint arXiv:2210.02414},
year={2022}
}
@inproceedings{du2022glm,
title={GLM: General Language Model Pretraining with Autoregressive Blank Infilling},
author={Du, Zhengxiao and Qian, Yujie and Liu, Xiao and Ding, Ming and Qiu, Jiezhong and Yang, Zhilin and Tang, Jie},
booktitle={Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)},
pages={320--335},
year={2022}
}
ChatGLM3
🤗 HF Repo • 🤖 ModelScope • 🤖 WiseModel • 🐦 Twitter • 📃 [GLM@ACL 22] [GitHub] • 📃 [GLM-130B@ICLR 23] [GitHub]
👋 加入我们的 Slack 和 微信
📍在 chatglm.cn 体验更大规模的 ChatGLM 模型。
Read this in English.
📔 关于
ChatGLM3-6B
更为详细的使用信息,可以参考GLM-4 介绍
我们已经发布最新的 GLM-4 模型,该模型在多个指标上有了新的突破,您可以在以下两个渠道体验我们的最新模型。
智谱清言 体验最新版 GLM-4,包括 GLMs,All tools等功能,下载 智谱清言 APP 或者使用 网页端。
API平台 新一代 API 平台已经上线,您可以直接在 API 平台上体验
GLM-4
、GLM-3-Turbo
、CharacterGLM-3
,CogView-3
等新模型。 其中GLM-4
、GLM-3-Turbo
两个模型支持了System Prompt
、Function Call
、Retrieval
、Web_Search
等新功能,欢迎体验。GLM4 API 开源教程 GLM-4 API教程和基础应用,欢迎尝试。 API相关问题可以在本开源教程疑问,或者使用GLM-4 API AI助手 来获得常见问题的帮助。
ChatGLM3 介绍
ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:
ChatGLM3 开源模型旨在与开源社区一起推动大模型技术发展,恳请开发者和大家遵守 开源协议 ,勿将开源模型和代码及基于开源项目产生的衍生物用于任何可能给国家和社会带来危害的用途以及用于任何未经过安全评估和备案的服务。目前,本项目团队未基于 ChatGLM3 开源模型开发任何应用,包括网页端、安卓、苹果 iOS 及 Windows App 等应用。
尽管模型在训练的各个阶段都尽力确保数据的合规性和准确性,但由于 ChatGLM3-6B 模型规模较小,且模型受概率随机性因素影响,无法保证输出内容的准确。同时模型的输出容易被用户的输入误导。* 本项目不承担开源模型和代码导致的数据安全、舆情风险或发生任何模型被误导、滥用、传播、不当利用而产生的风险和责任。*
模型列表
友情链接
以下优秀开源仓库已经对 ChatGLM3-6B 模型深度支持,欢迎大家扩展学习。
推理加速:
高效微调:
应用框架:
LangChain-Chatchat: 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的检索增强生成(RAG)大模型知识库项目。
BISHENG: 开源大模型应用开发平台,赋能和加速大模型应用开发落地,帮助用户以最佳体验进入下一代应用开发模式。
评测结果
典型任务
我们选取了 8 个中英文典型数据集,在 ChatGLM3-6B (base) 版本上进行了性能测试。
我们在多个长文本应用场景下对 ChatGLM3-6B-32K 进行了人工评估测试。与二代模型相比,其效果平均提升了超过 50%。在论文阅读、文档摘要和财报分析等应用中,这种提升尤为显著。此外,我们还在 LongBench 评测集上对模型进行了测试,具体结果如下表所示
使用方式
环境安装
首先需要下载本仓库:
然后使用 pip 安装依赖:
torch
的版本正确,请严格按照 官方文档 的说明安装。综合 Demo
我们提供了一个集成以下三种功能的综合 Demo,运行方法请参考综合 Demo
代码调用
可以通过如下代码调用 ChatGLM 模型来生成对话:
从本地加载模型
以上代码会由
transformers
自动下载模型实现和参数。完整的模型实现在 Hugging Face Hub 。如果你的网络环境较差,下载模型参数可能会花费较长时间甚至失败。此时可以先将模型下载到本地,然后从本地加载。从 Hugging Face Hub 下载模型需要先安装Git LFS ,然后运行
如果从你从 HuggingFace 下载比较慢,也可以从 ModelScope 中下载。
模型微调
我们提供了一个微调 ChatGLM3-6B 模型的基础套件,可以用来微调 ChatGLM3-6B 模型。微调套件的使用方法请参考 微调套件。
网页版对话 Demo
可以通过以下命令启动基于 Streamlit 的网页版 demo:
网页版 demo 会运行一个 Web Server,并输出地址。在浏览器中打开输出的地址即可使用。 经测试,基于 Streamlit 的网页版 Demo 会更流畅。
命令行对话 Demo
运行仓库中 cli_demo.py:
程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入
clear
可以清空对话历史,输入stop
终止程序。LangChain Demo
代码实现请参考 LangChain Demo。
工具调用
关于工具调用的方法请参考 工具调用。
OpenAI API / Zhipu API Demo
我们已经推出了 OpenAI / ZhipuAI 格式的 开源模型 API 部署代码,可以作为任意基于 ChatGPT 的应用的后端。 目前,可以通过运行仓库中的 api_server.py 进行部署
同时,我们也书写了一个示例代码,用来测试API调用的性能。
如果测试成功,则模型应该返回一段故事。
低成本部署
模型量化
默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:
模型量化会带来一定的性能损失,经过测试,ChatGLM3-6B 在 4-bit 量化下仍然能够进行自然流畅的生成。
CPU 部署
如果你没有 GPU 硬件的话,也可以在 CPU 上进行推理,但是推理速度会更慢。使用方法如下(需要大概 32GB 内存)
Mac 部署
对于搭载了 Apple Silicon 或者 AMD GPU 的 Mac,可以使用 MPS 后端来在 GPU 上运行 ChatGLM3-6B。需要参考 Apple 的 官方说明 安装 PyTorch-Nightly(正确的版本号应该是2.x.x.dev2023xxxx,而不是 2.x.x)。
目前在 MacOS 上只支持从本地加载模型。将代码中的模型加载改为从本地加载,并使用 mps 后端:
加载半精度的 ChatGLM3-6B 模型需要大概 13GB 内存。内存较小的机器(比如 16GB 内存的 MacBook Pro),在空余内存不足的情况下会使用硬盘上的虚拟内存,导致推理速度严重变慢。
多卡部署
如果你有多张 GPU,但是每张 GPU 的显存大小都不足以容纳完整的模型,那么可以将模型切分在多张GPU上。首先安装 accelerate:
pip install accelerate
,然后即可正常加载模型。OpenVINO Demo
ChatGLM3-6B 已经支持使用 OpenVINO 工具包进行加速推理,在英特尔的GPU和GPU设备上有较大推理速度提升。具体使用方法请参考 OpenVINO Demo。
TensorRT-LLM Demo
ChatGLM3-6B已经支持使用 TensorRT-LLM 工具包进行加速推理,模型推理速度得到多倍的提升。具体使用方法请参考 TensorRT-LLM Demo 和 官方技术文档。
引用
如果你觉得我们的工作有帮助的话,请考虑引用下列论文。