Vertex AI のトラブルシューティング

このページでは、Vertex AI の使用中に問題が発生した場合に役立つトラブルシューティング手順について説明します。

一部の Vertex AI コンポーネントのトラブルシューティングの手順は、別の場所に記載されています。以下をご覧ください。

AutoML モデル

このセクションでは、AutoML で問題が発生した場合に役立つトラブルシューティング手順について説明します。

テスト、検証、トレーニング セットのラベルが見つからない

問題

AutoML 分類モデルをトレーニングするときにデフォルトのデータ分割を使用するとき、Vertex AI が特定のインスタンス(テスト、検証、トレーニング)に割り当てるクラスが少なすぎると、トレーニング中にエラーが発生します。この問題は、クラスのバランスが悪い場合や、トレーニング データが少ない場合によく発生します。

解決策

この問題を解決するには、トレーニング データを追加したり、各セットに十分なクラスを割り当てられるようにデータを手動で分割したり、使用頻度の低いラベルをデータセットから削除したりします。詳細については、AutoML モデルのデータ分割についてをご覧ください。

Vertex AI Studio

Vertex AI Studio の使用時に次のエラーが発生する場合があります。

モデルをチューニングしようとすると Internal error encountered が返される

問題

モデルをチューニングしようとすると、Internal error encountered エラーが発生します。

解決策

次の curl コマンドを実行して、空の Vertex AI データセットを作成します。コマンドの中でプロジェクト ID を構成していることを確認してください。

PROJECT_ID=PROJECT_ID

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://europe-west4-aiplatform.googleapis.com/ui/projects/$PROJECT_ID/locations/europe-west4/datasets \
-d '{
    "display_name": "test-name1",
    "metadata_schema_uri": "gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml",
    "saved_queries": [{"display_name": "saved_query_name", "problem_type": "IMAGE_CLASSIFICATION_MULTI_LABEL"}]
}'

コマンドが完了したら、5 分待ってから再度モデルのチューニングを試みます。

エラーコード: 429

問題

次のエラーが発生します。

429: The online prediction request quota is exceeded for
PUBLIC_BASE_MODEL_NAME.

解決策

バックオフを行い、後で再試行してください。それでもエラーが解消されない場合は、Vertex AI にお問い合わせください。

エラーコード: 410

問題

次のエラーが発生します。

410: The request is missing the required authentication credential. Expected
OAuth 2.0 access token, login cookie, or other valid authentication credential.

解決策

詳細については、認証の概要をご覧ください。

エラーコード: 403

問題

次のエラーが発生します。

403: Permission denied.

解決策

API にアクセスするアカウントに適切な権限があることを確認してください。

Vertex AI Pipelines

このセクションでは、Vertex AI Pipelines で問題が発生した場合に役立つトラブルシューティング手順について説明します。

サービス アカウントとして機能するための権限が付与されていない

問題

Vertex AI Pipelines ワークフローを実行すると、次のエラー メッセージが表示される場合があります。

You do not have permission to act as service account: SERVICE_ACCOUNT. (or it may not exist).

解決策

このエラーは、使用する必要のあるリソースへのアクセス権がワークフローを実行するサービス アカウントにないことを意味します。

この問題を解決するには、以下のいずれかを試します。

  • Vertex AI Service Agent ロールをサービス アカウントに追加します。
  • サービス アカウントに対する iam.serviceAccounts.actAs 権限をユーザーに付与します。

エラー Internal error happened

問題

パイプラインが Internal error happened メッセージで失敗した場合は、ログ エクスプローラでパイプラインの名前を検索します。次のようなエラーが表示されます。

java.lang.IllegalStateException: Failed to validate vpc
network projects/PROJECT_ID/global/networks/VPC_NETWORK.

APPLICATION_ERROR;google.cloud.servicenetworking.v1/ServicePeeringManagerV1.GetConsumerConfig;Reserved
range: 'RANGE_NAME' not found for consumer project:
'PROJECT_ID' network: 'VPC_NETWORK'.
com.google.api.tenant.error.TenantManagerException: Reserved range:
'RANGE_NAME' not found for consumer project

これは、Vertex AI の VPC ピアリングに削除された IP 範囲が含まれていることを意味します。

解決策

この問題を解決するには、更新コマンドを使用して VPC ピアリングを更新し、有効な IP 範囲を指定します。

指定された OAuth スコープまたは ID トークン オーディエンスが無効

問題

Vertex AI Pipelines ワークフローを実行すると、次のエラー メッセージが表示されます。

google.auth.exceptions.RefreshError: ('invalid_scope: Invalid OAuth scope
or ID token audience provided.', {'error': 'invalid_scope',
'error_description': 'Invalid OAuth scope or ID token audience provided.'})

解決策

これは、パイプラインのコンポーネントのいずれかで認証情報を提供していないか、ai_platform.init() を使用して認証情報を設定していないことを意味します。

この問題を解決するには、関連するパイプライン コンポーネントの認証情報を設定するか、環境の認証情報を設定して、コードの先頭で ai_platform.init() を使用します。

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = PATH_TO_JSON_KEY

Vertex AI Pipelines コンポーネントには 100 GB を超えるディスク容量が必要

問題

Vertex AI Pipelines コンポーネントに割り当てられるデフォルトのディスク容量は 100 GB で、ディスク容量を増やすことはできません。この問題については、公開 Issue Tracker をご覧ください。

解決策

コンポーネントが 100 GB を超えるディスク容量を使用する場合は、components メソッドを使用してコンポーネントをカスタムジョブに変換します。この演算子では、コンポーネントが使用するマシンタイプとディスクサイズを割り当てることができます。

この演算子の使用例については、「コンポーネントを Vertex AI カスタムジョブに変換する」セクションの Vertex AI Pipelines: ビルド済み Google Cloud パイプラインを使用したカスタム トレーニングをご覧ください。

Vertex AI ネットワーキングの問題

このセクションでは、Vertex AI のネットワーキングで問題が発生した場合に役立つトラブルシューティングの手順について説明します。

パイプラインまたはジョブが、ピアリングされた VPC ネットワーク内のエンドポイントにアクセスできない

問題

Vertex AI パイプラインが VPC ネットワーク内のリソースに接続しようとするとタイムアウトします。

解決策

問題を解決するには、次の方法をお試しください。

  • VPC ネットワーク ピアリングの設定の手順をすべて完了していることを確認します。
  • ピアリングされた VPC ネットワークの構成を確認します。ジョブの実行中に、ネットワークが正しいサービス ネットワーキング範囲からルートをインポートしていることを確認します。

    [VPC ネットワーク ピアリング] に移動

  • この範囲からネットワーク内のターゲットへの接続を許可するファイアウォール ルールがあることを確認します。

  • ジョブの実行中にピアリング接続でルートがインポートされない場合は、サービス ネットワーキング構成が使用されていません。これは、デフォルト ネットワーク以外のネットワークとピアリング構成を完了したことが原因と考えられます。その場合は、ジョブの起動時にネットワークを指定してください。projects/$PROJECT_ID/global/networks/$NETWORK_NAME の形式でネットワークの完全修飾名を使用します。

    詳細については、ルートの概要をご覧ください。

パイプラインまたはジョブが他のネットワークのエンドポイントにアクセスできない

問題

パイプラインまたはジョブが他のネットワークのエンドポイントにアクセスできません。

解決策

デフォルトでは、ピアリング構成は VPC のローカル サブネットにのみルートをエクスポートします。

また、推移的ピアリングはサポートされていないため、直接ピアリングされたネットワークのみが通信を行います。

  • Vertex AI がネットワーク経由で接続し、他のネットワークのエンドポイントに到達できるようにするには、ネットワーク ルートをピアリング接続にエクスポートする必要があります。ピアリングされた VPC ネットワークの構成を編集し、Export custom routes を有効にします。

[VPC ネットワーク ピアリング] に移動

推移的ピアリングはサポートされていないため、Export Custom Routes が有効になっていても、Vertex AI は他のピアリングされたネットワークとサービスへのルートを学習しません。回避策については、Vertex AI Pipelines のネットワーク到達性の拡張をご覧ください。

Vertex AI prediction

このセクションでは、Vertex AI Prediction で問題が発生した場合に役立つトラブルシューティングの手順について説明します。

再試行超過エラー

問題

バッチ予測ジョブの実行時に次のようなエラーが発生します。カスタムモデルを実行しているマシンが制限時間内に予測を完了できない可能性があります。

('Post request fails. Cannot get predictions. Error: Exceeded retries: Non-OK
result 504 (upstream request timeout) from server, retry=3, ellapsed=600.04s.', 16)

解決策

この問題を解決するには、コンピューティング ノードを増やすか、マシンタイプを変更してみてください。

プロジェクトがすでに VPC にリンクされている

問題

エンドポイントをデプロイすると、次のようなエラー メッセージが表示されることがあります。これは、Vertex AI エンドポイントが以前に Virtual Private Cloud ネットワークを使用し、リソースが適切にクリーニングされていないことを示しています。

Currently only one VPC network per user project is supported. Your project is
already linked to "projects/YOUR_SHARED_VPC_HOST_PROJECT/global/networks/YOUR_SHARED_VPC_NETWORK".
To change the VPC network, please undeploy all Vertex AI deployment resources,
delete all endpoint resources, and then retry creating resources in 30 mins.

解決策

この問題を解決するには、Cloud Shell で次のコマンドを実行してみてください。

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=YOUR_SHARED_VPC_NETWORK \
    --project=YOUR_SHARED_VPC_HOST_PROJECT

これにより、古い VPC ネットワークがサービス ネットワーキング VPC から手動で切断されます。

Vertex AI カスタム サービス アカウントに関する問題

このセクションでは、サービス アカウントで問題が発生した場合に役立つトラブルシューティングの手順について説明します。

サービス アカウントの serviceAccountAdmin エラーにより、モデルのデプロイに失敗する

問題

モデルのデプロイが失敗し、次のようなエラーが返されます。

Failed to deploy model MODEL_NAME to endpoint ENDPOINT_NAME due to the error: Failed to add IAM policy binding. Please grant SERVICE_ACC_NAME@gcp-sa-aiplatform.iam.gserviceaccount.com the iam.serviceAccountAdmin role on service account vertex-prediction-role@PROJECT_INFO.iam.gserviceaccount.com

解決策

このエラーは、カスタム サービス アカウントが正しく構成されていない可能性があることを意味します。正しい IAM 権限を持つカスタム サービス アカウントを作成するには、カスタム サービス アカウントを使用するをご覧ください。

カスタム サービス アカウントの使用時に ID トークンを取得できない

問題

カスタム サービス アカウントの使用時に、単一のレプリカで実行されるトレーニング ジョブがトークンの取得に必要な Compute Engine メタデータ サービスにアクセスできません。

次のようなエラーが表示されます。

Failed to refresh jwt, retry number 0: ("Failed to retrieve http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=...&format=full
from the Google Compute Engine Metadata service. Status: 404 Response:
\nb'Not Found\n'", <google.auth.transport.requests._Response object at
0x7fb19f058c50>)

解決策

カスタム サービス アカウントで ID トークンを取得するには、iamcredentials.googleapis.com を使用する必要があります。

カスタム トレーニング済みモデル

このセクションでは、カスタム トレーニング モデルで問題が発生した場合に役立つトラブルシューティングの手順について説明します。

カスタム トレーニングに関する問題

カスタム トレーニングで次の問題が発生することがあります。この問題は、CustomJob リソースと HyperparameterTuningJob リソース(TrainingPipeline リソースによって作成されたものを含む)で発生します。

レプリカがゼロ以外のステータスで終了した

問題

分散トレーニング中にワーカーのエラーが発生すると、トレーニングが失敗します。

解決策

ワーカーのスタック トレースを確認するには、Google Cloud コンソールでカスタム トレーニング ログを表示します。

他のトラブルシューティング トピックを参照して一般的なエラーを修正し、新しい CustomJobHyperparameterTuningJob、または TrainingPipeline リソースを作成します。多くの場合、このエラーコードは Vertex AI サービスではなく、トレーニング コードの問題が原因で発生します。これに該当するかどうか確認するには、ローカルマシンまたは Compute Engine でトレーニング コードを実行します。

レプリカがメモリ不足になった

問題

トレーニング中にトレーニング仮想マシン(VM)インスタンスのメモリが不足すると、エラーが発生することがあります。

解決策

Google Cloud コンソールで、トレーニング VM のメモリ使用量を確認できます。

このエラーが発生しても、VM 上でメモリ使用率が 100% になっていない場合があります。これは、VM で実行されるトレーニング アプリケーション以外のサービスもリソースを消費するためです。メモリが少ないマシンタイプでは、他のサービスのメモリ消費量が多くなる場合があります。たとえば、n1-standard-4 VM では、サービスが最大でメモリの 40% を消費します。

トレーニング アプリケーションのメモリ消費を最適化するか、より多くのメモリを搭載したマシンタイプを選択します。

リージョン内のリソースが不足している

問題

リージョンでストックアウトの問題が発生します。

解決策

Vertex AI は、Compute Engine リソースを使用してモデルをトレーニングします。Compute Engine がリージョン内の特定の CPU または GPU の容量に達すると、Vertex AI はワークロードをスケジュールできません。この問題はプロジェクトの割り当てとは関係ありません。

Compute Engine の容量に達すると、Vertex AI によって自動的に CustomJob または HyperparameterTuningJob が 3 回再試行されます。再試行がすべて失敗した場合、ジョブが失敗します。

通常は、GPU の使用時にストックアウトが発生します。GPU の使用中にこのエラーが発生した場合は、別の GPU タイプに切り替えてみてください。別のリージョンを使用できる場合は、別のリージョンでトレーニングを試してください。

別の Google Cloud サービスにアクセスするときに権限エラーが発生する

トレーニング コード(たとえば、google.api_core.exceptions.PermissionDenied: 403)から別の Google Cloud サービスにアクセスする際に権限エラーが発生した場合は、次のいずれかの問題が発生している可能性があります。

内部エラーです

問題

システムエラーのため、トレーニングに失敗しました。

解決策

一時的な問題である可能性があります。CustomJobHyperparameterTuningJobTrainingPipeline を再送信してみてください。エラーが解消されない場合は、サポートまでお問い合わせください。

カスタム コンテナ イメージの使用時のエラーコード 500

問題

ログに 500 エラーが記録されています。

解決策

このタイプのエラーは、Vertex AI のエラーではなく、カスタム コンテナ イメージに問題がある可能性があります。

エンドポイントへのデプロイ時にサービス アカウントが Cloud Storage バケットにアクセスできない

問題

エンドポイントにモデルをデプロイしようとしたときに、関連する Cloud Storage バケットへの storage.objects.list アクセス権がサービス アカウントに付与されていない場合、次のエラーが表示されることがあります。

custom-online-prediction@TENANT_PROJECT_ID.iam.gserviceaccount.com
does not have storage.objects.list access to the Cloud Storage bucket.

デフォルトでは、モデルをデプロイするカスタム コンテナは、Cloud Storage バケットへのアクセス権がないサービス アカウントを使用します。

解決策

この問題を解決するには、次のいずれかを試してください。

  • モデルをアップロードするときに、アクセスしようとしているファイルをコンテナからモデル アーティファクトにコピーします。Vertex AI は、他のすべてのモデル アーティファクトと同様に、デフォルトのサービス アカウントがアクセスできるロケーションにコピーします。

  • コンテナのビルドプロセスでファイルをコンテナにコピーします。

  • カスタム サービス アカウントを指定します。

Neural Architecture Search

既知の問題

  • NAS ジョブをキャンセルすると、メインジョブ(親)は停止しますが、一部の子トライアルは引き続き「実行中」の状態になります。この場合、「実行中」と表示されている子トライアルの状態は無視してください。トライアルは停止していますが、UI には引き続き「実行中」が表示されます。メインジョブが停止している限り、追加料金は発生しません。
  • トレーナーに報酬を報告した後、トライアル ジョブが終了するまで 10 分間待機(スリープ)します。
  • Cloud Shell を使用して TensorBoard を実行した場合、生成された出力リンクが機能しないことがあります。この場合は、ポート番号を書き留めて、ウェブでプレビュー ツールを使用し、正しいポート番号を選択してプロットを表示します。

    Web Preview ツールへのアクセス:

    予測された自転車走行時間の特徴アトリビューションの図。

  • トレーナーログに次のようなエラー メッセージが表示される場合:

    gcsfuse errors: fuse: writeMessage: no such file or directory [16 0 0 0 218 255 255 255 242 25 111 1 0 0 0 0]
    

    OOM 状態がこのエラーの原因となっているため、RAM の多いマシンを使用します。

  • カスタム トレーナーがジョブ ディレクトリ job-dir FLAG を見つけることができない場合は、ハイフンではなくアンダースコアを使用して job_dir をインポートします。これは、チュートリアル 1 の注記で説明しています。

  • トレーニング中の NAN エラー: NaN : Tensor had NaN values などのトレーニング ジョブで NaN エラーが発生する場合があります。提案されたアーキテクチャに対して学習率が大きすぎる可能性があります。詳細については、メモリ不足(OOM)と学習率に関連するエラーをご覧ください。

  • トレーニング中の OOM エラー: トレーニング ジョブで OOM(メモリ不足)エラーが発生することがあります。バッチサイズがアクセラレータのメモリに対して大きすぎる可能性があります。詳細については、メモリ不足(OOM)と学習率に関連するエラーをご覧ください。

  • プロキシタスク モデル選択のコントローラ ジョブが停止する: まれに、プロキシタスク モデル選択のコントローラ ジョブが停止することがあります。その場合は、こちらの手順でジョブを再開できます。

  • プロキシタスク検索のコントローラ ジョブが停止する: まれに、プロキシタスク検索のコントローラ ジョブが停止することがあります。その場合は、こちら手順でジョブを再開できます。

  • サービス アカウントに、Artifact Registry またはバケットにアクセスする権限がありません。バケット アクセスに関して Vertex AI Service Agent service-123456789@gcp-sa-aiplatform-cc.iam.gserviceaccount.com does not have permission to access Artifact Registry repository projects/my-project/locations/my-region/repositories/nas などのエラーが発生した場合や、同様のエラーが発生した場合は、このサービス アカウントにプロジェクトのストレージ編集者ロールを付与します。

Vertex AI Feature Store

このセクションでは、Vertex AI Feature Store で問題が発生した場合に役立つトラブルシューティングの手順について説明します。

ストリーミング取り込みまたはオンライン サービング リクエストの送信時に Resource not found エラーが発生する

問題

featurestore、エンティティ タイプ、特徴リソースを設定した後、これらのリソースが FeaturestoreOnlineServingService サービスに伝播されるまでに時間がかかります。リソースの作成直後にストリーミング取り込みまたはオンライン サービング リクエストを送信すると、この伝播の遅延により、resource not found エラーが発生することがあります。

解決策

このエラーが発生した場合は、数分待ってからリクエストを再試行してください。

新しく作成された特徴のバッチ取り込みは成功したが、オンライン サービング リクエストで空の値が返される

問題

新しく作成された特徴が FeaturestoreOnlineServingService サービスに伝播されるまでに時間がかかります。特徴と値は存在しますが、伝播に時間がかかります。これにより、オンライン サービング リクエストで空の値が返される場合があります。

解決策

この不整合が発生した場合は、数分待ってからオンライン サービング リクエストを再度試してください。

オンライン サービング ノードの CPU 使用率が高い

問題

オンライン サービング ノードの CPU 使用率が高くなっています。

解決策

この問題を軽減するには、オンライン サービング ノードの数を手動で増やすか、自動スケーリングを有効にしてノードの数を増やします。自動スケーリングが有効になっていても、ノードが追加または削除されたときに Vertex AI Feature Store でデータのバランス調整を行うために時間がかかります。特徴値の分布指標を時系列で表示する方法については、特徴値の指標を表示するをご覧ください。

最もホットなオンライン サービング ノードの CPU 使用率が高い

問題

最もホットなノードの CPU 使用率が高い場合は、サービング ノード数を増やすか、エンティティ アクセス パターンを疑似ランダムに変更します。

解決策

エンティティ アクセス パターンを擬似ランダムに設定すると、featurestore 内で互いに近い位置にあるエンティティに頻繁にアクセスすることで発生する高 CPU 使用率を軽減できます。どちらの解決策も有効でない場合は、同じエンティティに繰り返しアクセスすることを避けるために、クライアントサイドのキャッシュを実装します。

QPS が低いときに、オンライン サービングのレイテンシが高い

問題

QPS が低い場合にアクティビティがないか、アクティビティが少ないと、一部のサーバーサイド キャッシュが期限切れになる可能性があります。これにより、オンライン サービング ノードへのトラフィックが通常の QPS または高 QPS で再開されたときに、レイテンシが高くなる可能性があります。

解決策

この問題を軽減するには、少なくとも 5 QPS の人為的なトラフィックを featurestore に送信して、接続を常にアクティブにしておく必要があります。

6 時間後にバッチ取り込みジョブが失敗する

問題

読み取りセッションは 6 時間後に期限切れになるため、バッチ取り込みジョブが失敗する可能性があります。

解決策

タイムアウトを回避するには、ワーカーの数を増やし、6 時間の制限内で取り込みジョブが完了するようにします。

特徴値のエクスポート中に Resource exceeded エラーが発生する

問題

エクスポート ジョブが内部割り当てを超えると、大量のデータのエクスポートがリソース超過エラーで失敗する可能性があります。

解決策

このエラーを避けるには、一度に少量のデータを処理するように時間範囲パラメータ start_timeend_time を構成します。完全なエクスポートの詳細については、完全なエクスポートをご覧ください。

Vertex AI Vizier

Vertex AI Vizier を使用すると、次の問題が発生することがあります。

内部エラー

問題

内部エラーは、システムエラーが発生した場合に発生します。

解決策

一時的なものである可能性があります。リクエストを再送信してみてください。エラーが解決しない場合は、サポートにお問い合わせください