chatglm.cpp/README.md

90 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

2023-11-08 09:42:58 +08:00
# chatglm-cpp使用指南
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
## 介绍
chatglm-cpp是基于C/C++实现的ChatGLM大模型接口可以支持用户在CPU机器上完成开源大模型的部署和使用。
2023-11-08 09:42:58 +08:00
chatglm-cpp支持多个中文开源大模型的部署如ChatGLM-6BChatGLM2-6BBaichuan-13B等。
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
## 软件架构
chatglm-cpp核心架构分为两层
- 模型量化层:可以量化开源模型,减少模型大小;
- 模型启动层:可以启动量化后的模型。
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
特性:
- 基于ggml的C/C++实现;
- 通过int4/int8量化、优化的KV缓存和并行计算等多种方式加速CPU推理
- 互动界面是流媒体生成,具有打字机效果;
- 无需 GPU可只用 CPU 运行。
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
## 安装教程
### 软硬件要求
处理器架构支持AArch64和X86_64处理器架构
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
操作系统openEuler 23.09
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
内存根据不同开源模型的大小不低于4G。
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
### 安装组件
使用chatglm-cpp部署大模型需要安装chatglm-cpp软件包。安装前请确保已经配置了openEuler yum源。
1. 安装:
```
yum install chatglm-cpp
```
2. 查看是否安装成功:
```
chatglm_cpp_main -h
2023-11-08 09:42:58 +08:00
```
若成功显示help信息则安装成功。
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
## 使用说明
### 不使用容器
1. 需要安装chatglm-cpp软件包
```
yum install chatglm-cpp
2023-11-08 09:42:58 +08:00
```
2. 需要下载开源大模型如ChatGLM-6B、ChatGLM2-6B等。并将下载的开源大模型通过chatglm_convert.py进行模型量化
2023-11-08 09:42:58 +08:00
```
python3 /usr/bin/chatglm_convert.py -i model_path/ -t q4_0 -o chatglm-ggml_1.bin
```
其中model_path为开源大模型的存放路径q4_0为开源大模型量化的精度chatglm-ggml_1.bin是输出的量化模型的名称。
3. 启动模型,进行对话:
```
chatglm_cpp_main -m model_path -i
2023-11-08 09:42:58 +08:00
```
其中model_path为量化模型的存放路径。
2023-08-22 08:05:07 +00:00
可通过以下命令查看命令行选项用法:
```
chatglm_cpp_main -h
```
### 使用容器
1. 拉取容器镜像:
```
docker pull hub.oepkgs.net/openeuler/chatglm_image
2023-11-08 09:42:58 +08:00
```
2. 运行容器镜像,进行对话:
```
docker run -it --security-opt seccomp=unconfined hub.oepkgs.net/openeuler/chatglm_image
```
### 正常启动界面
模型启动后的界面如图1所示
**图1** 模型启动界面
![输入图片说明](chatglm.png)
2023-11-08 09:42:58 +08:00
## 规格说明
本项目可支持在CPU级别的机器上进行大模型的部署和推理但是模型推理速度对硬件仍有一定的要求硬件配置过低可能会导致推理速度过慢降低使用效率。
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
表1可作为不同机器配置下推理速度的参考
2023-08-22 08:05:07 +00:00
2023-11-08 09:42:58 +08:00
表格中Q4_0Q4_1Q5_0Q5_1代表模型的量化精度ms/token代表模型的推理速度含义为每个token推理耗费的毫秒数该值越小推理速度越快
**表1** 模型推理速度的测试数据
| ChatGLM-6B | Q4_0 | Q4_1 | Q5_0 | Q5_1 |
|--------------------------------|------|------|------|------|
| ms/token (CPU @ Platinum 8260) | 74 | 77 | 86 | 89 |
| 模型大小 | 3.3G | 3.7G | 4.0G | 4.4G |
| 内存占用 | 4.0G | 4.4G | 4.7G | 5.1G |
2023-08-22 08:05:07 +00:00