予測に使用するモデル アーティファクトをエクスポートする

Google Distributed Cloud(GDC)エアギャップには、次の機械学習(ML)フレームワークを使用してトレーニングされたモデルからオンライン予測を提供するビルド済みコンテナが用意されています。

  • TensorFlow
  • PyTorch

これらのビルド済みコンテナのいずれかを使用するには、ビルド済みコンテナの要件に適合する 1 つ以上のモデル アーティファクトとしてモデルを保存する必要があります。これらの要件は、モデル アーティファクトが Distributed Cloud で作成されたかどうかにかかわらず適用されます。

始める前に

モデル アーティファクトをエクスポートする前に、次の手順を行います。

  1. サポートされているコンテナのいずれかをターゲットとする予測モデルを作成してトレーニングします。
  2. プロジェクトがない場合は、Vertex AI 用のプロジェクトを設定します。
  3. インフラストラクチャ オペレーター(IO)と協力して、予測クラスタを作成します。

    IO は、クラスタを作成してプロジェクトに関連付け、オンライン予測に必要なリソースを考慮して、クラスタ内に適切なノードプールを割り当てます。

  4. プロジェクトのストレージ バケットを作成する。

  5. プロジェクト内に Vertex AI のデフォルトのサービス提供(vai-default-serving-sa)サービス アカウントを作成します。サービス アカウントの詳細については、サービス アカウントを設定するをご覧ください。

  6. 作成したストレージ バケットの Vertex AI デフォルト サービング(vai-default-serving-sa)サービス アカウントに、プロジェクト バケット オブジェクト閲覧者(project-bucket-object-viewer)ロールを付与します。サービス アカウントにバケットへのアクセス権を付与する方法については、バケットへのアクセス権を付与するをご覧ください。

  7. オンライン予測にアクセスするために必要な権限を取得するには、IAM プロジェクト管理者に Vertex AI 予測ユーザー(vertex-ai-prediction-user)ロールを付与するよう依頼してください。このロールの詳細については、IAM 権限を準備するをご覧ください。

  8. オンライン予測モデルをデプロイするために必要な権限を取得するには、IAM プロジェクト管理者に Vertex AI 予測管理者(vertex-ai-prediction-Admin)ロールを付与するよう依頼してください。このロールの詳細については、IAM 権限を準備するをご覧ください。

ビルド済みコンテナにエクスポートするためのフレームワーク固有の要件

予測に使用する ML フレームワークに応じて、モデル アーティファクトをさまざまな形式でエクスポートする必要があります。以下のセクションでは、各 ML フレームワークで使用可能なモデル形式について説明します。

TensorFlow

TensorFlow を使用してモデルをトレーニングする場合は、モデルを TensorFlow SavedModel ディレクトリとしてエクスポートします。

TensorFlow トレーニング コードから SavedModels をエクスポートする方法はいくつかあります。次のリストでは、さまざまな TensorFlow API に対応するいくつかの方法を示しています。

Keras や Estimator を使用していない場合は、Vertex AI がモデル アーティファクトを使用して予測を提供できるように、SavedModel をエクスポートする際に serve タグと serving_default 署名を使用する必要があります。Keras と Estimator の場合、この処理は自動的に行われます。詳しくは、エクスポート時の署名の指定をご覧ください。

これらのアーティファクトを使用して予測を提供するには、トレーニングに使用した TensorFlow のバージョンと一致する予測用のビルド済みコンテナを含む Model を作成します。

PyTorch

PyTorch を使用してモデルをトレーニングする場合は、Torch モデル アーカイバを使用してアーカイブ ファイルを作成して、デフォルトまたはカスタム ハンドラのいずれかを含むモデル アーティファクトをパッケージ化する必要があります。ビルド済み PyTorch イメージでは、アーカイブの名前は model.mar であるため、モデル名を model に設定してください。

TorchServe で提供される PyTorch モデルのメモリ使用量、レイテンシ、スループットの最適化については、PyTorch パフォーマンス ガイドをご覧ください。

モデルをアップロードする

モデルを作成したストレージ バケットにアップロードする必要があります。ストレージ バケットへのオブジェクトのアップロードの詳細については、プロジェクトでストレージ オブジェクトをアップロードおよびダウンロードするをご覧ください。

モデルのストレージ バケットへのパスは、次の構造にする必要があります。

s3://BUCKET_NAME/MODEL_ID/MODEL_VERSION_ID

エクスポートの詳細については、ビルド済みコンテナにエクスポートするためのフレームワーク固有の要件をご覧ください。