翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
本番稼働用モデルのSHAPベースラインを作成する
説明とは一般的に対比的なもので、この場合はベースラインからの逸脱について説明します。説明可能性ベースラインの詳細については、「SHAP Explainability のベースライン」を参照してください。
インスタンスごとの推論の説明を提供するだけでなく、 SageMaker Clarify は、特徴量の観点からモデル全体の動作を理解するのに役立つ ML モデルのグローバル説明もサポートしています。 SageMaker Clarify は、複数のインスタンスで Shapley 値を集計することで ML モデルのグローバル説明を生成します。 SageMaker Clarify は、ベースラインの定義に使用できる以下のさまざまな集計方法をサポートしています。
-
mean_abs
– すべてのインスタンスの絶対SHAP値の平均。 -
median
– すべてのインスタンスSHAPの値の中央値。 -
mean_sq
– すべてのインスタンスの二乗SHAP値の平均。
アプリケーションのリアルタイム推論データまたはバッチ変換推論データのキャプチャを設定した後、特徴量属性ドリフトのモニタリングで最初に行うタスクは、比較対象となるベースラインの作成です。これには、データ入力、機微性の高いグループ、予測のキャプチャ方法、モデルとそのトレーニング後のバイアスメトリクスの設定が含まれます。その後に、ベースライン作成ジョブを開始する必要があります。モデルの説明可能性モニタリングは、推論を生成するデプロイ済みのモデルの予測を説明し、特徴属性ドリフトを定期的に検出します。
model_explainability_monitor = ModelExplainabilityMonitor( role=role, sagemaker_session=sagemaker_session, max_runtime_in_seconds=1800, )
この例では、説明可能性ベースラインジョブはテストデータセットをバイアスベースラインジョブと共有するため、同じ を使用します。DataConfig
唯一の違いはジョブ出力 ですURI。
model_explainability_baselining_job_result_uri = f"{baseline_results_uri}/model_explainability" model_explainability_data_config = DataConfig( s3_data_input_path=validation_dataset, s3_output_path=model_explainability_baselining_job_result_uri, label=label_header, headers=all_headers, dataset_type=dataset_type, )
現在、Clarify SageMaker 説明子は のスケーラブルで効率的な実装を提供しているためSHAP、説明可能性の設定は でSHAPConfig、以下を含みます。
-
baseline
– カーネルSHAPアルゴリズムのベースラインデータセットURIとして使用する行 (少なくとも 1 つ) または S3 オブジェクトのリスト。形式は、データセット形式と同じである必要があります。各行には、機能 のみを含める必要がありますcolumns/values and omit the label column/values。 -
num_samples
– カーネルSHAPアルゴリズムで使用されるサンプルの数。この数値は、生成された合成データセットのサイズを決定し、SHAP値を計算します。 -
agg_method - グローバルSHAP値の集計方法。以下の値が有効です。
-
mean_abs
– すべてのインスタンスの絶対SHAP値の平均。 -
median
– すべてのインスタンスSHAPの値の中央値。 -
mean_sq
– すべてのインスタンスの二乗SHAP値の平均。
-
-
use_logit
— モデル予測にロジット関数を適用するかどうかを示す。デフォルトはFalse
です。use_logit
が の場合True
、SHAP値には log-odds 単位が含まれます。 -
save_local_shap_values
(ブール) - ローカルSHAP値を出力場所に保存するかどうかを示すインジケータ。デフォルトはFalse
です。
# Here use the mean value of test dataset as SHAP baseline test_dataframe = pd.read_csv(test_dataset, header=None) shap_baseline = [list(test_dataframe.mean())] shap_config = SHAPConfig( baseline=shap_baseline, num_samples=100, agg_method="mean_abs", save_local_shap_values=False, )
ベースライン作成ジョブを開始します。説明可能性ベースライン作成ジョブには、同じ model_config
が必要です。このジョブは生成された合成データセットの予測を取得するためにシャドウエンドポイントを作成する必要があるためです。
model_explainability_monitor.suggest_baseline( data_config=model_explainability_data_config, model_config=model_config, explainability_config=shap_config, ) print(f"ModelExplainabilityMonitor baselining job: {model_explainability_monitor.latest_baselining_job_name}")