翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
バイアス分析と説明可能性のための SageMaker Clarify 処理ジョブを実行する
SageMaker Clarify 処理ジョブを使って、トレーニングデータの潜在的なバイアスの原因を分析し、トレーニング済みモデルのバイアスをチェックします。 SageMaker Studio でデータを分析する手順については、を参照してください SageMaker Studio でトレーニング前のデータのバイアスに関するレポートを生成する。ここでの焦点は、トレーニング後のバイアスメトリクスと説明可能性のための SHAP 値にあります。モデルの予測は、バイアスの原因となる可能性があります (例えば、あるグループに別のグループよりも頻繁に負の結果をもたらす予測を行う場合) 。 SageMaker Clarify は SageMaker Experiments と統合されているため、モデルのトレーニング後に、バイアスをチェックする属性 (収入など) を特定できます。 SageMaker 一連のアルゴリズムを実行してトレーニングされたモデルをチェックし、高所得所得者が低所得所得者と比較してより肯定的な予測を受けるかどうかなど、各属性のさまざまなタイプのバイアスに関する視覚的なレポートを提供します。
SageMaker Clarify の処理ジョブに必要なコンピューティングリソース
SageMaker Clarify 処理ジョブを実行するために必要なコンピューティングリソースを決定する際には、次の点を考慮してください。
-
処理ジョブの完了には、数分以上かかることがあります。
-
説明の計算は、実際の推論よりも時間がかかることがあります。これには、コンピューティングリソースを起動する時間も含まれます。
-
説明の計算は、実際の推論よりも計算負荷が高くなる可能性があります。 SageMakerリソースの使用によって発生する可能性のある料金を確認し、モニタリングします。詳細については、Amazon SageMaker 料金を参照してください
。
Clarify 処理ジョブを実行する
Studio で SageMaker Clarify 処理ジョブを実行して、トレーニング後のモデルのバイアスを検出する方法を説明したノートブックの例については、「Amazon SageMaker Clarify による説明可能性とバイアス検出
Amazon SageMaker Studio でノートブックを開く方法の手順については、「」を参照してくださいAmazon SageMaker Studio ノートブックを作成する、または開く。次のコードサンプルは、前述のノートブックの例から抜粋したものです。
モデルをトレーニングした後、次のコマンドを使って SageMaker Clarify プロセッサをインスタンス化します。
from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor( role=role, instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=session)
次に、入力データセット、出力の格納場所、対象となるラベル列を DataConfig
オブジェクトで設定し、トレーニング済みモデルに関する情報を ModelConfig
で指定し、予測の形式に関する情報を ModelPredictedLabelConfig
で提供します。
bias_report_output_path = 's3://{}/{}/clarify-bias'.format(bucket, prefix) bias_data_config = clarify.DataConfig( s3_data_input_path=train_uri, s3_output_path=bias_report_output_path, label='Target', headers=training_data.columns.to_list(), dataset_type='text/csv') model_config = clarify.ModelConfig( model_name=model_name, instance_type='ml.c5.xlarge', instance_count=1, accept_type='text/csv') predictions_config = clarify.ModelPredictedLabelConfig(probability_threshold=0.8)
BiasConfig
を使用して、ファセット (機密性の高いグループ、Sex
) を含む列、機密性の高い特徴 (facet_values_or_threshold
)、望ましい結果 (label_values_or_threshold
) に関する情報を提供します。
bias_config = clarify.BiasConfig( label_values_or_threshold=[1], facet_name='Sex', facet_values_or_threshold=[0])
を使用して、処理ジョブでトレーニング前とトレーニング後の両方の分析を同時に実行できますrun_bias()
。
clarify_processor.run_bias( data_config=bias_data_config, bias_config=bias_config, model_config=model_config, model_predicted_label_config=predictions_config, pre_training_methods='all', post_training_methods='all')
Studio で結果を表示するか、bias_report_output_path
S3 バケットから結果をダウンロードします。
Spark で Clarify 処理ジョブを実行する
Apache Spark
次の例は、SageMakerClarifyProcessor
Clarify は、このプロセッサに関連するすべてのジョブを Spark 分散処理を使用して実行します。
from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor( role=role, instance_count=5, instance_type='ml.c5.xlarge', max_runtime_in_seconds=1200, volume_size_in_gb=100)
ローカル SHAP 値を ShapConfig
インスタンスを増やす場合は、ModelConfig
分析結果を取得する
処理ジョブが終了したら、出力ファイルをダウンロードして、Studio で結果を検査または視覚化できます。出力ディレクトリには、次のファイルが含まれています。
-
analysis.json
- JSON 形式のバイアスメトリクスと SHAP 値。 -
report.ipynb
- バイアスメトリクスと SHAP 値を視覚化するための静的ノートブック。 -
explanations_shap/out.csv
- 入力データセットと同じ形式のデータセット内の各行のローカル (インスタンス別) SHAP 値。各行の出力ファイルには、各特徴と予測ラベルの SHAP 値が含まれています。
分析 JSON ファイルでは、バイアスメトリクスと SHAP 値が 3 つの別々のセクションに整理されています。
{ "explanations": { . . . } "pre_training_bias_metrics": { . . . } "post_training_bias_metrics": { . . . } }
SHAP 値は、“explanations”
セクションにあります。値は、各特徴列のグローバル SHAP 値に対応します。
"explanations": { "kernel_shap": { "label0": { "global_shap_values": { "feature_0": 0.022486410860333206, "feature_1": 0.007381025261958729, "feature_2": 0.006843906804137847 }, "expected_value": 0.508233428001 } } }
バイアスメトリクスは、トレーニング前とトレーニング後のバイアスメトリクスセクションにあります。
{ "post_training_bias_metrics": { "label": "target", "label_value_or_threshold": "1", "facets": { "feature_2": [ { "value_or_threshold": "1", "metrics": [ { "name": "DI", "description": "Disparate Impact (DI)", "value": 0.711340206185567 }, { "name": "DCR", "description": "Difference in Conditional Rejections (DCR)", "value": -0.34782608695652184 } { . . . } ] } ] } } }
バイアスメトリクスと SHAP 値の詳細、それらの解釈方法の詳細については、「Amazon AI の公平性と説明可能性に関するホワイトペーパー
上位の SHAP 値を示す棒グラフとバイアスメトリクスを示すテーブルは、レポートノートブックに記載されています。