監控偏差漂移的參數 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控偏差漂移的參數

Amazon SageMaker Clarify 偏差監控會重複使用 分析組態中使用的參數子集分析組態檔案。描述組態參數後,本主題會提供JSON檔案的範例。這些檔案用於設定CSV和JSON排列資料集,以在機器學習模型處於生產狀態時監控資料集是否有偏差偏離。

下列參數必須在 JSON 檔案中提供。此JSON檔案的路徑必須在 ModelBiasAppSpecificationConfigUri 參數中提供API。

  • "version" –(選用) 組態檔案的結構描述版本。如果未提供,則會使用最新的支援版本。

  • "headers" –(選用) 資料集中的欄位名稱清單。如果 dataset_type"label" 並已指定 "application/jsonlines",則最後一個標題將成為標籤欄的標題。

  • "label" –(選用) 要用於偏差指標之模型的目標屬性。指定為資料欄名稱或索引 (如果資料集格式為 CSV),或指定為 JMESPath(如果資料集格式為JSON行)。

  • "label_values_or_threshold" –(選用) 標籤值或閾值的清單。表示用於偏差指標的正面結果。

  • "facet" –(選用) 屬於敏感屬性的功能清單,稱為構面。構面以配對形式用於偏差指標,並包括以下內容:

    • "name_or_index" – 構面欄名稱或索引。

    • "value_or_threshold" –(選用) 構面欄可採用的值或閾值清單。表示敏感群組,例如用來測量偏差的群組。如果未提供,偏差指標會將每個唯一值 (而非所有值) 計算為一個群組。如果構面欄為數值,則會套用此閾值為下限以選取敏感群組。

  • "group_variable" – (選用) 欄名稱或索引,用來指出要用於偏差指標條件人口統計差異的群組變數。

其他參數應在 EndpointInput(適用於即時端點) 或 BatchTransformInput(適用於批次轉換任務) ModelBiasJobInput 中提供API。

  • FeaturesAttribute – 如果端點輸入資料格式為 "application/jsonlines",則此參數是必要項目。如果資料集格式為 JSON Lines,JMESPath則會使用 來尋找特徵資料欄。

  • InferenceAttribute – 目標屬性模型輸出中的索引或JMESPath位置,用於使用偏差指標監控偏差。如果未在CSVaccept_type案例中提供,則假設模型輸出是對應於分數或機率的單一數值。

  • ProbabilityAttribute – 模型輸出中機率的索引或JMESPath位置。例如,如果模型輸出是具有標籤和機率清單的JSON行,則會選取對應至最大機率的標籤進行偏差運算。

  • ProbabilityThresholdAttribute –(選用) 浮點值,用來指示在二進制分類的情況下選取二進位標籤的閾值。預設值為 0.5。

CSV 和JSON行資料集的範例JSON組態檔案

以下是用於設定CSV和JSON排列資料集以監控偏差偏離JSON的檔案範例。

CSV 資料集

考慮有四個功能欄和一個標籤欄的資料集,其中第一個功能和標籤是二進位,如下列範例所示。

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

假設模型輸出有兩欄,其中第一個是預測標籤,第二個是機率,如下列範例所示。

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 表示模型輸出的首欄,

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

或者,您可以使用不同的參數將機率值轉換為二進位預測標籤。使用從零開始的編號:1 表示第二欄;ProbabilityThresholdAttribute 值 0.6 表示大於 0.6 的機率會將二進位標籤預測為 1。

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

JSON 行資料集

考慮有四個功能欄和一個標籤欄的資料集,其中第一個功能和標籤是二進位,如下列範例所示。

{"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}

假設模型輸出有兩欄,其中第一個是預測標籤,第二個是機率。

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

下列JSON組態檔案顯示如何設定此JSON行資料集的範例。

{ "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 中的 "features" 參數值 (針對即時端點) 或 BatchTransformInput (針對批次轉換工作) 用於訂位資料集中的功能,而 "predicted_label" 參數值會從模型輸出中選取預測標籤。

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

或者,您可以使用 ProbabilityThresholdAttribute 參數值將機率值轉換為預測的二進位標籤。例如,0.6 的值表示大於 0.6 的的機率會預測二進位標籤為 1。

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