Vertex AI でビルド済みコンテナを使用して PyTorch モデルを提供する
Google Cloud Japan Team
※この投稿は米国時間 2023 年 2 月 18 日に、Google Cloud blog に投稿されたものの抄訳です。
PyTorch を使用する ML の実務担当者から、ML プロジェクトを試験運用の先に進めることが難しい場合があるという話を聞いています。このため、この 1 年間は、PyTorch ユーザーが Vertex AI を使用してモデルをクラウドに簡単にデプロイできるようにするための開発作業を優先して進めてきました。Vertex AI は、ML の実務担当者が本番環境への ML のデプロイを促進しスケールできるようにするツール、ワークフロー、インフラストラクチャを備えたフルマネージドの ML プラットフォームです。オープンソースのツールであるというメリットもあります。
このたび、Vertex AI がビルド済みの PyTorch サービング コンテナをサポートするようになりました。これにより、PyTorch モデルを簡単に本番環境にデプロイできます。PyTorch モデルを提供するためにカスタム コンテナを構築する必要はありません。Google Cloud は、ビルド済みのコンテナによって PyTorch ユーザーの ML ライフサイクルを効率化しました。この投稿では、Vertex AI で PyTorch モデルをデプロイする方法をご説明します。詳しくは、こちらのドキュメントをご覧ください。
PyTorch モデルをデプロイするための 3 つのステップ
ステップ 1 - PyTorch モデルをパッケージ化する
最初のステップでは、デフォルトまたはカスタムのすべてのハンドラを含むトレーニング済み PyTorch モデルを、Torch Model Archiver を使用してアーカイブ ファイルにパッケージ化します。ハンドラは以下の処理に役立ちます。
適切な形式への入力データの前処理
モデルの呼び出し方法のカスタマイズ
モデルからの出力の後処理
ハンドラを定義したら、Torch Model Archiver を使用してモデルのアーカイブ ファイルを作成します。ビルド済みの PyTorch イメージではアーカイブされたモデルファイルの名前を「model.mar」とする必要があるため、モデル名を「model」と設定します。
ステップ 2 - ビルド済みの PyTorch サービング コンテナ イメージを使用してモデルを Vertex AI にアップロードする
PyTorch モデルをパッケージ化したら、Vertex AI Model Registry にアップロードします。ここで、すべてのモデルを追跡して管理し、Vertex AI エンドポイントとして迅速にデプロイできます。Vertex AI SDK とビルド済みの PyTorch サービング イメージを使用して、PyTorch モデルをアップロードできます。Vertex AI SDK により、Vertex AI API の操作性を最適化できます。コードは次のようになります。
ステップ 3 - Vertex AI エンドポイントを作成して PyTorch モデルをデプロイする
最後となる 3 番目のステップでは、Vertex AI エンドポイントを作成して PyTorch モデルをそのエンドポイントにデプロイします。このために、Vertex AI SDK を使用することもできます。または、Google Cloud コンソールを介してデプロイできます。まず、エンドポイントを作成する必要があります。
次に、低レイテンシでオンライン予測を提供できるように、モデルをエンドポイントにデプロイします。
モデルがデプロイされたら、ビジネス アプリケーションと統合できます。エンドポイントのテストは、Vertex AI SDK、endpoint.predict(instances=test_instance)、Cloud Shell、または Google Cloud コンソールで実行できます。
次のステップ
Vertex AI での PyTorch について詳しくは、こちらのドキュメントをご覧ください。Vertex AI の PyTorch 統合に関する説明と、Vertex AI での PyTorch の使用方法に関するリソースが記載されています。PyTorch と Vertex AI を使用すると、本番環境でのモデルのトレーニング、デプロイ、オーケストレーションが非常に簡単になることがおわかりいただけるでしょう。また、こちらのノートブックもご覧ください。Vertex AI で生成ビジョンモデルをデプロイしてホストする方法が説明されています。こちらのノートブックにはテキストの分類モデルをデプロイする方法が記載されていますので、お試しください。