用于批量转换的 AWS SageMaker 部署
AWS SageMaker Deployment for Batch Transform
我正在尝试在 Sage Maker 中使用 XGBoost 模型,并使用它对使用批量转换存储在 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 notebook)中运行良好。但是,我想部署模型并调用其端点以进行批量转换。
SageMaker 端点创建的大多数示例是针对单个数据评分而不是批量转换。
有人可以指出如何在 SageMaker 中部署和使用端点进行批量转换吗?谢谢
以下link示例说明了如何调用 SageMaker 中的存储模型到 运行 批量转换作业。
我正在尝试在 Sage Maker 中使用 XGBoost 模型,并使用它对使用批量转换存储在 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 notebook)中运行良好。但是,我想部署模型并调用其端点以进行批量转换。
SageMaker 端点创建的大多数示例是针对单个数据评分而不是批量转换。
有人可以指出如何在 SageMaker 中部署和使用端点进行批量转换吗?谢谢
以下link示例说明了如何调用 SageMaker 中的存储模型到 运行 批量转换作业。