在完全使用自己的硬體上運行強大的語言模型,無需將資料發送到雲端 API 的夢想,曾經被認為對於大型科技公司以外的任何人來說都是不切實際的。llama.cpp 打破了這個假設。這個單一標頭檔的 C++ 實作已成為在本地運行 LLM 最受歡迎的工具,在幾乎所有硬體配置上都實現了 AI 計算的普及化。
由 Georgi Gerganov 創建,llama.cpp 最初是 Meta 的 Llama 架構的一個專注實作,此後已發展成為一個通用推理引擎,支援數百種模型架構、多種後端(CPU、CUDA、Metal、ROCm、Vulkan)以及豐富的工具和整合生態系統。
llama.cpp 的核心創新是 GGUF 格式及其量化系統。透過以降低的精確度(低至 2 位元)表示模型權重,llama.cpp 可以在普通的消費級硬體上運行原本需要企業級 GPU 的模型。一個通常需要 140GB 記憶體的 70B 參數模型,在 4 位元量化下僅需 35GB 即可運行。
llama.cpp 的架構如何運作?
llama.cpp 是一個模組化推理引擎,支援多種硬體後端。
graph TD
A[GGUF 模型檔案] --> B[llama.cpp 推理引擎]
B --> C[CPU 後端\nx86 搭配 AVX2/AVX-512\nARM 搭配 NEON]
B --> D[CUDA 後端\nNVIDIA GPU\nTensor Core]
B --> E[Metal 後端\nApple Silicon GPU\n統一記憶體]
B --> F[Vulkan 後端\n跨平台 GPU\nAMD/Intel/NVIDIA]
C --> G[輸出 Tokens]
D --> G
E --> G
F --> G
B --> H[取樣策略\n溫度, Top-K, Top-P\n重複懲罰]
H --> G
引擎會自動選擇最佳可用的後端,並可以跨 CPU 和不同 GPU 分割模型層以獲得最大吞吐量。
GGUF 支援哪些量化級別?
量化級別直接決定模型品質、記憶體使用和推理速度之間的權衡。
| 量化 | 每權重位元數 | 記憶體 (7B 模型) | 與 FP16 的品質比較 | 使用場景 |
|---|---|---|---|---|
| FP16 | 16 | 14 GB | 基準 | 最高品質,高階 GPU |
| Q8_0 | 8 | 7 GB | 損失可忽略 | 高品質,均衡記憶體 |
| Q6_K | 6 | 5.3 GB | 最小損失 | 良好品質,常見選擇 |
| Q4_K_M | 4 | 4.2 GB | 小損失 | 最佳品質大小比 |
| Q4_0 | 4 | 3.8 GB | 中等損失 | 適合 6GB GPU |
| Q3_K_S | 3 | 3.1 GB | 明顯損失 | 低記憶體場景 |
| Q2_K | 2 | 2.2 GB | 顯著損失 | 絕對最小記憶體 |
Q4_K_M(4 位元中等)是最受歡迎的量化級別,在大多數使用案例中提供了品質和效率的良好平衡。
如何使用 llama.cpp?
llama.cpp 提供多種介面以適應不同的使用模式。
| 介面 | 命令 / 方法 | 使用場景 |
|---|---|---|
| CLI (main) | ./llama-cli -m model.gguf -p "Hello" | 快速問題、腳本 |
| 互動模式 | ./llama-cli -m model.gguf -i | 聊天會話、探索 |
| 伺服器 (API) | ./llama-server -m model.gguf | Web 應用、OpenAI 相容 API |
| Python 綁定 | llama-cpp-python | Python 整合、自動化 |
| 嵌入式 | 函式庫模式 | 自訂應用程式 |
伺服器模式特別強大——它暴露了一個 OpenAI 相容的 REST API,這意味著任何與 OpenAI 配合使用的工具只需更改基礎 URL 即可指向本地 llama.cpp 實例。
不同模型的系統需求
llama.cpp 可以從 Raspberry Pi 擴展到多 GPU 工作站。
| 模型大小 | 量化 | 最低 RAM | 典型硬體 |
|---|---|---|---|
| 1B-3B | Q4_K_M | 2-4 GB | 手機、Raspberry Pi 5 |
| 7B-8B | Q4_K_M | 6 GB | 筆記型電腦、MacBook Air |
| 13B-14B | Q4_K_M | 10 GB | 桌上型電腦、MacBook Pro |
| 30B-34B | Q4_K_M | 20 GB | 工作站、Mac Studio |
| 70B-72B | Q4_K_M | 40 GB | 伺服器、多 GPU 設定 |
| 120B+ | Q4_K_M | 70+ GB | 多節點推理 |
這些適度的需求使 llama.cpp 成為本地 AI 運動的支柱,實現了個人裝置上的隱私保護 AI。
常見問題
什麼是 llama.cpp? 一個高效能 C++ 實作,用於在本地運行 LLM,支援廣泛的模型量化。
什麼是 GGUF 格式? GGUF 是為 llama.cpp 開發的模型格式,在單一檔案中包含所有模型資料。
llama.cpp 可以在哪些硬體上運行? CPU(x86/ARM/Apple Silicon)、GPU(CUDA/ROCm/Metal/Vulkan)和混合模式。
哪些模型相容? 數百種架構,包括 Llama、Mistral、Gemma、Qwen、DeepSeek 等。
llama.cpp 可以用作伺服器嗎? 是的,內建 HTTP 伺服器提供 OpenAI 相容的 API。
延伸閱讀
- llama.cpp GitHub 儲存庫 – 原始碼、文件和社群
- llama.cpp 文件 – 附使用指南和故障排除的 Wiki
- GGUF 格式規範 – GGUF 模型格式的技術細節
- 本地 LLM 指南 – 使用 llama.cpp 等工具運行本地 LLM 的指南
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!