# ChatGLM-6B
<p align="center">
🌐 <a href="https://chatglm.cn/blog" target="_blank">Blog</a> • 🤗 <a href="https://huggingface.co/THUDM/chatglm-6b" target="_blank">HF Repo</a> • 🐦 <a href="https://twitter.com/thukeg" target="_blank">Twitter</a> • 📃 <a href="https://arxiv.org/abs/2103.10360" target="_blank">[GLM@ACL 22]</a> <a href="https://github.com/THUDM/GLM" target="_blank">[GitHub]</a> • 📃 <a href="https://arxiv.org/abs/2210.02414" target="_blank">[GLM-130B@ICLR 23]</a> <a href="https://github.com/THUDM/GLM-130B" target="_blank">[GitHub]</a> <br>
</p>
<p align="center">
👋 加入我们的 <a href="https://join.slack.com/t/chatglm/shared_invite/zt-1th2q5u69-7tURzFuOPanmuHy9hsZnKA" target="_blank">Slack</a> 和 <a href="resources/WECHAT.md" target="_blank">WeChat</a>
</p>
## 介绍
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 [General Language Model (GLM)](https://github.com/THUDM/GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的[博客](https://chatglm.cn/blog)。
为了方便下游开发者针对自己的应用场景定制模型,我们同时实现了基于 [P-Tuning v2](https://github.com/THUDM/P-tuning-v2) 的高效参数微调方法 [(使用指南)](ptuning/README.md) ,INT4 量化级别下最低只需 7GB 显存即可启动微调。
不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的[**局限性**](#局限性),如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 [GLM-130B](https://github.com/THUDM/GLM-130B) 的 ChatGLM 正在内测开发中。
*Read this in [English](README_en.md).*
## 友情链接
对 ChatGLM 进行加速的开源项目:
* [ChatGLM-MNN](https://github.com/wangzhaode/ChatGLM-MNN): 一个基于 MNN 的 ChatGLM-6B C++ 推理实现,支持根据显存大小自动分配计算任务给 GPU 和 CPU
* [JittorLLMs](https://github.com/Jittor/JittorLLMs):最低3G显存或者没有显卡都可运行 ChatGLM-6B FP16, 支持Linux、windows、Mac部署
基于或使用了 ChatGLM-6B 的开源项目:
* [langchain-ChatGLM](https://github.com/imClumsyPanda/langchain-ChatGLM):基于 langchain 的 ChatGLM 应用,实现基于可扩展知识库的问答
* [闻达](https://github.com/l15y/wenda):大型语言模型调用平台,基于 ChatGLM-6B 实现了类 ChatPDF 功能
* [chatgpt_academic](https://github.com/binary-husky/chatgpt_academic): 支持ChatGLM-6B的学术写作与编程工具箱,具有模块化和多线程调用LLM的特点,可并行调用多种LLM。
* [glm-bot](https://github.com/initialencounter/glm-bot):将ChatGLM接入Koishi可在各大聊天平台上调用ChatGLM
支持 ChatGLM-6B 和相关应用在线训练的示例项目:
* [ChatGLM-6B 的部署与微调教程](https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e)
* [ChatGLM-6B 结合 langchain 实现本地知识库 QA Bot](https://www.heywhale.com/mw/project/643977aa446c45f4592a1e59)
更多开源项目参见 [PROJECT.md](PROJECT.md)
如果你有其他好的项目/教程的话,欢迎参照上述格式添加到 README 中并提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。
## 使用方式
### 硬件需求
| **量化等级** | **最低 GPU 显存**(推理) | **最低 GPU 显存**(高效参数微调) |
| -------------- | ------------------------- | --------------------------------- |
| FP16(无量化) | 13 GB | 14 GB |
| INT8 | 8 GB | 9 GB |
| INT4 | 6 GB | 7 GB |
### 环境安装
使用 pip 安装依赖:`pip install -r requirements.txt`,其中 `transformers` 库版本推荐为 `4.27.1`,但理论上不低于 `4.23.1` 即可。
此外,如果需要在 cpu 上运行量化后的模型,还需要安装 `gcc` 与 `openmp`。多数 Linux 发行版默认已安装。对于 Windows ,可在安装 [TDM-GCC](https://jmeubank.github.io/tdm-gcc/) 时勾选 `openmp`。 Windows 测试环境 `gcc` 版本为 `TDM-GCC 10.3.0`, Linux 为 `gcc 11.3.0`。
### 代码调用
可以通过如下代码调用 ChatGLM-6B 模型来生成对话:
```python
>>> 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=[])
>>> print(response)
你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
>>> print(response)
晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:
1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。
2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。
3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。
4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。
5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。
6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。
如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。
```
### 从本地加载模型
以上代码会由 `transformers` 自动下载模型实现和参数。完整的模型实现可以在 [Hugging Face Hub](https://huggingface.co/THUDM/chatglm-6b)。如果你的网络环境较差,下载模型参数可能会花费较长时间甚至失败。此时可以先将模型下载到本地,然后从本地加载。
从 Hugging Face Hub 下载模型需要先[安装Git LFS](https://docs.github.com/zh/repositories/working-with-files/managing-large-files/installing-git-large-file-storage),然后运行
```Shell
git clone https://huggingface.co/THUDM/chatglm-6b
```
如果你从 Hugging Face Hub 上下载 checkpoint 的速度较慢,可以只下载模型实现
```Shell
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b
```
然后从[这里](https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/)手动下载模型参数文件,并将下载的文件替换到本地的 `chatglm-6b` 目录下。
将模型下载到本地之后,将以上代码中的 `THUDM/chatglm-6b` 替换为你本地的 `chatglm-6b` 文件夹的路径,即可从本地加载模型。
## Demo & API
我们提供了一个
没有合适的资源?快使用搜索试试~ 我知道了~
Langchain和ChatGLM代码包
共126个文件
pickle:39个
py:24个
md:17个
需积分: 5 32 下载量 144 浏览量
2023-04-28
15:30:57
上传
评论 3
收藏 23.77MB ZIP 举报
温馨提示
Langchain和ChatGLM代码包
资源推荐
资源详情
资源评论
收起资源包目录
Langchain和ChatGLM代码包 (126个子文件)
cmudict 3.64MB
Dockerfile 868B
web-demo.gif 1.61MB
.gitignore 3KB
.gitignore 2KB
qr_code_9.jpg 274KB
self-confusion_google.jpg 152KB
wechat.jpg 151KB
self-confusion_openai.jpg 143KB
self-confusion_tencent.jpg 125KB
deepspeed.json 509B
data_sample.jsonl 51KB
LICENSE 11KB
LICENSE 11KB
README.md 18KB
README_en.md 13KB
README_en.md 13KB
README.md 11KB
langchain-ChatGLM_README.md 10KB
README.md 9KB
README_en.md 7KB
Issue-with-Installing-Packages-Using-pip-in-Anaconda.md 6KB
在Anaconda中使用pip安装包无效问题.md 5KB
FAQ.md 4KB
README.md 4KB
PROJECT.md 4KB
CHANGELOG.md 2KB
CONTRIBUTING.md 2KB
INSTALL.md 871B
readme.md 288B
WECHAT.md 223B
MODEL_LICENSE 2KB
averaged_perceptron_tagger.pickle 5.85MB
polish.pickle 1.95MB
greek.pickle 1.86MB
finnish.pickle 1.86MB
finnish.pickle 1.77MB
polish.pickle 1.66MB
estonian.pickle 1.52MB
german.pickle 1.46MB
estonian.pickle 1.43MB
german.pickle 1.4MB
czech.pickle 1.21MB
danish.pickle 1.21MB
norwegian.pickle 1.2MB
turkish.pickle 1.17MB
danish.pickle 1.14MB
norwegian.pickle 1.13MB
czech.pickle 1.07MB
swedish.pickle 1010KB
turkish.pickle 993KB
swedish.pickle 957KB
greek.pickle 855KB
slovene.pickle 813KB
dutch.pickle 725KB
slovene.pickle 717KB
dutch.pickle 677KB
italian.pickle 643KB
portuguese.pickle 634KB
italian.pickle 601KB
portuguese.pickle 598KB
spanish.pickle 584KB
french.pickle 570KB
spanish.pickle 549KB
french.pickle 541KB
english.pickle 423KB
english.pickle 397KB
malayalam.pickle 216KB
malayalam.pickle 216KB
russian.pickle 32KB
russian.pickle 32KB
langchain+chatglm.png 1.07MB
webui_0419.png 901KB
web-demo.png 587KB
cli-demo.png 463KB
tour-guide.png 331KB
sport.png 291KB
role-play.png 279KB
comments-writing.png 260KB
self-introduction.png 231KB
email-writing-1.png 230KB
email-writing-2.png 224KB
blog-outline.png 162KB
factual_error.png 135KB
information-extraction.png 131KB
ad-writing-2.png 123KB
math_error.png 25KB
trainer.py 181KB
main.py 18KB
webui.py 12KB
trainer_seq2seq.py 11KB
local_doc_qa.py 8KB
arguments.py 8KB
chatglm_llm.py 7KB
web_demo.py 6KB
vectorstores.py 5KB
web_demo.py 4KB
web_demo2.py 2KB
utils.py 2KB
web_demo_old.py 2KB
共 126 条
- 1
- 2
资源评论
asdhobby
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功