mirror of https://github.com/THUDM/ChatGLM-6B
Update p-tuning-v2
parent
99875468dd
commit
4c923c4ed7
31
README.md
31
README.md
|
@ -7,16 +7,16 @@
|
||||||
## 介绍
|
## 介绍
|
||||||
|
|
||||||
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 [General Language Model (GLM)](https://github.com/THUDM/GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
|
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 [General Language Model (GLM)](https://github.com/THUDM/GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
|
||||||
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。同时实现了基于P-Tuning v2的[模型微调](ptuning/README.md)(INT4量化级别下最低只需 7GB 显存)。更多信息请参考我们的[博客](https://chatglm.cn/blog)。
|
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的[博客](https://chatglm.cn/blog)。此外,为了方便下游开发者针对自己的应用场景定制模型,我们同时实现了基于 P-Tuning v2 的[高效参数微调方法](ptuning/README.md),INT4 量化级别下最低只需 7GB 显存即可启动微调。
|
||||||
|
|
||||||
不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的[**局限性**](#局限性),如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于1300亿参数 [GLM-130B](https://github.com/THUDM/GLM-130B) 的 ChatGLM 正在内测开发中。
|
不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的[**局限性**](#局限性),如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 [GLM-130B](https://github.com/THUDM/GLM-130B) 的 ChatGLM 正在内测开发中。
|
||||||
|
|
||||||
*Read this in [English](README_en.md).*
|
*Read this in [English](README_en.md).*
|
||||||
|
|
||||||
## 更新信息
|
## 更新信息
|
||||||
**[2023/03/31]** 增加基于 P-Tuning-v2 的微调实现,最低只需 8GB 显存即可进行模型微调。详见[模型微调](ptuning/README.md)。
|
**[2023/03/31]** 增加基于 P-Tuning-v2 的高效参数微调实现,INT4 量化级别下最低只需 7GB 显存即可进行模型微调。详见[高效参数微调方法](ptuning/README.md)。
|
||||||
|
|
||||||
**[2023/03/23]** 增加API部署(感谢 [@LemonQu-GIT](https://github.com/LemonQu-GIT))。增加Embedding量化模型[ChatGLM-6B-INT4-QE](https://huggingface.co/THUDM/chatglm-6b-int4-qe)。增加对基于Apple Silicon的Mac上GPU加速的支持。
|
**[2023/03/23]** 增加 API 部署(感谢 [@LemonQu-GIT](https://github.com/LemonQu-GIT))。增加 Embedding 量化模型 [ChatGLM-6B-INT4-QE](https://huggingface.co/THUDM/chatglm-6b-int4-qe)。增加配备 Apple Silicon 芯片的 Mac 上 GPU 加速的支持。
|
||||||
|
|
||||||
**[2023/03/19]** 增加流式输出接口 `stream_chat`,已更新到网页版和命令行 Demo。修复输出中的中文标点。增加量化后的模型 [ChatGLM-6B-INT4](https://huggingface.co/THUDM/chatglm-6b-int4)
|
**[2023/03/19]** 增加流式输出接口 `stream_chat`,已更新到网页版和命令行 Demo。修复输出中的中文标点。增加量化后的模型 [ChatGLM-6B-INT4](https://huggingface.co/THUDM/chatglm-6b-int4)
|
||||||
|
|
||||||
|
@ -24,12 +24,11 @@ ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进
|
||||||
|
|
||||||
### 硬件需求
|
### 硬件需求
|
||||||
|
|
||||||
| **量化等级** | **最低 GPU 显存** |
|
| **量化等级** | **最低 GPU 显存**(推理) | **最低 GPU 显存**(高效参数微调) |
|
||||||
| -------------- | ----------------- |
|
| -------------- | ------------------------- | --------------------------------- |
|
||||||
| FP16(无量化) | 13 GB |
|
| FP16(无量化) | 13 GB | 14 GB |
|
||||||
| INT8 | 10 GB |
|
| INT8 | 10 GB | 11 GB |
|
||||||
| INT4 | 6 GB |
|
| INT4 | 6 GB | 7 GB |
|
||||||
|
|
||||||
### 环境安装
|
### 环境安装
|
||||||
|
|
||||||
使用 pip 安装依赖:`pip install -r requirements.txt`,其中 `transformers` 库版本推荐为 `4.26.1`,但理论上不低于 `4.23.1` 即可。
|
使用 pip 安装依赖:`pip install -r requirements.txt`,其中 `transformers` 库版本推荐为 `4.26.1`,但理论上不低于 `4.23.1` 即可。
|
||||||
|
@ -59,7 +58,7 @@ ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进
|
||||||
|
|
||||||
如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。
|
如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。
|
||||||
```
|
```
|
||||||
完整的模型实现可以在 [Hugging Face Hub](https://huggingface.co/THUDM/chatglm-6b) 上查看。如果你从 Hugging Face Hub 上下载checkpoint的速度较慢,也可以从[这里](https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/)手动下载。
|
完整的模型实现可以在 [Hugging Face Hub](https://huggingface.co/THUDM/chatglm-6b) 上查看。如果你从 Hugging Face Hub 上下载 checkpoint 的速度较慢,也可以从[这里](https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/)手动下载。
|
||||||
|
|
||||||
### Demo
|
### Demo
|
||||||
|
|
||||||
|
@ -94,14 +93,14 @@ python web_demo.py
|
||||||
python cli_demo.py
|
python cli_demo.py
|
||||||
```
|
```
|
||||||
|
|
||||||
程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入`clear`可以清空对话历史,输入`stop`终止程序。
|
程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入 `clear` 可以清空对话历史,输入 `stop` 终止程序。
|
||||||
|
|
||||||
### API部署
|
### API部署
|
||||||
首先需要安装额外的依赖`pip install fastapi uvicorn`,然后运行仓库中的[api.py](api.py):
|
首先需要安装额外的依赖 `pip install fastapi uvicorn`,然后运行仓库中的 [api.py](api.py):
|
||||||
```shell
|
```shell
|
||||||
python api.py
|
python api.py
|
||||||
```
|
```
|
||||||
默认部署在本地的8000端口,通过POST方法进行调用
|
默认部署在本地的 8000 端口,通过 POST 方法进行调用
|
||||||
```shell
|
```shell
|
||||||
curl -X POST "http://127.0.0.1:8000" \
|
curl -X POST "http://127.0.0.1:8000" \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
|
@ -167,7 +166,7 @@ model = AutoModel.from_pretrained("your local path", trust_remote_code=True).hal
|
||||||
```
|
```
|
||||||
即可使用在 Mac 上使用 GPU 加速模型推理。
|
即可使用在 Mac 上使用 GPU 加速模型推理。
|
||||||
|
|
||||||
## 模型微调
|
## 高效参数微调
|
||||||
详见 [ptuning/README.md](ptuning/README.md)。
|
详见 [ptuning/README.md](ptuning/README.md)。
|
||||||
|
|
||||||
## ChatGLM-6B 示例
|
## ChatGLM-6B 示例
|
||||||
|
@ -266,7 +265,7 @@ model = AutoModel.from_pretrained("your local path", trust_remote_code=True).hal
|
||||||
以下是部分针对本项目的教程/文档:
|
以下是部分针对本项目的教程/文档:
|
||||||
* [Windows部署文档](https://github.com/ZhangErling/ChatGLM-6B/blob/main/deployment_windows.md)
|
* [Windows部署文档](https://github.com/ZhangErling/ChatGLM-6B/blob/main/deployment_windows.md)
|
||||||
|
|
||||||
如果你有其他好的项目/教程的话,欢迎参照上述格式添加到README中并提出 [PR](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).
|
如果你有其他好的项目/教程的话,欢迎参照上述格式添加到 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)。
|
||||||
|
|
||||||
## 引用
|
## 引用
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue