このガイドでは、Vertex AI の Model
リソースから説明を取得する方法について説明します。次の 2 つの方法で説明を取得できます。
オンライン説明: Vertex AI API への同期リクエスト。特徴アトリビューションを含む推論を返すオンライン推論と似ています。
バッチ説明: 特徴アトリビューションを含む予測を返す Vertex AI API への非同期リクエスト。バッチ説明は、バッチ推論リクエストのオプション部分です。
始める前に
説明を取得する前に、次のことを行う必要があります。
この手順は、使用する ML モデルのタイプによって異なります。
カスタム トレーニング済みモデルから説明を取得する場合は、サンプルベースの説明を構成するまたは特徴ベースの説明を構成するの手順に沿って、Vertex Explainable AI をサポートする
Model
を作成します。AutoML 表形式の分類モデルまたは回帰モデルから説明を取得する場合は、表形式のデータセットで AutoML モデルをトレーニングします。Vertex Explainable AI を使用するために個別の構成は必要ありません。予測モデルの説明はサポートされていません。
AutoML 画像分類モデルから説明を取得する場合は、画像データセットで AutoML モデルをトレーニングして、モデルをデプロイするときに説明を有効にします。Vertex Explainable AI を使用するために個別の構成は必要ありません。オブジェクト検出モデルの説明はサポートされていません。
オンライン説明を取得するには、前の手順で作成した
Model
をEndpoint
リソースにデプロイします。
オンライン説明を取得する
オンライン説明を取得するには、オンライン推論を取得する場合とほぼ同様の手順を行います。ただし、Vertex AI API に projects.locations.endpoints.predict
リクエストを送信する代わりに projects.locations.endpoints.explain
リクエストを送信します。
次のガイドでは、オンライン説明リクエストの準備と送信の詳しい手順を説明します。
AutoML 画像分類モデルの場合は、AutoML モデルからオンライン推論を取得するをご覧ください。
AutoML 表形式の分類モデルと回帰モデルの場合は、AutoML モデルから推論を取得するをご覧ください。
カスタム トレーニング済みモデルの場合は、カスタム トレーニング済みモデルからオンライン推論を取得するをご覧ください。
バッチ説明を取得する
特徴ベースのバッチ説明のみがサポートされています。サンプルベースのバッチ説明は取得できません
バッチ説明を取得するには、バッチ推論ジョブの作成時に generateExplanation
フィールドを true
に設定します。
バッチ予測ジョブの準備と作成の詳細な手順については、バッチ推論の取得をご覧ください。
同時説明を取得する
Explainable AI は同時説明をサポートしています。同時説明では、説明メソッドごとにモデルを個別にデプロイすることなく、デプロイされた同じモデル エンドポイントから特徴ベースの説明とサンプルベースの説明の両方をリクエストできます。
同時説明を取得するには、モデルをアップロードして、サンプルベースの説明または特徴ベースの説明を構成します。その後、通常どおりモデルをデプロイします。
モデルをデプロイした後は、通常どおり、構成された説明をリクエストできます。また、concurrent_explanation_spec_override
を指定することで、同時説明をリクエストできます。
同時説明を使用する場合は、次の点に注意してください。
- 同時説明は、
v1beta1
API バージョンでのみ使用できます。Vertex Python SDK を使用している場合、同時説明を使用するにはpreview
モデルを使用する必要があります。 - 特徴ベースの説明を使用してデプロイした後に、サンプルベースの説明をリクエストすることはできません。サンプルベースの説明と特徴ベースの説明の両方が必要な場合は、サンプルベースの説明を使用してモデルをデプロイし、同時説明フィールドを使用して特徴ベースの説明をリクエストします。
- 同時説明では、バッチ説明はサポートされていません。この機能を使用する唯一の方法はオンライン説明です。
トラブルシューティング
このセクションでは、説明の取得中に問題が発生した場合に役立つトラブルシューティングの手順について説明します。
エラー: リスト インデックスが範囲外です
説明をリクエストしたときに次のエラー メッセージが表示された場合:
"error": "Explainability failed with exception: listindex out of range"
オブジェクトの配列を想定しているフィールドに空の配列を渡していないことを確認します。たとえば、field1
がオブジェクトの配列を受け入れる場合、次のリクエスト本文はエラーになる可能性があります。
{
"instances": [
{
"field1": [],
}
]
}
代わりに、配列が空でないようにします。次に例を示します。
{
"instances": [
{
"field1": [
{}
],
}
]
}
次のステップ
- 取得した説明に基づいて、
Model
を調整して説明を改善する方法を学習する。 - 表形式データや画像データで Vertex Explainable AI のデモを行うサンプルのノートブックを試してみる。