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

通过推理管道运行批量转换

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

注意

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

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