foldl/chatllm.cpp

Pure C++ implementation of several models for real-time chatting on your computer (CPU & GPU)

解决的问题

ChatLLM.cpp 提供了一种在计算机 CPU 或 GPU 上本地运行大语言模型 (LLM) 的高性能、高内存效率的方法。它无需依赖云服务即可实现实时多模态对话和检索增强生成 (RAG),支持从不到 10 亿到超过 3000 亿参数的模型。

工作原理

该项目基于 ggml 库构建为纯 C++ 实现,使用 int4/int8 量化来减少内存占用并加速推理。它采用面向对象的方法来处理各种基于 Transformer 的模型,并通过并行计算和优化的 KV 缓存来优化性能。它还包含一个转换工具 (convert.py),用于将模型从 Hugging Face 格式转换为自定义的量化 GGML 格式。

适用对象

它专为希望以低硬件要求在本地运行各种 LLM 的用户,以及正在寻找具有 Python、JavaScript、C 和 Nim 绑定功能的 C++ 推理引擎的开发者而设计。

亮点

  • 多模态支持:能够处理文本、图像(视觉)、音频(语音)和 TTS(文本转语音)。
  • RAG 集成:内置对检索增强生成 (RAG) 的支持。
  • 分布式推理:支持用于分布式计算的 RPC。
  • 硬件加速:包括 GPU 加速和 Vulkan 支持。
  • 灵活的量化:允许使用正则表达式模式对每个张量进行自定义量化。
  • 广泛的模型支持:兼容包括 Llama、Gemma、Qwen 和 InternVL 在内的海量模型。