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 在內的眾多模型。