本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用推理管道运行批量转换
要获取对整个数据集的推理,请在训练好的模型上运行批处理转换。要在完整数据集上运行推理,您可以在批量转换作业中使用创建并部署到终端节点上用于实时处理的同一个推理管道模型。要在管道中运行批量转换作业,可以从
Amazon S3 下载输入数据,并在一个或多个 HTTP 请求中将这些数据发送到推理管道模型。有关说明如何准备数据用于批量转换的示例,请参阅 “ML 管道与 SparkML 和 XGBoost - 训练和推理”示例笔记本
要在包含 Amazon SageMaker 内置算法的管道中使用自定义 Docker 映像,您需要Amazon Elastic Container Registry一个 (ECR) 策略。您的 Amazon ECR 存储库必须授予 SageMaker 权限才能拉取镜像。有关更多信息,请参阅。推理管道的 Amazon ECR 权限问题排查
以下示例说明如何使用 运行转换作业Amazon SageMaker Python SDKmodel_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')