Cog は、機械学習モデルを標準の運用対応コンテナにパッケージ化できるオープンソース ツールです。
パッケージ化されたモデルを独自のインフラストラクチャにデプロイしたり、レプリケートしたりできます。
苦痛のないDockerコンテナ。独自のDockerfile
作成するのは、戸惑うプロセスになる場合があります。 Cog を使用すると、単純な構成ファイルで環境を定義すると、Nvidia ベース イメージ、依存関係の効率的なキャッシュ、特定の Python バージョンのインストール、賢明な環境変数のデフォルトなど、すべてのベスト プラクティスを備えた Docker イメージが生成されます。
もうCUDA地獄はありません。 Cog は、CUDA/cuDNN/PyTorch/Tensorflow/Python のどの組み合わせに互換性があるかを認識しており、すべてを正しく設定します。
標準の Python を使用してモデルの入力と出力を定義します。次に、Cog は OpenAPI スキーマを生成し、Pydantic で入力と出力を検証します。
自動 HTTP 予測サーバー: モデルのタイプは、FastAPI を使用して RESTful HTTP API を動的に生成するために使用されます。
自動キューワーカー。長時間実行される深層学習モデルまたはバッチ処理は、キューを使用して構築するのが最適です。 Cog モデルはこれをすぐに実行します。 Redis は現在サポートされており、さらに多くのサポートがパイプラインにあります。
クラウドストレージ。ファイルは Amazon S3 および Google Cloud Storage に直接読み書きできます。 (近日公開。)
生産の準備ができました。 Docker イメージが実行される場所にモデルをデプロイします。独自のインフラストラクチャ、またはレプリケート。
cog.yaml
を使用して、モデルが実行される Docker 環境を定義します。
ビルド: GPU: true system_packages: - 「libgl1-mesa-glx」 - "libglib2.0-0" python_version: "3.12" python_packages: - "torch==2.3"predict: "predict.py:Predictor"
predict.py
使用して、モデル上で予測を実行する方法を定義します。
from cog import BasePredictor、Input、Pathimport torchclass Predictor(BasePredictor): def setup(self): """複数の予測を効率的に実行するためにモデルをメモリにロードします""" self.model = torch.load("./weights. pth") # モデルが入力として受け取る引数と型 def detect(self, image: Path = Input(description="グレースケール入力画像") ) -> パス: """モデルに対して単一の予測を実行します"""processed_image = preprocess(image) Output = self.model(processed_image) return postprocess(output)
これで、このモデルに対して予測を実行できるようになります。
$ cog detect -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$ curl http://localhost:5000/predictions -X POST -H 'Content-Type: application/json' -d '{"input": {"image": "https://.../input. jpg"}}'
研究者にとって、機械学習モデルを本番環境に出荷するのは非常に困難です。
ソリューションの一部は Docker ですが、Dockerfile、前処理/後処理、Flask サーバー、CUDA バージョンなど、Docker を機能させるのは非常に複雑です。多くの場合、研究者はエンジニアと話し合って、これを導入する必要があります。
アンドレアスとベンはコグを作成しました。 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 を使用してモデルのコンテナを作成します。 Cog を実行する前に、Docker をインストールする必要があります。 Docker Desktop の代わりに Docker Engine をインストールする場合は、Buildx もインストールする必要があります。
macOS を使用している場合は、Homebrew を使用して Cog をインストールできます。
醸造インストール歯車
インストール スクリプトを使用して、最新リリースをダウンロードしてインストールすることもできます。
# Fish Shellsh (curl -fsSL https://cog.run/install.sh | psub)# bash、zsh、およびその他のシェルsh <(curl -fsSL https://cog.run/install.sh)# wget でダウンロード別のコマンドで実行しますwget -qO- https://cog.run/install.sh sh ./install.sh
ターミナルで次のコマンドを実行すると、Cog の最新リリースを GitHub から直接手動でインストールできます。
sudocurl -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
インターフェースがどのように機能するかを学ぶための Prediction インターフェースのリファレンス
モデルに微調整 API を追加する方法を学習するためのトレーニング インターフェイスのリファレンス
モデルが提供する HTTP API の使用方法を学習する HTTP API リファレンス
Discord の #cog に参加してください。