配置 Clari SageMaker fy 处理 Job - Amazon SageMaker

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

配置 Clari SageMaker fy 处理 Job

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

有关所有处理任务的通用参数的信息,请参阅 Amazon SageMaker API Re ference。

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

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

    { "ImageUri": "the-clarify-container-image-uri" }
    注意

    URI必须标识预先构建的 Clarify SageMaker 容器镜像。 ContainerEntrypoint并且ContainerArguments不受支持。有关 Clarify SageMaker 容器镜像的更多信息,请参阅开始使用 Clarif SageMaker y 容器

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

    1. 指定JSON分析配置文件的位置,该文件包括偏差分析和可解释性分析的参数。ProcessingInput 对象的 InputName 参数必须是 analysis_config,如以下代码示例所示。

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

      有关分析配置文件架构的更多信息,请参见配置分析

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

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

      2. S3InputMode 必须是类型 File

      3. S3CompressionType 必须是类型 None(默认值)。

      4. S3DataDistributionType 必须是类型 FullyReplicated(默认值)。

      5. S3DataType 可以是 S3PrefixManifestFile。要使用ManifestFileS3Uri参数应指定清单文件的位置,该文件遵循 SageMaker API参考部分 S3 Uri 中的架构。此清单文件必须列出包含作业输入数据的 S3 对象。

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

      { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data" } }
  3. ProcessingOutputConfig 参数中指定处理作业输出的配置。Outputs 配置中需要单个 ProcessingOutput 对象。输出配置的要求如下:

    1. OutputName 必须是 analysis_result

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

    3. S3UploadMode 必须设置为 EndOfJob

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

    { "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output" } }] }
  4. ProcessingResources 参数中为处理作业中使用的资源指定配置 ClusterConfigClusterConfig 对象内部需要以下参数。

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

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

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

    { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 20 } }
  5. NetworkConfig 对象中指定处理作业中使用的网络配置。配置中需要以下值。

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

    2. 如果您向 Clarify 任务提供的模型或终端节点位于亚马逊 Virtual Private Cloud(亚马逊VPC)中,那么 Clarify 任务也必须处于相同状态VPC。 SageMaker SageMaker 指定VPC使用VpcConfig。此外,VPC必须具有 Amazon S3 存储桶、 SageMaker 服务和 SageMaker 运行时服务的终端节点。

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

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

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

    { "MaxRuntimeInSeconds": 3600 }
  7. RoleArn参数指定IAM角色。该职位必须与 Amazon 建立信任关系 SageMaker。它可用于执行下表中列出的 SageMaker API操作。我们建议使用 Amazon SageMakerFullAccess 托管政策,该政策授予对的完全访问权限 SageMaker。有关此策略的更多信息,请参阅AWS 托管策略: AmazonSageMakerFullAccess。如果您对授予完全访问权限有疑虑,则所需的最低权限取决于您提供的是模型还是端点名称。使用终端节点名称可以减少向授予的权限 SageMaker。

    下表包含 C API larify SageMaker 处理作业使用的操作。在 X模型名称” 和 “端点名称” 下方注明了每个输入所需的API操作。

    API操作 模型名称 端点名称 用途

    ListTags

    X

    作业的标签将应用于影子端点。

    CreateEndpointConfig

    X

    使用您提供的模型名称创建端点配置。

    CreateEndpoint

    X

    使用端点配置创建影子端点。

    DescribeEndpoint

    X

    X

    描述端点的状态,端点必须是 InService 为请求提供服务。

    InvokeEndpoint

    X

    X

    调用端点进行预测。

    有关所需权限的更多信息,请参阅Amazon SageMaker API 权限:操作、权限和资源参考

    有关将角色传递给的更多信息 SageMaker,请参阅传递角色

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

以下代码示例展示了如何使用AWS SDK适用于 Python SageMaker 的 Clarify 处理作业。

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 的 Clarify SageMaker 处理作业的说明的示例笔记本, AWS SDK请参阅在 Python 中使用 C l AWS SDK arify 进行 SageMaker 公平性和可解释性。笔记本中使用的任何 S3 存储桶都必须与访问该存储桶的笔记本实例位于同一 AWS 区域。

您也可以在 SageMaker Python SageMaker ClarifyProcessor中使用 Clarify 处理作业SDKAPI。 SageMaker 有关更多信息,请参阅 运行 Cl SageMaker arify 处理作业以实现偏见分析和可解释性