llama.cpp 與 llama.app:本地 LLM 推論與生態系統
llama.cpp 提供通用且高效能的本地 LLM 推論
lama.cpp 是一個與硬體無關的推論引擎,旨在各種硬體上執行大型語言模型 (LLMs),從消費級筆記型電腦到企業級集群。它利用手工調優的內核 (kernels) 來優化各種架構下的效能,包括 Apple Silicon (M Pro, M Max, M Ultra)、NVIDIA GPUs (RTX 3090, 4090, 5090, A100, H100, B200)、AMD GPUs (Radeon RX, MI300)、Intel Arc 以及標準 CPU。
使用 llama.app 與 'llama serve' 簡化部署
lama.app 是 llama.cpp 的官方主頁,為部署本地模型引入了更流暢的使用者體驗。一個關鍵的新增功能是 llama serve 指令,它簡化了在本地託管模型的過程。
對於尋求代理式編碼工作流 (agentic coding workflow) 的使用者,llama.cpp 可以與 Pi 編碼代理程式搭配使用。設定過程包含三個主要步驟:
- 執行
llama serve以託管模型。 - 透過
pi install git:github.com/huggingface/pi-llama安裝pi-llama插件。 - 啟動
pi開始使用代理程式,它會自動偵測本地模型,無需 API 金鑰或外部配置。
技術能力與優化
多模型支援與配置
lama-server 支援多模型部署。使用者可以定義一個 .ini 檔案,其中指向多個模型並附帶透過測試優化的硬體特定參數。這使得 API 用戶端可以選擇特定模型,系統將會自動處理路由與優化。
效能增強
建議使用者使用 ngram-mod (或 spec-default) 以獲得「幾乎免費」的效能提升。對於正在構建自定義測試框架 (harnesses) 的開發者,在需要頻繁切換模型的多模型設定中,建議使用 llama-cpp-python 而非 llama-server。
社群洞察與生態系統比較
與 Ollama 及其他執行器的比較
社群討論強調了 llama.cpp 與 Ollama 等高階封裝工具之間的區別。有些使用者將 llama.cpp 描述為「AI 界的 ffmpeg」,並指出像 Ollama 這樣的工具通常只是針對 llama.cpp 核心功能的重新包裝。
其他使用者回報,與 vLLM 相比,llama.cpp 的安裝體驗更流暢,特別是在較舊的 NVIDIA 硬體(例如 RTX 3070)上,vLLM 可能需要重新安裝 CUDA 驅動程式。
硬體特定挑戰
雖然 llama.cpp 旨在實現通用相容性,但有些使用者回報了特定問題:
- AMD/ROCm 支援: 一些使用 Framework 13 筆記型電腦的使用者在整合式 AMD GPU 的原生 ROCm 支援方面遇到了退化 (regressions),必須改用 Vulkan 裝置作為替代方案。
- Intel Arc: 一些使用者回報在為 Intel Arc A770 GPU 開啟 OpenVINO 支援時,編譯 llama.cpp 遇到困難。
部署替代方案
對於擔心使用 shell 腳本 (curl | sh) 的人,社群建議複製 (cloning) 儲存庫並使用 CMake 從原始碼構建:
git clone https://github.com/ggml-org/llama.cpp
cmake -B build
cmake --build build --config Release
"Git clone llama.cpp 並進行構建,這並不難... 基本上只需要幾個步驟。"
與 Hugging Face 的整合
lama.cpp 最近已成為 Hugging Face 的一部分,這進一步整合了生態系統。對於 macOS 使用者,在安裝 llama.app 之前透過 Homebrew 安裝 llama.cpp 可以實現更輕鬆的更新,因為 llama.app 的發布週期可能較慢。此外,透過 Hugging Face CLI (hf) 安裝的模型會自動被 llama.app 偵測到。
Sources
相關
- 專案
- Dispatch
- 專案
- 專案
- 專案