长期支持版本

    社区创新版本

      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 推理;
      • 互动界面是流媒体生成,具有打字机效果;
      • 无需 GPU,可只用 CPU 运行。

      安装教程

      软硬件要求

      处理器架构:支持 AArch64 和 X86_64 处理器架构;

      操作系统:openEuler 23.09;

      内存:根据不同开源模型的大小,不低于4G。

      安装组件

      使用 chatglm-cpp 部署大模型,需要安装 chatglm-cpp 软件包。安装前,请确保已经配置了 openEuler yum 源。

      1. 安装:
      yum install chatglm-cpp
      
      1. 查看是否安装成功:
      chatglm_cpp_main -h
      

      若成功显示 help 信息则安装成功。

      使用说明

      不使用容器

      1. 需要安装 chatglm-cpp 软件包:
      yum install chatglm-cpp
      
      1. 需要下载开源大模型,如ChatGLM-6B、ChatGLM2-6B等。并将下载的开源大模型通过chatglm_convert.py进行模型量化:
      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 是输出的量化模型的名称。

      1. 启动模型,进行对话:
      chatglm_cpp_main -m model_path  -i
      

      其中model_path为量化模型的存放路径。

      可通过以下命令查看命令行选项用法:

      chatglm_cpp_main -h
      

      使用容器

      1. 拉取容器镜像:
      docker pull hub.oepkgs.net/openeuler/chatglm_image
      
      1. 运行容器镜像,进行对话:
      docker run -it --security-opt seccomp=unconfined hub.oepkgs.net/openeuler/chatglm_image
      

      正常启动界面

      模型启动后的界面如图1所示:

      图1 模型启动界面

      模型启动界面

      规格说明

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

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

      表格中 Q4_0,Q4_1,Q5_0,Q5_1 代表模型的量化精度;ms/token 代表模型的推理速度,含义为每个token推理耗费的毫秒数,该值越小推理速度越快;

      表1 模型推理速度的测试数据

      ChatGLM-6BQ4_0Q4_1Q5_0Q5_1
      ms/token (CPU @ Platinum 8260)74778689
      模型大小3.3G3.7G4.0G4.4G
      内存占用4.0G4.4G4.7G5.1G

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份