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