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