diff --git a/README.md b/README.md index d04881b0b1a6d12fa50c4663e9447b6404f6541e..c8605d4758d713c7f159ae51dd280f4c18f31272 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,64 @@ -# chatglm.cpp +# chatglm-cpp使用指南 -#### 介绍 -Chinese models ChatGLM-6B & ChatGLM2-6B based on C/C++ +## 介绍 +chatglm-cpp是基于C/C++实现的ChatGLM大模型接口,可以支持用户在消费者级别的CPU机器上完成开源大模型的部署和使用。 +chatglm-cpp支持多个中文开源大模型的部署,如ChatGLM-6B,ChatGLM2-6B,Baichuan-13B等。 -#### 软件架构 -软件架构说明 +## 软件架构 +chatglm-cpp核心架构分为两层 +- 模型量化层:可以量化开源模型,减少模型大小; +- 模型启动层:可以启动量化后的模型。 +特性: +- 基于ggml的C/C++实现; +- 通过int4/int8量化、优化的KV缓存和并行计算等多种方式加速CPU推理; +- 互动界面是流媒体生成,具有打字机效果; +- 可以启动web界面和api服务; +- 无需 GPU,可只用 CPU 运行。 -#### 安装教程 +## 安装教程 +### 软硬件要求 +处理器架构:支持AArch64和X86_64处理器架构; -1. xxxx -2. xxxx -3. xxxx +操作系统:openEuler 23.09; -#### 使用说明 +内存:根据不同开源模型的大小,不低于4G。 -1. xxxx -2. xxxx -3. xxxx +### 安装组件 +使用chatglm-cpp部署大模型,需要安装chatglm-cpp软件包。安装前,请确保已经配置了openEuler yum源。 +1. 安装: +``` +yum install chatglm-cpp +``` +2. 查看是否安装成功: +``` +/usr/bin/chatglm_cpp_main -h +``` +若成功显示help信息则安装成功。 -#### 参与贡献 +## 使用说明 +1. 需要下载量化后的开源大模型,如ChatGLM-6B、ChatGLM2-6B等。 +2. 启动模型,其中model_path为模型存放的路径: +``` +/usr/bin/chatglm_cpp_main -m model_path -i +``` +可通过以下命令查看命令行选项用法: +``` +/usr/bin/chatglm_cpp_main -h -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +``` +## 规格说明 +本项目可支持在CPU级别的机器上进行大模型的部署和推理,但是模型推理速度对硬件仍有一定的要求,硬件配置过低可能会导致推理速度过慢,降低使用效率。 +表1可作为不同机器配置下推理速度的参考: -#### 特技 +表格中Q4_0,Q4_1,Q5_0,Q5_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 | -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)