配置参数以监控归因偏差 - 亚马逊 SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置参数以监控归因偏差

Ama SageMaker zon Clarify 可解释性监控器重复使用了的分析配置中使用的一部分参数配置分析。必须在 JSON 文件中提供以下参数,并且必须在的ConfigUri参数中提供路径ModelExplainabilityAppSpecification

  • "version"—(可选)配置文件的架构版本。如果未提供,则使用支持的最新版本。

  • "headers"—(可选)数据集中的要素名称列表。可解释性分析不需要标签。

  • "methods"— 分析和报告的方法及其参数列表。如果省略了任何部分,则不对其进行计算。

    • "shap"—(可选)关于 SHAP 值计算的部分。

      • "baseline"—(可选)行列表(至少一行),或亚马逊简单存储服务 Amazon S3 对象 URI。用作 Kernel SHAP 算法中的基准数据集(也称为背景数据集)。格式应与数据集格式相同。每行应仅包含特征列(或值)。在将每一行发送到模型之前,省略任何必须排除的列。

      • "num_samples"— 内核 SHAP 算法中使用的样本数量。该数字决定了生成的合成数据集的大小,用于计算 SHAP 值。如果未提供,则 Cl SageMaker arify 任务会根据功能数量选择该值。

      • "agg_method"— 全局 SHAP 值的聚合方法。有效值如下所示:

        • "mean_abs"— 所有实例的绝对 SHAP 值的平均值。

        • "median"— 所有实例的 SHAP 值的中位数。

        • "mean_sq"— 所有实例的 SHAP 值平方的平均值。

      • "use_logit"—(可选)布尔值,用于指示是否将 logit 函数应用于模型预测。如果"use_logit"true,则 SHAP 值采用对数赔率单位。默认值为 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 Parqueapplication/x-image t 以及启用计算机视觉可解释性。默认值与dataset_type格式相同。

    • "accept_type"—(可选)用于通过影子端点获得推断的模型输出格式。有效值适用"text/csv"于 CSV,"application/jsonlines"适用于 JSON 行。如果省略, 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”

其他参数应在 ModelExplainabilityJobInputAPI 的EndpointInput(用于实时端点)或BatchTransformInput(用于批量转换作业)中提供。

  • FeaturesAttribute— 如果端点或批处理作业输入数据格式为,则此参数为必填参数"application/jsonlines"。如果数据集格式为 JSON 行,则它是用于定位要素列的 JMESPath。

  • ProbabilityAttribute— 模型输出中的概率索引或 JMESPath 位置。例如,如果模型输出是带有标签和概率列表的 JSON Lines,则会选择与最大概率相对应的标签进行偏差计算。

CSV 和 JSON 线路数据集的 JSON 配置文件示例

以下是用于配置 CSV 和 JSON Lines 数据集以监控其特征归因偏差的 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 Lines 数据集。

{ "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(用于实时端点)或BatchTransformInput(用于批量转换作业)中的"features"参数值来定位数据集中的要素,"probability"参数值从模型输出中选择概率值。

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