replicate/cog

Containers for machine learning

Cog は、機械学習モデルをすぐに実行できるコンテナにパッケージ化するオープンソースツールです。Dockerfile の作成や CUDA バージョンの扱いの手間を省き、モデルの環境と入出力をシンプルな Python と YAML ファイルで定義できます。

主な機能

  • Dockerfile 不要 – cog.yaml ファイルで環境(例:GPU、Python バージョン、システムパッケージ)を記述します。Cog はベストプラクティスに従って Docker イメージを自動的に構築します。
  • CUDA を自動処理 – Cog は、CUDA/cuDNN/PyTorch/TensorFlow/Python のどの組み合わせが機能するかを把握し、正しく設定します。
  • シンプルなモデル定義 – Python で Runner クラスを書き、setup()(モデルのロード)と run()(入力の処理、出力の返却)を定義します。入出力は型付けされ、Cog が OpenAPI スキーマを生成して検証します。
  • 自動 HTTP API – Cog はモデルの型から RESTful API(Rust/Axum サーバーを使用)を作成するため、curl や任意の HTTP クライアントで呼び出せます。
  • 本番対応 – 構築された Docker イメージは、Docker が動作する任意の場所(自社インフラや Replicate を含む)にデプロイできます。

仕組み

  1. cog.yaml で環境を定義します(例:gpu: true、python_version: "3.13"、python_requirements: requirements.txt)。
  2. run.py でモデルを定義し、Runner クラスで setup() にモデルのロード、run() に推論を実装します。
  3. コマンドを使用します:
    • cog run -i image=@input.jpg – ローカルでビルドして実行し、入力を渡します。
    • cog build -t my-model – デプロイ用の Docker イメージをビルドします。
    • cog serve -p 8080 – テスト用のローカル HTTP サーバーを起動します。

インストール

  • macOS:Homebrew(brew install replicate/tap/cog)またはインストールスクリプトを使用。
  • Linux:インストールスクリプトまたは手動ダウンロードを使用。
  • Windows 11:WSL 2 を使用し、Linux の手順に従います。
  • Docker:Docker イメージ内に Cog をインストールできます。

前提条件 – macOS、Linux、または WSL 2 を備えた Windows 11 で Docker(Docker Engine を使用する場合は Buildx を含む)が必要です。

存在理由 – 研究者は ML モデルを本番環境にデプロイするのに苦労することがよくあります。Cog は Andreas Jansson(元 Spotify)と Ben Firshman(元 Docker、Docker Compose の作成者)によって、このプロセスをシンプルでオープンソースにするために作成されました。

次のステップ – README には、入門、ノートブックの使用、デプロイ、cog.yaml と Runner インターフェースの詳細なリファレンスへのガイドへのリンクがあります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト