Add CPU support

pull/9/head
duzx16 2023-03-14 15:38:48 +08:00
parent 3cd188aa88
commit 4f4d3e5df0
1 changed files with 10 additions and 2 deletions

View File

@ -79,7 +79,8 @@ python cli_demo.py
程序会在命令行中进行交互式的对话,在命令行中输入指示并回车即可生成回复,输入`clear`可以清空对话历史,输入`stop`终止程序。
## 模型量化
## 低成本部署
### 模型量化
默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:
```python
@ -89,7 +90,14 @@ model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).ha
进行 2 至 3 轮对话后8-bit 量化下 GPU 显存占用约为 10GB4-bit 量化下仅需 6GB 占用。随着对话轮数的增多,对应消耗显存也随之增长,由于采用了相对位置编码,理论上 ChatGLM-6B 支持无限长的 context-length但总长度超过 2048训练长度后性能会逐渐下降。
模型量化会带来一定的性能损失经过测试ChatGLM-6B 在 4-bit 量化下仍然能够进行自然流畅的生成,使用 [GPT-Q](https://arxiv.org/abs/2210.17323) 等量化方案可以进一步压缩量化精度/提升相同量化精度下的模型性能,我们期待开源社区为本项目提供对应 Pull Request。
模型量化会带来一定的性能损失经过测试ChatGLM-6B 在 4-bit 量化下仍然能够进行自然流畅的生成,使用 [GPT-Q](https://arxiv.org/abs/2210.17323) 等量化方案可以进一步压缩量化精度/提升相同量化精度下的模型性能,欢迎大家提出对应的 Pull Request。
### CPU部署
如果你没有GPU硬件的话也可以在CPU上进行推理。使用方法如下
```python
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).float()
```
CPU上推理速度可能会比较慢。
## ChatGLM-6B示例