本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控偏差漂移的參數
Amazon SageMaker Clarify 偏差監控會重複使用 分析組態中使用的參數子集分析組態檔案。描述組態參數後,本主題會提供JSON檔案的範例。這些檔案用於設定CSV和JSON排列資料集,以在機器學習模型處於生產狀態時監控資料集是否有偏差偏離。
下列參數必須在 JSON 檔案中提供。此JSON檔案的路徑必須在 ModelBiasAppSpecification
的 ConfigUri
參數中提供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 ... }