2.3 KiB
2.3 KiB
chatglm-cpp使用指南
介绍
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处理器架构;
操作系统:openEuler 23.09;
内存:根据不同开源模型的大小,不低于4G。
安装组件
使用chatglm-cpp部署大模型,需要安装chatglm-cpp软件包。安装前,请确保已经配置了openEuler yum源。
- 安装:
yum install chatglm-cpp
- 查看是否安装成功:
/usr/bin/chatglm_cpp_main -h
若成功显示help信息则安装成功。
使用说明
- 需要下载量化后的开源大模型,如ChatGLM-6B、ChatGLM2-6B等。
- 启动模型,其中model_path为模型存放的路径:
/usr/bin/chatglm_cpp_main -m model_path -i
可通过以下命令查看命令行选项用法:
/usr/bin/chatglm_cpp_main -h
规格说明
本项目可支持在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 |