

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 本稼働環境のモデルの SHAP ベースラインを作成する
<a name="clarify-model-monitor-shap-baseline"></a>

説明とは一般的に対比的なもので、この場合はベースラインからの逸脱について説明します。説明可能性ベースラインの詳細については、「[説明可能性のための SHAP ベースライン](clarify-feature-attribute-shap-baselines.md)」を参照してください。

SageMaker Clarify では、インスタンスごとの推論の説明を提供するのみでなく、機械学習モデル全体の説明もサポートしています。これにより、モデルの特徴に関してモデル全体の動作を理解できます。SageMaker Clarify は複数のインスタンスで Shapley 値を集計して、機械学習モデル全体の説明を生成します。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,
)
```

現在、SageMaker Clarify の説明機能にはスケーラブルで効率的な SHAP が実装されているため、説明可能性の設定は ShapConfig で行います。ShapConfig には以下が含まれます。
+ `baseline` - カーネル SHAP アルゴリズムでベースラインデータセットとして使用される行のリスト (少なくとも 1 つ) または S3 オブジェクト URI。形式は、データセット形式と同じである必要があります。各行には、特徴の列/値のみを含め、ラベルの列/値を省略する必要があります。
+ `num_samples` - カーネル SHAP アルゴリズムで使用されるサンプルの数。この数値は、SHAP 値を計算するために生成される合成データセットのサイズを決定します。
+ agg\$1method - グローバル SHAP 値の集計方法。以下の値が有効です。
  + `mean_abs` - すべてのインスタンスの SHAP 絶対値の平均値。
  + `median` - すべてのインスタンスの SHAP 値の中央値。
  + `mean_sq` - すべてのインスタンスの SHAP 値の二乗平均値。
+ `use_logit` — モデル予測にロジット関数を適用するかどうかを示す。デフォルトは `False` です。`use_logit` が `True` の場合、SHAP の値は対数オッズ単位になります。
+ `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}")
```