我试图在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中部署和使用端点进行批处理转换吗?谢谢
答案 0 :(得分:0)
下面的链接提供了有关如何在SageMaker中调用存储的模型以运行Batch Transform作业的示例。