

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

# 配置 Clari SageMaker fy 处理 Job
<a name="clarify-processing-job-configure-parameters"></a>

要使用 SageMaker Clarify 分析您的数据和模型的偏差和可解释性，您必须配置 Clarify 处理 SageMaker 作业。本指南介绍如何为处理作业指定输入数据集名称、分析配置文件名称和输出位置。有两种选项可用于配置处理容器、作业输入、输出、资源和其他参数。你可以使用 SageMaker A `CreateProcessingJob` I API，也可以使用 AI Python SDK API`SageMaker ClarifyProcessor`， SageMaker 

有关所有处理任务的通用参数的信息，请参阅 [Amazon SageMaker API 参考](https://docs.amazonaws.cn/sagemaker/latest/APIReference/Welcome.html?icmpid=docs_sagemaker_lp)。

## 使用 SageMaker API 配置 SageMaker Clarify 处理作业
<a name="clarify-processing-job-configure-parameters-API"></a>

以下说明说明如何使用 `CreateProcessingJob` API 提供 Clarify 特定配置的每个部分。 SageMaker 

1. 在`AppSpecification`参数中输入 Clarify 容器 SageMaker 图像的统一研究标识符 (URI)，如以下代码示例所示。

   ```
   {
       "ImageUri": "the-clarify-container-image-uri"
   }
   ```
**注意**  
URI 必须标识预先构建的 Clarify SageMaker 容器镜像。 `ContainerEntrypoint`并且`ContainerArguments`不受支持。有关 Clarify SageMaker 容器镜像的更多信息，请参阅[预建的 SageMaker 澄清容器](clarify-processing-job-configure-container.md)。

1. 在 `ProcessingInputs` 参数中指定分析配置和输入数据集参数。

   1. 指定 JSON 分析配置文件的位置，该文件包含用于偏差分析和可解释性分析的参数。`ProcessingInput` 对象的 `InputName` 参数必须是 **analysis\$1config**，如以下代码示例所示。

      ```
      {
          "InputName": "analysis_config",
          "S3Input": {
              "S3Uri": "s3://your-bucket/analysis_config.json",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/input/config"
          }
      }
      ```

      有关分析配置文件模式的更多信息，请参阅 [分析配置文件](clarify-processing-job-configure-analysis.md)。

   1. 指定输入数据集的位置。`ProcessingInput` 对象的 `InputName` 参数必须是 `dataset`。如果您在分析配置文件中提供了“dataset\$1uri”，则此参数为可选。`S3Input` 配置中需要以下值。

      1. `S3Uri` 可以是 Amazon S3 对象或 S3 前缀。

      1. `S3InputMode` 必须是类型 **File**。

      1. `S3CompressionType` 必须是类型 `None`（默认值）。

      1. `S3DataDistributionType` 必须是类型 `FullyReplicated`（默认值）。

      1. `S3DataType` 可以是 `S3Prefix` 或 `ManifestFile`。要使用`ManifestFile`，`S3Uri`参数应指定清单文件的位置，该文件位于 “ SageMaker API 参考” 部分 [S3](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_S3DataSource.html#sagemaker-Type-S3DataSource-S3Uri) Uri 中的架构之后。此清单文件必须列出包含作业输入数据的 S3 对象。

      以下代码显示了输入配置的示例。

      ```
      {
          "InputName": "dataset",
          "S3Input": {
              "S3Uri": "s3://your-bucket/your-dataset.csv",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/input/data"
          }
      }
      ```

1. 在 `ProcessingOutputConfig` 参数中指定处理作业输出的配置。`Outputs` 配置中需要单个 `ProcessingOutput` 对象。输出配置的要求如下：

   1. `OutputName` 必须是 **analysis\$1result**。

   1. `S3Uri` 必须是输出位置的 S3 前缀。

   1. `S3UploadMode` 必须设置为 **EndOfJob**。

   以下代码显示了输出配置的示例。

   ```
   {
       "Outputs": [{ 
           "OutputName": "analysis_result",
           "S3Output": { 
               "S3Uri": "s3://your-bucket/result/",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/output"
            }
        }]
   }
   ```

1. 在 `ProcessingResources` 参数中为处理作业中使用的资源指定配置 `ClusterConfig`。`ClusterConfig` 对象内部需要以下参数。

   1. `InstanceCount` 指定集群中运行处理作业的计算实例的数量。请指定一个大于 `1` 的值，以激活分布式处理。

   1. `InstanceType` 是指运行处理作业的资源。由于 SageMaker AI SHAP 分析是计算密集型的，因此使用针对计算进行了优化的实例类型应该可以缩短分析的运行时间。“ SageMaker 澄清” 处理作业不使用 GPUs。

   以下代码显示了资源配置的示例。

   ```
   {
       "ClusterConfig": {
            "InstanceCount": 1,
            "InstanceType": "ml.m5.xlarge",
            "VolumeSizeInGB": 20
        }
   }
   ```

1. 在 `NetworkConfig` 对象中指定处理作业中使用的网络配置。配置中需要以下值。

   1. `EnableNetworkIsolation`必须设置为`False`（默认），这样 Cl SageMaker arify 才能在必要时调用端点进行预测。

   1. 如果您提供给 Clarify 任务的模型或终端节点位于亚马逊虚拟私有云（亚马逊 VPC）中，则 Clarify 任务也必须位于同一 VPC 中。 SageMaker SageMaker 使用指定 VPC [VpcConfig](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_VpcConfig.html)。此外，VPC 必须具有指向 Amazon S3 存储桶、 SageMaker AI 服务和 A SageMaker I 运行时服务的终端节点。

      如果激活了分布式处理，则还必须允许同一处理作业中的不同实例之间进行通信。请为您的安全组配置规则，以允许同一安全组的成员之间实现入站连接。有关更多信息，请参阅 [让 Amazon SageMaker Clarify Jobs 访问您的亚马逊 VPC 中的资源](clarify-vpc.md)。

   以下代码显示了网络配置的示例。

   ```
   {
       "EnableNetworkIsolation": False,
       "VpcConfig": {
           ...
       }
   }
   ```

1. 使用 `StoppingCondition` 参数设置作业运行的最长时间。Clarify SageMaker 作业可以运行的最长时间为`7`几天或`604800`几秒。如果无法在此时限内完成作业，则作业将停止，并且不会提供任何分析结果。例如，以下配置将作业的最长运行时间限制为 3600 秒。

   ```
   {
       "MaxRuntimeInSeconds": 3600
   }
   ```

1. 为 `RoleArn` 参数指定 IAM 角色。该角色必须与 Amazon A SageMaker I 建立信任关系。它可用于执行下表中列出 SageMaker 的 API 操作。我们建议使用 Amazon A SageMaker AIFull ccess 托管策略，该策略授予对 SageMaker AI 的完全访问权限。有关此策略的更多信息，请参阅[Amazon 托管策略： AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)。如果您对授予完全访问权限有疑虑，则所需的最低权限取决于您提供的是模型还是端点名称。使用终端节点名称可以向 SageMaker AI 授予更少的权限。

   下表包含 Clarify 处理任务使用 SageMaker 的 API 操作。**模型名称**和**端点名称**下的 **X** 注明了每个输入所需的 API 操作。    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/sagemaker/latest/dg/clarify-processing-job-configure-parameters.html)

   有关所需权限的更多信息，请参阅[Amazon SageMaker AI API 权限：操作、权限和资源参考](api-permissions-reference.md)。

   有关向 SageMaker AI 传递角色的更多信息，请参阅[传递角色](sagemaker-roles.md#sagemaker-roles-pass-role)。

   获得处理作业配置的各个部分后，将它们组合起来配置作业。

## 使用适用于 Python 的 Amazon SDK 配置 Clarify 处理作业 SageMaker
<a name="clarify-processing-job-configure-parameters-SDK"></a>

以下代码示例展示了如何使用适用于 [Python 的 SageMaker Amazon 软件开发工具包启动 Clarify](https://www.amazonaws.cn/sdk-for-python/) 处理作业。

```
sagemaker_client.create_processing_job(
    ProcessingJobName="your-clarify-job-name",
    AppSpecification={
        "ImageUri": "the-clarify-container-image-uri",
    },
    ProcessingInputs=[{
            "InputName": "analysis_config",
            "S3Input": {
                "S3Uri": "s3://your-bucket/analysis_config.json",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/input/config",
            },
        }, {
            "InputName": "dataset",
            "S3Input": {
                "S3Uri": "s3://your-bucket/your-dataset.csv",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/input/data",
            },
        },
    ],
    ProcessingOutputConfig={
        "Outputs": [{ 
            "OutputName": "analysis_result",
            "S3Output": { 
               "S3Uri": "s3://your-bucket/result/",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/output",
            },   
        }],
    },
    ProcessingResources={
        "ClusterConfig": {
            "InstanceCount": 1,
            "InstanceType": "ml.m5.xlarge",
            "VolumeSizeInGB": 20,
        },
    },
    NetworkConfig={
        "EnableNetworkIsolation": False,
        "VpcConfig": {
            ...
        },
    },
    StoppingCondition={
        "MaxRuntimeInSeconds": 3600,
    },
    RoleArn="arn:aws:iam::<your-account-id>:role/service-role/AmazonSageMaker-ExecutionRole",
)
```

有关使用适用于 Python 的 SDK 运行 Clarif SageMaker y 处理作业的说明的示例笔记本，请参阅使用 Amazon 适用于 Python 的 SD [Amazon K 使用 Clarify SageMaker 实现公平性和可解释性](http://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_boto3.ipynb)。笔记本中使用的任何 S3 存储桶都必须与访问该存储桶的笔记本实例位于同一 Amazon 区域。

## 使用 SageMaker Python 软件开发工具包配置 Clarify 处理作业 SageMaker
<a name="clarify-processing-job-configure-parameters-SM-SDK"></a>

你也可以使用 SageMaker Python SDK API [SageMaker ClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor)中的 Clarify 处理作业。 SageMaker 有关更多信息，请参阅 [运行 Cl SageMaker arify 处理作业以实现偏见分析和可解释性](clarify-processing-job-run.md)。

**Topics**
+ [预建的 SageMaker 澄清容器](clarify-processing-job-configure-container.md)
+ [分析配置文件](clarify-processing-job-configure-analysis.md)
+ [数据格式兼容性指南](clarify-processing-job-data-format.md)