配置 Clari SageMaker fy 处理 Job - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

配置 Clari SageMaker fy 处理 Job

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

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

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

  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 澄清处理任务不使用 GPU。

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

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

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

    2. 如果您提供给 Clarify 任务的模型或终端节点位于亚马逊虚拟私有云(亚马逊 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。有关此策略的更多信息,请参阅Amazon 托管策略: AmazonSageMakerFullAccess。如果您对授予完全访问权限有疑虑,则所需的最低权限取决于您提供的是模型还是端点名称。使用终端节点名称可以减少向授予的权限 SageMaker。

    下表包含 Clarify 处理任务使用 SageMaker 的 API 操作。模型名称端点名称下的 X 注明了每个输入所需的 API 操作。

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

    ListTags

    X

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

    CreateEndpointConfig

    X

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

    CreateEndpoint

    X

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

    DescribeEndpoint

    X

    X

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

    InvokeEndpoint

    X

    X

    调用端点进行预测。

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

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

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

以下代码示例展示了如何使用适用于 Python 的 SageMaker Amazon 软件开发工具包启动 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 的 SDK 运行 Clarif SageMaker y 处理作业的说明的示例笔记本,请参阅使用 Amazon 适用于 Python 的 SD Amazon K 使用 Clarify SageMaker 实现公平性和可解释性。笔记本中使用的任何 S3 存储桶都必须与访问该存储桶的笔记本实例位于同一 Amazon 区域。

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