使用推理管道进行批量转换 - Amazon SageMaker

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

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

要获取对整个数据集的推理,请在训练好的模型上运行批处理转换。要在完整数据集上运行推理,您可以在批量转换作业中使用创建并部署到端点上用于实时处理的同一个推理管道模型。要在管道中运行批量转换作业,您需要从 Amazon S3 下载输入数据,然后通过一个或多个HTTP请求将其发送到推理管道模型。有关演示如何为批量转换准备数据的示例,请参阅使用 Linea r Learner 示例笔记本的 Amazon SageMaker 多模型终端节点中的 “第 2 节——使用 Scikit Lear n 预处理原始住房数据”。有关 Amazon SageMaker 批量转换的信息,请参阅使用 Amazon 进行批量转换以进行推理 SageMaker

注意

要在包含亚马逊 SageMaker 内置算法的管道中使用自定义 Docker 镜像,您需要亚马逊弹性容器注册表 (ECR) 策略。您的 Amazon ECR 存储库必须授予提取图片的 SageMaker 权限。有关更多信息,请参阅 对 Amazon 推理ECR管道权限进行故障排除

以下示例展示了如何使用 Amaz SageMaker on 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')