監控屬性漂移的參數 - Amazon SageMaker

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

監控屬性漂移的參數

Amazon SageMaker Clarify 可解釋性監視器會重複使用 分析組態中使用的參數子集分析組態檔案。下列參數必須在 JSON 檔案中提供,且路徑必須在 ConfigUri 參數中提供ModelExplainabilityAppSpecification

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

  • "headers" –(選用) 資料集中的功能名稱清單。可解釋性分析不需要標籤。

  • "methods" – 用於分析和報告的方法及其參數的清單。如果省略了任何區段,則不列入計算。

    • "shap" – (選用) SHAP值計算的區段。

      • "baseline" – (選用) 資料列清單 (至少一個) 或 Amazon Simple Storage Service Amazon S3 物件 URI。在核心SHAP演算法中用作基準資料集 (也稱為背景資料集)。此格式應與資料集格式相同。每一列應該只包含功能欄 (或值)。在將每一列傳送至模型之前,省略必須排除的任何欄。

      • "num_samples" – 核心SHAP演算法中使用的範例數目。此數字會決定產生的合成資料集大小來計算SHAP值。如果未提供, SageMaker Clarify 任務會根據功能計數選擇值。

      • "agg_method" – 全域SHAP值的彙總方法。有效值如下:

        • "mean_abs" – 所有執行個體的絕對SHAP值平均值。

        • "median" – 所有執行個體SHAP的值中位數。

        • "mean_sq" – 所有執行個體的平方SHAP值平均值。

      • "use_logit" –(選用) 布林值,指出 logit 函式是否要套用至模型預測。如果 "use_logit"true,則SHAP值具有 log-odds 單位。預設值為 false

      • "save_local_shap_values" – (選用) 布林值,指示本機SHAP值是否儲存在輸出位置。使用 true 以儲存。使用 false 不要儲存。預設值為 false

  • "predictor" – (即時端點為選用,批次轉換為必要) 模型參數的區段,如果 "shap""post_training_bias" 區段存在,則為必要。

    • "model_name" – 由 CreateModel 建立的模型名稱API,容器模式為 SingleModel

    • "instance_type" – 陰影端點的執行個體類型。

    • "initial_instance_count" – 陰影端點的執行個體計數。

    • "content_type" –(選用) 用於透過陰影端點取得推論的模型輸入格式。有效值"text/csv"適用於 CSV、"application/jsonlines"適用於 JSON Lines、application/x-parquet適用於 Apache Parquet,以及application/x-image啟用 Computer Vision 可解釋性。預設值與 dataset_type 格式相同。

    • "accept_type" –(選用) 用於透過陰影端點取得推論的模型輸出格式。有效值"text/csv"適用於 CSV,"application/jsonlines"適用於 JSON Lines。如果省略, SageMaker Clarify 會使用擷取資料的回應資料類型。

    • "content_template" –(選用) 用來建構資料集執行個體之模型輸入的範本字串。只有在 "content_type""application/jsonlines" 時才會使用。該範本應只有一個預留位置 $features,它在執行期時被功能清單取代。例如,假設"content_template":"{\"myfeatures\":$features}"執行個體 (無標籤) 為 1,2,3,則模型輸入會變成JSON行 '{"myfeatures":[1,2,3]}'

    • "label_headers" –(選用) 資料集中 "label" 接收的值清單。將模型端點或批次轉換工作傳回的分數與其對應的標籤值相關聯。如果有提供,則分析報告會使用標題,而不是像 “label0” 的預留位置。

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

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

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

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

以下是用於設定CSV和JSON排列資料集以監控特徵屬性漂移JSON的檔案範例。

CSV 資料集

考慮有三個數值特徵欄的資料集,如下列範例所示。

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

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

1, 0.5385257417814224

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

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ [0.4441164946610942, 0.5190374448171748, 0.20722795300473712] ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1 } }

預測標籤由 "ProbabilityAttribute" 參數選取。使用從零開始的編號,因此 1 表示模型輸出的第二欄。

"EndpointInput": { ... "ProbabilityAttribute": 1 ... }

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}

模型輸入與資料集格式相同,模型輸出為JSON行,如下列範例所示。

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

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

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ {"features":[0.4441164946610942, 0.5190374448171748, 0.20722795300473712]} ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1, "content_template":"{\"features\":$features}" } }

然後,EndpointInput 中的 "features" 參數值 (針對即時端點) 或 BatchTransformInput (針對批次轉換工作) 用於訂位資料集中的功能,而 "probability" 參數值會從模型輸出中選取機率值。

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