chatglm.cpp

chatglm.cpp

C++实现的ChatGLM实时聊天工具

ChatGLM.cpp 是一个使用C++实现的实时聊天项目,支持ChatGLM-6B、ChatGLM2-6B、ChatGLM3和GLM-4模型,兼容多种硬件和操作系统。项目通过int4/int8量化、优化的KV缓存和并行计算技术,实现了高效的CPU推理,并支持P-Tuning v2和LoRA微调模型。该项目还提供Python绑定、网络演示和API服务器,扩展了使用场景,适用于高效实时聊天。

ChatGLMC++实时聊天模型量化机器学习Github开源项目

项目介绍:ChatGLM.cpp

简介

ChatGLM.cpp 是关于 ChatGLM 系列模型的 C++ 实现项目,它能让用户在设备上实时聊天。这个项目涵盖了如 ChatGLM-6B、ChatGLM2-6B、ChatGLM3、GLM-4 等模型,旨在提高在设备(如 MacBook)上运行深度学习模型的效率。

项目特点

  • 纯 C++ 实现:ChatGLM.cpp 基于 ggml 库,跟 llama.cpp 具有类似的工作方式。
  • 内存优化处理:通过 int4/int8 量化技术优化 CPU 推理,加速并减少内存占用。
  • 模型微调支持:支持 P-Tuning v2 和 LoRA 微调模型。
  • 流式生成:模型支持流式数据生成,带有打字机效果。
  • 多种接口:提供 Python 绑定、Web 演示、API 服务器等多种使用方式。
  • 广泛的硬件和平台支持:支持多个硬件和平台,包括 x86/arm CPU、NVIDIA GPU、Apple Silicon GPU,以及 Linux、MacOS 和 Windows 系统。

使用说明

准备工作

  1. 克隆项目到本地机器上:

    git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp
  2. 更新子模块(如果需要):

    git submodule update --init --recursive

模型量化

需要准备好库来加载和量化 Hugging Face 的模型:

python3 -m pip install -U pip python3 -m pip install torch tabulate tqdm transformers accelerate sentencepiece

使用转换脚本将模型转换为量化的 GGML 格式。例如,将 ChatGLM-6B 模型转换为 q4_0(量化为 int4)格式:

python3 chatglm_cpp/convert.py -i THUDM/chatglm-6b -t q4_0 -o models/chatglm-ggml.bin

支持多种量化类型,用户可以根据需要指定:

  • q4_0(int4, 对称)
  • q4_1(int4, 非对称)
  • q5_0(int5, 对称)
  • q5_1(int5, 非对称)
  • q8_0(int8, 对称)
  • f16(半精度浮点)
  • f32(全精度浮点)

编译与运行

  1. 使用 CMake 编译项目:

    cmake -B build cmake --build build -j --config Release
  2. 跑起来吧!使用量化的 ChatGLM-6B 模型进行聊天:

    ./build/bin/main -m models/chatglm-ggml.bin -p 你好

实时交互模式

添加 -i 标志进入交互模式,在这个模式下,聊天历史可作为下一轮对话的上下文。

性能与优化

项目可以整合 BLAS 库以进一步加速矩阵运算。在某些环境下,这可能会导致性能下降,因此应根据实际的基准测试结果来决策是否开启。

支持的优化框架包括:

  • 加速框架(在 macOS 上自动启用)可以通过 CMake 标志关闭。
  • OpenBLAS 提供了 CPU 加速。
  • CUDA 为 NVIDIA GPU 加速模型推理。
  • MPS (Metal Performance Shaders) 允许在 Apple Silicon GPU 上进行计算。

Python 绑定

该项目还提供了 Python 绑定,用户可以直接在 Python 中调用高层接口进行聊天或者流式聊天。

安装

通过 PyPI 安装(推荐):

pip install -U chatglm-cpp

结语

ChatGLM.cpp 是一个功能强大的项目,通过高效的内存和计算优化技术,用户可以在多种设备和平台上运行 ChatGLM 模型。这使得大规模语言模型的实时应用成为可能,为开发者提供了便捷的多接口使用场景。项目热衷于社区的支持与贡献,期望在未来的发展中继续提升其性能和使用体验。

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多