使用推理管道运行批量转换 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用推理管道运行批量转换

要获取对整个数据集的推理,请在训练好的模型上运行批处理转换。要在完整数据集上运行推理,您可以在批量转换作业中使用创建并部署到终端节点上用于实时处理的同一个推理管道模型。要在管道中运行批量转换作业,可以从 Amazon S3 下载输入数据,并在一个或多个 HTTP 请求中将这些数据发送到推理管道模型。有关说明如何准备数据用于批量转换的示例,请参阅 “ML 管道与 SparkML 和 XGBoost - 训练和推理”示例笔记本中的“准备数据进行批量转换”部分。有关 Amazon SageMaker 批量转换的信息,请参阅使用批量转换获取整个数据集的推理

注意

要在包含 Amazon SageMaker 内置算法的管道中使用自定义 Docker 映像,您需要Amazon Elastic Container Registry一个 (ECR) 策略。您的 Amazon ECR 存储库必须授予 SageMaker 权限才能拉取镜像。有关更多信息,请参阅。推理管道的 Amazon ECR 权限问题排查

以下示例说明如何使用 运行转换作业Amazon SageMaker Python SDK。在此示例中,model_name 是组合了 SparkML 和 XGBoost 模型(这些模型在前面的示例中创建)的推理管道。Amazon S3 指定的 input_data_path 位置包含要下载并发送到 Spark ML 模型的 CSV 格式的输入数据。转换作业完成后,Amazon S3 指定的 output_data_path 位置将包含 XGBoost 模型返回的输出数据(采用 CSV 格式)。

import sagemaker input_data_path = 's3://{}/{}/{}'.format(default_bucket, 'key', 'file_name') output_data_path = 's3://{}/{}'.format(default_bucket, 'key') transform_job = sagemaker.transformer.Transformer( model_name = model_name, instance_count = 1, instance_type = 'ml.m4.xlarge', strategy = 'SingleRecord', assemble_with = 'Line', output_path = output_data_path, base_transform_job_name='inference-pipelines-batch', sagemaker_session=sagemaker.Session(), accept = CONTENT_TYPE_CSV) transform_job.transform(data = input_data_path, content_type = CONTENT_TYPE_CSV, split_type = 'Line')