适用于批处理转换的AWS SageMaker部署

时间:2020-10-29 14:38:20

标签: python amazon-web-services amazon-s3 jupyter-notebook amazon-sagemaker

我试图在Sage Maker中使用XGBoost模型,并使用它通过Batch Transform对存储在S3中的大数据进行评分。

我使用现有的Sagemaker容器构建模型,如下所示:

estimator = sagemaker.estimator.Estimator(image_name=container, 
                                          hyperparameters=hyperparameters,
                                          role=sagemaker.get_execution_role(),
                                          train_instance_count=1, 
                                          train_instance_type='ml.m5.2xlarge', 
                                          train_volume_size=5, # 5 GB 
                                          output_path=output_path,
                                          train_use_spot_instances=True,
                                          train_max_run=300,
                                          train_max_wait=600)

estimator.fit({'train': s3_input_train,'validation': s3_input_test})

以下代码用于批量转换

 The location of the test dataset
batch_input = 's3://{}/{}/test/examples'.format(bucket, prefix)

# The location to store the results of the batch transform job
batch_output = 's3://{}/{}/batch-inference'.format(bucket, prefix)

transformer = xgb_model.transformer(instance_count=1, instance_type='ml.m4.xlarge', output_path=batch_output)

transformer.transform(data=batch_input, data_type='S3Prefix', content_type='text/csv', split_type='Line')

transformer.wait()

在Jupyter中构建模型时,以上代码在开发环境(Jupyter笔记本)中可以正常工作。但是,我想部署该模型并为Batch Transform调用其终结点。

大多数创建SageMaker端点的示例都是针对单个数据评分,而不是批量转换。

有人可以指出如何在SageMaker中部署和使用端点进行批处理转换吗?谢谢

1 个答案:

答案 0 :(得分:0)

下面的链接提供了有关如何在SageMaker中调用存储的模型以运行Batch Transform作业的示例。

Batch Transform Reference