

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

# 监测归因漂移的参数
<a name="clarify-config-json-monitor-model-explainability-parameters"></a>

Ama SageMaker zon Clarify 可解释性监控器会重复使用分析配置中使用的参数子集。[分析配置文件](clarify-processing-job-configure-analysis.md)必须在 JSON 文件中提供以下参数，并且必须在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityAppSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityAppSpecification) 的 `ConfigUri` 参数中提供路径。
+ `"version"` -（可选）配置文件的架构版本。如果未提供，则使用支持的最新版本。
+ `"headers"` -（可选）数据集中的特征名称列表。可解释性分析不需要标签。
+ `"methods"` - 用于分析和报告的方法及其参数的列表。如果省略了任何部分，则不对其进行计算。
  + `"shap"` -（可选）SHAP 值计算部分。
    + `"baseline"` -（可选）行（至少一行）列表，或 Amazon Simple Storage Service Amazon S3 对象 URI。在 Kernel SHAP 算法中用作基准数据集（也称为背景数据集）。其格式应与数据集格式相同。每行应仅包含特征列（或值）。将每行发送到模型之前，请省略任何必须排除的列。
    + `"num_samples"` - 要在 Kernel 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 行）、`application/x-parquet`（对于 Apache Parquet）以及 `application/x-image`（启用计算机视觉可解释性）。默认值与 `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”` 之类的占位符。

其他参数应在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityJobInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityJobInput) API 的 `EndpointInput`（对于实时端点）或 `BatchTransformInput`（对于批量转换作业）中提供。
+ `FeaturesAttribute` - 如果端点或批处理作业的输入数据格式为 `"application/jsonlines"`，则必须使用此参数。如果数据集格式为 JSON 线，则它 JMESPath用于定位特征列。
+ `ProbabilityAttribute`— 概率在模型输出中的索引或 JMESPath 位置。例如，如果模型输出是带有标签和概率列表的 JSON 行，则会选择与最大概率对应的标签进行偏差计算。

## CSV 和 JSON 行数据集的 JSON 配置文件示例
<a name="clarify-config-json-monitor-model-explainability-parameters-examples"></a>

以下是用于配置 CSV 和 JSON 行数据集以监控它们的特征归因偏移的 JSON 文件示例。

**Topics**
+ [

### CSV 数据集
](#clarify-config-json-monitor-model-explainability-parameters-example-csv)
+ [

### JSON 行数据集
](#clarify-config-json-monitor-model-explainability-parameters-example-jsonlines)

### CSV 数据集
<a name="clarify-config-json-monitor-model-explainability-parameters-example-csv"></a>

考虑一个包含三个数值特征列的数据集，如以下示例所示。

```
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 行数据集
<a name="clarify-config-json-monitor-model-explainability-parameters-example-jsonlines"></a>

考虑一个包含四个特征列和一个标签列的数据集，其中第一个特征和标签为二进制，如下例所示。

```
{"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`（对于实时端点）或 `BatchTransformInput`（对于批量转换作业）中的 `"features"` 参数值来定位数据集中的特征，`"probability"` 参数值从模型输出中选择概率值。

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