AI

llama.cpp:在 CPU 和 GPU 上進行高效能 LLM 推理

llama.cpp 是一個高效能 C++ 實作,用於在 CPU 和 GPU 上本地運行 LLM,支援量化,相容數百種模型。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
llama.cpp:在 CPU 和 GPU 上進行高效能 LLM 推理

在完全使用自己的硬體上運行強大的語言模型,無需將資料發送到雲端 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 的品質比較使用場景
FP161614 GB基準最高品質,高階 GPU
Q8_087 GB損失可忽略高品質,均衡記憶體
Q6_K65.3 GB最小損失良好品質,常見選擇
Q4_K_M44.2 GB小損失最佳品質大小比
Q4_043.8 GB中等損失適合 6GB GPU
Q3_K_S33.1 GB明顯損失低記憶體場景
Q2_K22.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.ggufWeb 應用、OpenAI 相容 API
Python 綁定llama-cpp-pythonPython 整合、自動化
嵌入式函式庫模式自訂應用程式

伺服器模式特別強大——它暴露了一個 OpenAI 相容的 REST API,這意味著任何與 OpenAI 配合使用的工具只需更改基礎 URL 即可指向本地 llama.cpp 實例。


不同模型的系統需求

llama.cpp 可以從 Raspberry Pi 擴展到多 GPU 工作站。

模型大小量化最低 RAM典型硬體
1B-3BQ4_K_M2-4 GB手機、Raspberry Pi 5
7B-8BQ4_K_M6 GB筆記型電腦、MacBook Air
13B-14BQ4_K_M10 GB桌上型電腦、MacBook Pro
30B-34BQ4_K_M20 GB工作站、Mac Studio
70B-72BQ4_K_M40 GB伺服器、多 GPU 設定
120B+Q4_K_M70+ 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。


延伸閱讀

TAG