llama.cpp 模型管理與路由模式
llama-server 現在包含一個 路由模式,允許使用者在不需要重新啟動伺服器的情況下,動態載入、卸載及在多個模型之間切換。此更新將 Ollama 風格的模型管理帶到 llama.cpp,採用多進程架構,每個模型在自己的進程中運行,以確保一個模型的崩潰不會影響其他模型。
動態模型載入與路由
llama-server 現在可以根據 API 請求中的 model 欄位,按需管理多個模型,將請求路由到適當的模型。
關鍵管理功能
- 自動發現:伺服器會自動掃描
llama.cpp快取(由LLAMA_CACHE或~/.cache/llama.cpp定義)或透過--models-dir指定的自訂目錄中的 GGUF 檔案。 - 按需載入:模型會在第一個請求時自動載入記憶體中。對同一模型的後續請求會即時處理。
- LRU 淘汰:為管理記憶體,伺服器採用最近最少使用(LRU)淘汰政策。當已載入模型的數量達到由
--models-max定義的最大值(預設為 4)時,會淘汰最近最少使用的模型以釋放資源。 - 手動控制:使用者可以透過 HTTP POST 請求使用
/models/load和/models/unload端點來明確管理模型。
配置與技術選項
路由模式下的模型會繼承來自路由器的全域設定,例如上下文大小(-c)和 GPU 卸載(-ngl)。然而,透過預設值可以進行細粒度控制。
關鍵命令列旗標
| Flag | Description |
|---|---|
--models-dir PATH |
指定包含 GGUF 檔案的目錄。 |
--models-max N |
設定同時載入的最大模型數量(預設:4)。 |
--no-models-autoload |
停用自動載入,需要透過明確的 /models/load 呼叫。 |
每個模型的預設值
使用者可以透過 --models-preset 傳遞的 config.ini 檔案,為個別模型定義特定配置。這允許為每個模型自訂上下文大小和溫度設定。根據社群討論,presets.ini 也可以用來為特定模型指定 mmproj(多模態投影)檔案。
API 與介面整合
模型管理已整合到 API 和使用者介面中:
- API 列表:對
/models發出 GET 請求會返回所有已發現的模型及其目前狀態(loaded、loading或unloaded)。 - 網頁 UI:內建的
llama.cppWeb UI 透過下拉選單支援模型切換,這會觸發自動載入。 - OpenAI 相容性:伺服器保持為輕量級的 OpenAI 相容 HTTP 伺服器,使其易於整合到現有工作流程中。
社群見解
使用者已強調此功能在 A/B 測試模型版本及建構多租戶部署方面的實用性。就技術細節而言,社群成員指出:
llama-server 預設在多數實作中會將推理內容保存在回應屬性的
reasoning_content變數中。您可以從那裡取得。否則使用 reasoning-format 標誌並傳遞 DeepSeek 值以獲得純粹的 token。
這表明儘管路由器管理模型,底層伺服器仍繼續支援特定模型架構的進階輸出格式,例如推理 token。