跳到主要内容

遠端機器學習

為了減輕像樹莓派這樣的 低內存系統上的性能問題,您也可以在更強大的系統(例如您的筆記型電腦或桌上型電腦)上主機托管 Immich 的機器學習容器。伺服器容器將包含圖像預覽的請求發送到遠端的機器學習容器進行處理。機器學習容器不會保存此數據,也不會將其與特定使用者關聯。

信息

智慧搜索和人臉檢測將使用此功能,但面部識別不會使用。這是因為面部識別使用的是這些模型的 輸出,這些輸出已經保存到資料庫。因此,它的處理是伺服器容器與資料庫之間的。

危险

圖像預覽將被發送至遠端機器學習容器。當在公共電腦或付費處理雲端上運行此功能時請謹慎使用。此外,作為內部服務,機器學習容器完全沒有安全措施。請注意它的部署位置以及誰可以訪問它。

  1. 確保遠端伺服器已安裝 Docker
  2. 將以下 docker-compose.yml 複製到遠端伺服器
信息

如果需要硬體加速,hwaccel.ml.yml 文件也需要添加,並且 docker-compose.yml 需要按照 硬體加速文件 中的描述進行配置

name: immich_remote_ml

services:
immich-machine-learning:
container_name: immich_machine_learning
# 使用硬體加速時,請在影像標籤中添加 -[armnn, cuda, rocm, openvino, rknn]之一。
# 示例標籤: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.ml.yml
# service: # 設為 [armnn, cuda, rocm, openvino, openvino-wsl, rknn] 中的一項以加速推斷 - 在適合的情況下使用 `-wsl` 版本以支持 WSL2
volumes:
- model-cache:/cache
restart: always
ports:
- 3003:3003

volumes:
model-cache:
  1. 通過運行 docker compose up -d 啟動遠端機器學習容器
信息

主機之間的版本不匹配可能會導致錯誤和不穩定,因此請記住在更新本地 Immich 實例時也要更新此容器。

  1. 瀏覽至 機器學習設置
  2. 點擊 新增 URL
  3. 在新的欄位中填寫遠端機器學習容器的 URL,例如 http://ip:port

強制遠端處理

在設置中添加新的 URL 比替換現有 URL 更推薦。因為這將允許機器學習任務在遠端伺服器停機時通過回退至本地機器學習容器完成處理。如果您不希望在遠端伺服器不可用時機器學習任務在本地處理,可以替換現有 URL,並僅提供遠端容器的 URL。如果選擇這樣,您可以刪除本地 docker-compose.yml 文件中的 immich-machine-learning 部分以節省資源,因為此服務將不被使用。

請注意,如果遠端實例不可用,智慧搜索和人臉檢測工作將無法處理。這反過來會導致依賴這些功能的任務(例如重複檢測和面部識別)無法為受影響資產運行。如果出現此情況,您必須手動點擊 工作狀態 頁面中智慧搜索和人臉檢測旁邊的 缺失 按鈕以重新嘗試工作。

負載均衡

雖然可在設置中提供多個 URL,但它們將按順序嘗試;不會嘗試在多個容器之間分配負載。建議使用專用負載均衡器來處理這類需求,並將其指定為唯一的 URL。除此之外,它還可能允許通過運行多個具有不同配置的容器在同一伺服器上使用不同的 API。例如,可以運行一個 OpenVINO 容器和一個 CUDA 容器,或者運行標準版本容器以最大化 CPU 和 GPU 的使用。

提示

機器學習容器可以在多個 Immich 實例之間共享,無論特定實例使用哪些模型。然而,使用不同模型將導致更高的峰值記憶體使用量。