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 在内的海量模型。