返回首頁

GitHub Repo

Ollama 社群回報顯存預留失效,修補聚焦 llama-server 自動配置

Ollama 0.34.4 的社群回報指出,指定保留顯存後,llama-server 仍可能沿用原本的模型層配置。修補提案已提出但尚未合併,完整影響範圍仍待確認。

Mattruffoni · CC BY-SA 4.0 · Image source
zh-Hant

Ollama 社群於 9 月 27 日回報,0.34.4 的 llama-server 後端未將顯存預留設定套用到模型層配置。回報者在 Windows、RTX 4070 上測試兩款模型,要求保留 6 GiB 顯存,卻表示載入結果與未設定時相同;目前仍待維護者確認完整影響範圍。[問題回報](https://github.com/ollama/ollama/issues/18679)

這項設定原本有明確用途。Ollama 的 Go 套件文件將 `OLLAMA_GPU_OVERHEAD` 定義為每張 GPU 預留的顯存,預設值為零。對同時運行模型與其他 GPU 工作的機器,設定值是否真正進入配置決策,直接影響容量規劃;啟動日誌顯示已讀取參數,並不足以證明資源已被保留。[套件文件](https://pkg.go.dev/github.com/ollama/ollama/envconfig)

修補說明指向一個參數傳遞缺口:預設 `num_gpu=-1` 時,模型層交由 llama.cpp 的 `--fit` 自動配置,而預留空間須透過 `LLAMA_ARG_FIT_TARGET` 傳入。原有路徑只納入多模態投影器的額外空間,沒有加上使用者指定的顯存預留量。這提供了上層讀得到設定、後端配置卻可能不變的技術解釋。[修補說明](https://github.com/ollama/ollama/pull/18680)

同日提出的修補,計畫把預留量換算成 MiB,再與投影器所需空間相加。截至 9 月 28 日查核,提案仍開啟、未見審查,不能視為正式版本已修復。[提案狀態](https://github.com/ollama/ollama/pull/18680) 回報另指出,排程器的部分記憶體估算也未扣除預留量;因此,單一參數傳遞修正是否足以涵蓋整個載入流程,仍須後續驗證。[回報中的程式分析](https://github.com/ollama/ollama/issues/18679)

技術影響在於,多模型載入與平行請求都依賴可用記憶體判斷。官方文件說明,平行請求會放大上下文所需空間,容量不足時還會牽動排隊與模型卸載。因此工程團隊測試更新時,應比較設定前後的實際顯存餘量、模型層分布及併發負載,並把文字與視覺模型分開驗證。上述部署風險是依資源管理機制推論,尚無資料可量化本次缺陷造成的服務失敗率。[官方記憶體管理說明](https://docs.ollama.com/faq)

來源

  1. OLLAMA_GPU_OVERHEAD is ignored by the llama-server backend — Issue #18679
  2. llm: include OLLAMA_GPU_OVERHEAD in llama-server fit target — PR #18680
  3. Ollama envconfig 套件文件
  4. Ollama FAQ:並行請求與 GPU 記憶體管理