Cog 是一種開源工具,可讓您將機器學習模型打包到標準的生產就緒容器中。
您可以將打包的模型部署到您自己的基礎架構或複製。
Docker 容器沒有任何痛苦。編寫自己的Dockerfile
可能是一個令人困惑的過程。使用 Cog,您可以使用簡單的設定檔定義環境,它會產生具有所有最佳實踐的 Docker 映像:Nvidia 基礎映像、高效的依賴項快取、安裝特定的 Python 版本、合理的環境變數預設值等。
不再有 CUDA 地獄。 Cog 知道哪些 CUDA/cuDNN/PyTorch/Tensorflow/Python 組合相容,並將為您正確設定。
使用標準 Python 定義模型的輸入和輸出。然後,Cog 產生 OpenAPI 模式並使用 Pydantic 驗證輸入和輸出。
自動 HTTP 預測伺服器:模型的類型用於使用 FastAPI 動態產生 RESTful HTTP API。
自動隊列工作者。長時間運行的深度學習模型或批次最好使用佇列來建置。齒輪模型可以開箱即用地執行此操作。目前支援 Redis,更多內容正在籌備中。
雲端儲存。檔案可以直接讀取和寫入 Amazon S3 和 Google Cloud Storage。 (即將推出。)
準備生產。將模型部署在 Docker 映像運行的任何位置。您自己的基礎設施,或複製。
使用cog.yaml
定義模型運行的 Docker 環境:
建置: GPU: true 系統套件: -“libgl1-mesa-glx” -「libglib2.0-0」python_version:「3.12」python_packages: -“火炬==2.3”預測:“predict.py:預測器”
使用predict.py
定義如何在模型上運行預測:
from cog import BasePredictor, Input, Pathimport torchclass Predictor(BasePredictor): def setup(self): """將模型載入到記憶體中以提高運行多個預測的效率""" self.model = torch.load(". /weights. pth") # 模型作為輸入的參數與型別 def Predict(self, image: Path = Input(description="Grayscale input image") ) -> 路徑: """對模型執行單一預測""" returned postprocess(output) = preprocess(image) output = self.model(processed_image)
現在,您可以對此模型執行預測:
$ cog Predict -i [email protected]> 建立 Docker 映像...--> 運行預測...--> 輸出寫入 output.jpg
或者,建置用於部署的 Docker 映像:
$ cog build -t my-colorization-model--> 建置 Docker 映像...--> 建置 my-colorization-model:latest$ docker run -d -p 5000:5000 --gpus all my-colorization-model$捲曲http://localhost:5000/predictions -X POST -H '內容類型:application/json' -d '{"input": {"image": "https://.../input. jpg "}}'
對於研究人員來說,將機器學習模型投入生產確實很困難。
解決方案的一部分是 Docker,但讓它發揮作用非常複雜:Dockerfile、預處理/後處理、Flask 伺服器、CUDA 版本。通常情況下,研究人員必須與工程師坐下來部署這個該死的東西。
安德烈亞斯和本創建了 Cog。 Andreas 曾在 Spotify 工作,在那裡他建立了使用 Docker 建置和部署 ML 模型的工具。 Ben 在 Docker 工作,並在那裡建立了 Docker Compose。
我們意識到,除了 Spotify 之外,其他公司也在使用 Docker 來建置和部署機器學習模型。 Uber 和其他公司也建構了類似的系統。因此,我們正在製作一個開源版本,以便其他人也可以這樣做。
如果您有興趣使用它或想與我們合作,請與我們聯繫。我們在 Discord 上或發送電子郵件至 [email protected]。
macOS、Linux 或 Windows 11 。 Cog 可透過 WSL 2 在 macOS、Linux 和 Windows 11 上執行
碼頭工人。 Cog 使用 Docker 為您的模型建立容器。您需要先安裝 Docker,然後才能執行 Cog。如果您安裝 Docker Engine 而不是 Docker Desktop,則您也需要安裝 Buildx。
如果您使用的是 macOS,則可以使用 Homebrew 安裝 Cog:
沖泡安裝齒輪
您也可以使用我們的安裝腳本下載並安裝最新版本:
# Fish shellsh (curl -fsSL https://cog.run/install.sh | psub)# bash、zsh 和其他 shellssh <(curl -fsSL https://cog.run/install.sh)# 使用 wget 下載並在單獨的命令中執行wget -qO- https://cog.run/install.sh sh ./安裝.sh
您可以透過在終端機中執行以下命令直接從 GitHub 手動安裝最新版本的 Cog:
sudo curl -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"sudo chmod +x /usr/local/bin/cog
或者,您可以從原始程式碼建立 Cog 並使用以下命令安裝它:
makesudo 進行安裝
或者如果你在 docker 上:
RUN sh -c "INSTALL_DIR="/usr/local/bin" SUDO="" $(curl -fsSL https://cog.run/install.sh)"
如果您使用的是 macOS 並且之前透過 Homebrew 安裝了 Cog,請執行以下命令:
沖泡升級齒輪
否則,您可以透過執行安裝時所使用的相同命令來升級到最新版本。
開始使用範例模型
開始使用您自己的模型
將 Cog 與筆記本一起使用
在 Windows 11 中使用 Cog
看看使用 Cog 的一些範例
使用 Cog 部署模型
cog.yaml
參考以了解如何定義模型的環境
預測界面參考,了解Predictor
介面的工作原理
訓練介面參考,了解如何為模型添加微調 API
HTTP API 參考,了解如何使用模型提供的 HTTP API
加入我們在 Discord 上的 #cog。