本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 Clari SageMaker fy 处理 Job
要使用 Clarify 分析数据和模型的偏差和可解释性, SageMaker 必须配置 Clarify 处理 SageMaker 作业。本指南介绍如何为处理作业指定输入数据集名称、分析配置文件名称和输出位置。有两种选项可用于配置处理容器、作业输入、输出、资源和其他参数。你可以使用 SageMaker CreateProcessingJob
API,也可以使用 SageMaker Python SDK APISageMaker ClarifyProcessor
,
有关所有处理任务的通用参数的信息,请参阅 Amazon SageMaker API Re ference。
以下说明说明如何使用提供 Clarify SageMaker 特定配置的每个部分CreateProcessingJob
API。
-
在
AppSpecification
参数中输入 Clarify SageMaker 容器图像的统一研究标识符 (URI),如以下代码示例所示。{ "ImageUri": "
the-clarify-container-image-uri
" }注意
URI必须标识预先构建的 Clarify SageMaker 容器镜像。
ContainerEntrypoint
并且ContainerArguments
不受支持。有关 Clarify SageMaker 容器镜像的更多信息,请参阅开始使用 Clarif SageMaker y 容器。 -
在
ProcessingInputs
参数中指定分析配置和输入数据集参数。-
指定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
" } }有关分析配置文件架构的更多信息,请参见配置分析。
-
指定输入数据集的位置。
ProcessingInput
对象的InputName
参数必须是dataset
。如果您在分析配置文件中提供了“dataset_uri”,则此参数为可选。S3Input
配置中需要以下值。-
S3Uri
可以是 Amazon S3 对象或 S3 前缀。 -
S3InputMode
必须是类型File
。 -
S3CompressionType
必须是类型None
(默认值)。 -
S3DataDistributionType
必须是类型FullyReplicated
(默认值)。 -
S3DataType
可以是S3Prefix
或ManifestFile
。要使用ManifestFile
,S3Uri
参数应指定清单文件的位置,该文件遵循 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
" } } -
-
-
在
ProcessingOutputConfig
参数中指定处理作业输出的配置。Outputs
配置中需要单个ProcessingOutput
对象。输出配置的要求如下:-
OutputName
必须是analysis_result
。 -
S3Uri
必须是输出位置的 S3 前缀。 -
S3UploadMode
必须设置为EndOfJob
。
以下代码显示了输出配置的示例。
{ "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "
s3://your-bucket/result/
", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output
" } }] } -
-
在
ProcessingResources
参数中为处理作业中使用的资源指定配置ClusterConfig
。ClusterConfig
对象内部需要以下参数。-
InstanceCount
指定集群中运行处理作业的计算实例的数量。请指定一个大于1
的值,以激活分布式处理。 -
InstanceType
是指运行处理作业的资源。由于 SageMaker SHAP分析是计算密集型的,因此使用针对计算进行了优化的实例类型应该可以缩短分析的运行时间。“ SageMaker 澄清” 处理作业不使用GPUs。
以下代码显示了资源配置的示例。
{ "ClusterConfig": { "InstanceCount":
1
, "InstanceType": "ml.m5.xlarge
", "VolumeSizeInGB":20
} } -
-
在
NetworkConfig
对象中指定处理作业中使用的网络配置。配置中需要以下值。-
EnableNetworkIsolation
必须设置为False
(默认),这样 Cl SageMaker arify 才能在必要时调用端点进行预测。 -
如果您向 Clarify 任务提供的模型或终端节点位于亚马逊 Virtual Private Cloud(亚马逊VPC)中,那么 Clarify 任务也必须处于相同状态VPC。 SageMaker SageMaker 指定VPC使用VpcConfig。此外,VPC必须具有 Amazon S3 存储桶、 SageMaker 服务和 SageMaker 运行时服务的终端节点。
如果激活了分布式处理,则还必须允许同一处理作业中的不同实例之间进行通信。请为您的安全组配置规则,以允许同一安全组的成员之间实现入站连接。有关更多信息,请参阅 让 Amazon SageMaker Clarify Jobs 访问您亚马逊中的资源 VPC。
以下代码显示了网络配置的示例。
{ "EnableNetworkIsolation": False, "VpcConfig": { ... } }
-
-
使用
StoppingCondition
参数设置作业运行的最长时间。Clarify SageMaker 作业可以运行的最长时间为7
几天或604800
几秒。如果无法在此时限内完成作业,则作业将停止,并且不会提供任何分析结果。例如,以下配置将作业的最长运行时间限制为 3600 秒。{ "MaxRuntimeInSeconds": 3600 }
-
为
RoleArn
参数指定IAM角色。该职位必须与 Amazon 建立信任关系 SageMaker。它可用于执行下表中列出的 SageMaker API操作。我们建议使用 Amazon SageMakerFullAccess 托管政策,该政策授予对的完全访问权限 SageMaker。有关此策略的更多信息,请参阅AWS 托管策略: AmazonSageMakerFullAccess。如果您对授予完全访问权限有疑虑,则所需的最低权限取决于您提供的是模型还是端点名称。使用终端节点名称可以减少向授予的权限 SageMaker。下表包含 C API larify SageMaker 处理作业使用的操作。在
X
“模型名称” 和 “端点名称” 下方注明了每个输入所需的API操作。API操作 模型名称 端点名称 用途 X
作业的标签将应用于影子端点。
X
使用您提供的模型名称创建端点配置。
X
使用端点配置创建影子端点。
X
X
描述端点的状态,端点必须是 InService 为请求提供服务。
X
X
调用端点进行预测。
有关所需权限的更多信息,请参阅Amazon SageMaker API 权限:操作、权限和资源参考。
有关将角色传递给的更多信息 SageMaker,请参阅传递角色。
获得处理作业配置的各个部分后,将它们组合起来配置作业。
以下代码示例展示了如何使用AWS SDK适用于 Python SageMaker
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 公平性和可解释性
您也可以在 SageMaker Python SageMaker ClarifyProcessor