chatglm.cpp/README.md
2023-11-08 09:42:58 +08:00

2.3 KiB
Raw Blame History

chatglm-cpp使用指南

介绍

chatglm-cpp是基于C/C++实现的ChatGLM大模型接口可以支持用户在消费者级别的CPU机器上完成开源大模型的部署和使用。 chatglm-cpp支持多个中文开源大模型的部署如ChatGLM-6BChatGLM2-6BBaichuan-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源。

  1. 安装:
yum install chatglm-cpp
  1. 查看是否安装成功:
/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

规格说明

本项目可支持在CPU级别的机器上进行大模型的部署和推理但是模型推理速度对硬件仍有一定的要求硬件配置过低可能会导致推理速度过慢降低使用效率。

表1可作为不同机器配置下推理速度的参考

表格中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