Vertex AI で BigQuery ML モデルを管理する

BigQuery ML モデルを Vertex AI Model Registry に登録すると、これらのモデルをエクスポートすることなく、Vertex AI モデルと一緒に管理できます。Model Registry にモデルを登録すると、1 つのインターフェースを使用して、サービング コンテナなしでモデルのバージョン管理、評価、デプロイを行い、オンライン予測を実行できるようになります。Vertex AI と BigQuery ML の統合方法に精通していない場合は、BigQuery ユーザー用の Vertex AI をご覧ください。

Vertex AI Prediction の詳細については、Vertex AI での予測の取得の概要をご覧ください。

Vertex AI モデル レジストリから BigQuery ML モデルを管理する方法については、Vertex AI モデル レジストリの概要をご覧ください。

前提条件

BigQuery ML モデルを Model Registry に登録するには、いくつかの前提条件を満たす必要があります。

Vertex AI API を有効にする

BigQuery ML モデルを Model Registry に登録する前に、プロジェクトで Vertex AI API を有効にする必要があります。これを行うには、Google Cloud コンソールの [API とサービス] ページを使用するか、次の Google Cloud CLI コマンドを実行します。

gcloud --project PROJECT_ID services enable aiplatform.googleapis.com

IAM 権限を付与する

BigQuery ML モデルを Model Registry に登録するために使用するサービス アカウントまたはユーザー アカウントに、Vertex AI 管理者(roles/aiplatform.adminのロールを付与する必要があります。Vertex AI のロールと権限の詳細については、IAM を使用したアクセス制御をご覧ください。

次のコマンドを使用して、サービス アカウントに Vertex AI 管理者ロールを付与します。

gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_EMAIL --role=roles/aiplatform.admin --condition=None

次のコマンドを使用して、ユーザー アカウントに Vertex AI 管理者ロールを付与します。

gcloud projects add-iam-policy-binding PROJECT_ID --member=user:USER_ACCOUNT --role=roles/aiplatform.admin --condition=None

モデルを登録する

BigQuery ML モデルを作成するときに、CREATE MODEL ステートメントMODEL_REGISTRY オプションを使用して、モデルを Model Registry に登録できます。CREATE MODEL ステートメントには、モデル ID を指定する VERTEX_AI_MODEL_ID オプションと、1 つ以上のモデル バージョン エイリアスを指定する VERTEX_AI_MODEL_VERSION_ALIASES オプションも含まれています。これらのオプションを使用すると、デプロイを効率化に行い、モデルを管理し、モデルで Vertex Explainable AI を有効にできます。

モデルの作成時に MODEL_REGISTRY オプションを設定した場合、BigQuery ML でトレーニングが完了すると、モデルが Model Registry に自動的に表示されます。Google Cloud コンソールの [Model Registry] ページの [ソース] 列でモデルのソースを確認できます。

BigQuery ML モデルが登録されると、モデルで Model Registry の機能を使用できます。モデルをエンドポイントにデプロイし、モデル バージョンの比較、予測、モデルのモニタリング、モデルの評価結果の表示を行うことができます。さらに、予測に影響する特徴を理解するために、Vertex Explainable AI を使用してモデルに関する特徴ベースの説明を取得できます。

BigQuery ML を使用して作成されたすべてのモデルは、Model Registry に登録されているかどうかに関係なく、引き続き BigQuery ユーザー インターフェースに表示されます。

Vertex AI モデル ID を指定する

モデルを簡単に管理できるように、モデルの作成時に VERTEX_AI_MODEL_ID オプションを使用して Vertex AI モデル ID を指定します。モデル ID は BigQuery ML モデルに関連付けられ、Model Registry から確認できます。

Vertex AI モデル ID に大文字は使用できません。Vertex AI モデル ID を指定しない場合、BigQuery ML モデル ID が使用されます。この場合、BigQuery ML モデル ID も必ず小文字にしてください。モデル ID の要件の一覧については、アップロードのリファレンス ドキュメントにある仕様をご覧ください。

Vertex AI モデル ID を更新するには、モデルを削除し、適切な新しい Vertex AI モデル ID を使用してモデルを再作成する必要があります。ALTER MODEL コマンドを使用して Vertex AI モデル ID を更新することはできません。

Vertex AI モデルのエイリアスを指定する

モデルのエイリアスを指定するには、モデルの作成時に VERTEX_AI_MODEL_VERSION_ALIASES オプションを指定します。モデル エイリアスを使用すると、具体的なバージョン ID がわからなくても、参照によって特定のモデル バージョンを取得またはデプロイできます。この点で、Git の Docker タグまたはブランチの参照と同じように機能します。

Model Registry エイリアスの詳細については、モデル バージョン エイリアスの使用方法をご覧ください。

BigQuery ML モデルの複数のバージョンを登録する

既存の BigQuery ML モデルの新しいバージョンを作成して Model Registry 内の他のモデルと比較する場合は、モデルの作成時に別の BigQuery ML モデル ID を指定し、元の Model Registry モデル ID に登録する必要があります。

BigQuery ML モデルを作成または置換して、Model Registry 内のモデルにすでに関連付けられている BigQuery ML モデル ID を使用すると、既存の Model Registry モデル バージョンが削除され、新しいモデルに置き換えられます。

既存の BigQuery ML モデルを Model Registry に登録する

BigQuery ML モデルは、Model Registry に自動的に追加されません。ALTER MODEL ステートメントを使用して、モデル ID を追加し、モデルを Model Registry に登録できます。また、モデルの説明やラベルなどのメタデータを更新することもできます。

BigQuery ML でのモデル メタデータの更新の詳細については、モデル メタデータの更新をご覧ください。

既存のモデルを登録するには:

SQL

ALTER MODEL [IF EXISTS] <model_name> SET OPTIONS (vertex_ai_model_id="VERTEX_AI_MODEL_ID");

bq

bq コマンドライン ツールでモデルを更新するには、bq update コマンドを実行して、モデルのモデル ID を指定します。vertex_model_id は、新しい ID または既存の Model Registry のモデル ID のいずれかにできます。各 BigQuery ML モデルは、Model Registry で 1 つの model_id にのみ登録できます。

bq update --model --vertex_ai_model_id "VERTEX_AI_MODEL_ID" PROJECT_ID:DATASET.MODEL

API

  1. メソッド: models.patch に移動します。
  2. [Request parameters] と [Request body] に入力します。
  3. [EXECUTE] ボタンをクリックします。
  {
    "trainingRuns": [
      {
        "vertexAiModelId": "VERTEX_AI_MODEL_ID"
      }
  }
 ```

モデルの登録時に新しいモデル ID を指定すると、BigQuery ML モデルが Model Registry にモデル バージョン 1 として表示されます。既存のモデルの新しいバージョンとしてモデルを追加するには、既存のモデルの ID を指定します。これにより、新しいモデルが既存のモデルの最新バージョンとして自動的に登録されます。

登録済みの BigQuery ML モデルのモデル ID を変更する

BigQuery ML モデルが Model Registry に登録されると、VERTEX_AI_MODEL_ID 値を変更できなくなります。新しい VERTEX_AI_MODEL_ID でモデルを登録するには、次のいずれかのオプションを使用します。

  • 再トレーニングの費用が許容される場合は、モデルを削除して再作成します。

  • モデルをコピーし、ALTER MODEL ステートメントを使用して新しいモデルを新しい VERTEX_AI_MODEL_ID 値で登録します。

ロケーションに関する留意事項

マルチリージョンの BigQuery ML モデルを Model Registry に登録すると、そのモデルは Vertex AI のリージョン モデルになります。BigQuery ML US マルチリージョン モデルは Vertex AI(us-central1)に同期され、BigQuery ML マルチリージョン EU モデルは Vertex AI(europe-west4)に同期されます。単一リージョン モデルの場合、変更はありません。

モデルのロケーションを更新する方法については、ロケーションの選択をご覧ください。

Model Registry から BigQuery ML モデルを削除する

Model Registry から BigQuery ML モデルを削除するには、BigQuery ML でモデルを削除します。モデルは Model Registry から自動的に削除されます。

BigQuery ML モデルを削除する方法は複数あります。詳細については、モデルを削除するをご覧ください。

Model Registry に登録され、エンドポイントにデプロイされた BigQuery ML のモデルを削除するには、まず Model Registry を使用してモデルのデプロイを解除する必要があります。その後、BigQuery ML に戻ってモデルを削除できます。モデルのデプロイ解除の詳細については、エンドポイントを削除するをご覧ください。

次のステップ

BigQuery ML を使用したオンライン予測のノートブックを使用して、BigQuery ML を使用してモデルをトレーニングし、モデルを Model Registry に登録して、リアルタイム予測用のエンドポイントにデプロイする。