バイアスドリフトをモニタリングするパラメータ - Amazon SageMaker

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

バイアスドリフトをモニタリングするパラメータ

Amazon SageMaker Clarify バイアスモニタリングは、 の分析設定で使用されるパラメータのサブセットを再利用します分析設定ファイル。このトピックでは、設定パラメータについて説明した後、JSONファイルの例を示します。これらのファイルは、機械学習モデルが本番稼働中のときにバイアスドリフトをモニタリングするように CSV および JSON Lines データセットを設定するために使用されます。

ファイルには、次のパラメータを指定する必要がありますJSON。このJSONファイルへのパスは、 ModelBiasAppSpecificationConfigUriパラメータで指定する必要がありますAPI。

  • "version" - (オプション) 設定ファイルのスキーマバージョン。指定しない場合、サポートされている最新のバージョンが使用されます。

  • "headers" - (オプション) データセット内の列名のリスト。dataset_type"application/jsonlines" で、"label" が指定されている場合、最後のヘッダーはラベル列のヘッダーになります。

  • "label" — (オプション) バイアスメトリクスに使用するモデルのターゲット属性。列名、インデックス (データセット形式が の場合CSV)、または JMESPath (データセット形式が JSON Lines の場合) として指定します。

  • "label_values_or_threshold" — (オプション) ラベル値またはしきい値のリスト。バイアスメトリクスに使用した肯定的な結果を示します。

  • "facet" — (オプション) ファセットと呼ばれる機密属性である機能のリスト。ファセットはペアの形式でバイアスメトリクスに使用され、次のものが含まれます。

    • "name_or_index" - ファセットの列名またはインデックス。

    • "value_or_threshold" — (オプション) ファセット列に入力できる値またはしきい値のリスト。バイアスの測定に使用されるグループなど、機密性の高いグループを示します。指定しない場合、バイアスメトリクスは (すべての値ではなく) 一意の値ごとに 1 つのグループとして計算されます。ファセット列が数値の場合、このしきい値は、機密性の高いグループを選択するための下限として適用されます。

  • "group_variable" — (オプション) 条件付き人口格差のバイアスメトリクスに使用されるグループ変数を示す列名またはインデックス。

その他のパラメータは、 の EndpointInput (リアルタイムエンドポイントの場合) または BatchTransformInput (バッチ変換ジョブの場合) ModelBiasJobInput で指定する必要がありますAPI。

  • FeaturesAttribute — エンドポイントの入力データ形式が "application/jsonlines" の場合、このパラメータは必須です。これは、データセット形式が JSON Lines の場合に特徴量列を見つけるJMESPathために使用されます。

  • InferenceAttribute – バイアスメトリクスを使用してバイアスをモニタリングするために使用されるターゲット属性のモデル出力のインデックスまたはJMESPath位置。CSV accept_type ケースで指定されていない場合、モデル出力はスコアまたは確率に対応する単一の数値であると想定されます。

  • ProbabilityAttribute – 確率のモデル出力のインデックスまたはJMESPath場所。例えば、モデル出力がラベルと確率のリストを含むJSON行の場合、バイアス計算には最大確率に対応するラベルが選択されます。

  • ProbabilityThresholdAttribute - (オプション) 二項分類の場合にバイナリラベルを選択するためのしきい値を示す浮動小数点値。デフォルト値は 0.5 です。

CSV および JSON 行データセットJSONの設定ファイルの例

以下は、バイアスドリフトを監視するための CSV および JSON Lines データセットの設定に使用されるJSONファイルの例です。

CSV データセット

次の例のように、4 つの特徴量列と 1 つのラベル列からなるデータセットを考えてみると、最初の特徴量とラベルはバイナリです。

0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499, 0 1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713, 1 0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576, 1 1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697, 1

次の例のように、モデル出力に 2 つの列があり、最初の列が予測ラベル、2 番目の列が確率であると仮定します。

1, 0.5385257417814224

次に、次のJSON設定ファイルは、このCSVデータセットを設定する方法の例を示しています。

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

予測ラベルは "InferenceAttribute" パラメータによって選択されます。0 から始まる番号が使用されるため、0 はモデル出力の最初の列を示します。

"EndpointInput": { ... "InferenceAttribute": 0 ... }

別の方法として、さまざまなパラメータを使用して確率値をバイナリ予測ラベルに変換することもできます。0 から始まる番号付けが使用されます。1 は 2 列目を示し、0.6 という ProbabilityThresholdAttribute 値は、確率が 0.6 を超えるとバイナリラベルが 1 と予測されることを示します。

"EndpointInput": { ... "ProbabilityAttribute": 1, "ProbabilityThresholdAttribute": 0.6 ... }

JSON 行データセット

次の例のように、4 つの特徴量列と 1 つのラベル列からなるデータセットを考えてみると、最初の特徴量とラベルはバイナリです。

{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0} {"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1} {"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1} {"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}

モデル出力に 2 つの列があり、最初の列が予測ラベル、2 番目の列が確率であると仮定します。

{"predicted_label":1, "probability":0.5385257417814224}

次のJSON設定ファイルは、この JSON Lines データセットを設定する方法の例を示しています。

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "label", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

次に、EndpointInput (リアルタイムエンドポイントの場合) または BatchTransformInput (バッチ変換ジョブの場合) "features" のパラメータ値を使用してデータセット内の特徴量を検索し、"predicted_label" パラメータ値によってモデル出力から予測ラベルを選択します。

"EndpointInput": { ... "FeaturesAttribute": "features", "InferenceAttribute": "predicted_label" ... }

別の方法として、ProbabilityThresholdAttribute パラメータ値を使用して確率値をバイナリ予測ラベルに変換することもできます。例えば、値が 0.6 の場合、確率が 0.6 を超えると、バイナリラベルは 1 と予測されます。

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", "ProbabilityThresholdAttribute": 0.6 ... }