このプロジェクトについて

Cogは、機械学習モデルを標準的で本番環境に対応したDockerコンテナにパッケージ化するオープンソースツールである。MLモデルを本番環境へデプロイする際の一般的な課題に対応し、Dockerfileを手書きしたり依存関係の互換性を手動で管理したりする必要をなくす。 READMEで説明されている主な機能は以下の通りである。 - シンプルなcog.yaml設定ファイルからDockerイメージを生成し、Nvidiaベースイメージの使用、依存関係の効率的なキャッシュ、特定Pythonバージョンのインストール、適切な環境変数のデフォルト設定など、ベストプラクティスを適用する。 - CUDA、cuDNN、PyTorch、TensorFlow、Pythonのバージョン互換性を自動的に処理し、手動でのバージョンマトリクス管理を不要にする。 - BaseRunnerインターフェース(setupメソッドとrunメソッド)を通じて、標準的なPythonの型を使用してモデルの入力と出力を定義できる。CogはOpenAPIスキーマを生成し、入出力の検証を行う。 - 自動HTTP推論サーバー:モデルの型定義に基づき、高性能なRust/AxumサーバーによってRESTful HTTP APIが動的に生成される。 - CLIコマンド:cog run(入力付きでモデルを実行)、cog build(デプロイ可能なDockerイメージをビルド)、cog serve(ビルドとローカルポートでの提供を組み合わせる)。 - デプロイの柔軟性:ビルドされたDockerイメージは、Dockerイメージが実行できる場所であればどこでも動作し、セルフホスト環境やReplicateも含まれる。 - プラットフォーム対応:macOS、Linux、およびWSL 2経由のWindows 11。Dockerが必要であり、Docker DesktopではなくDocker Engineを使用する場合はBuildxも必要である。 - Homebrew、インストールスクリプト、バイナリの手動ダウンロード、またはDockerイメージ内でのインストールが可能である。 このツールは、研究者がDockerやインフラエンジニアリングに関する深い知識を持たなくてもモデルを本番環境に提供できる手段として位置付けられており、Replicateを開発するチームによって作成された。