【发布时间】:2020-11-27 15:47:45
【问题描述】:
我使用 AWS SageMaker 创建了一个 XGBoost 模型。现在我正在尝试通过 Batch Transform Job 使用它,对于小批量来说一切都很好。
但是,在约 16MB 的文件中有稍大的一批 600.000 行,我无法一次性运行它。我尝试了两件事:
1.
将转换作业的“最大负载大小”设置为最大值 (100 MB):
transformer = sagemaker.transformer.Transformer(
model_name = config.model_name,
instance_count = config.inference_instance_count,
instance_type = config.inference_instance_type,
output_path = "s3://{}/{}".format(config.bucket, config.s3_inference_output_folder),
sagemaker_session = sagemaker_session,
base_transform_job_name = config.inference_job_prefix,
max_payload = 100
)
但是,我仍然收到错误消息(通过控制台 CloudWatch 日志):
413 Request Entity Too Large
The data value transmitted exceeds the capacity limit.
2.
将 max_payload 设置为 0,根据规范,Amazon SageMaker 应将其解释为对有效负载大小没有限制。
在这种情况下,作业成功完成,但输出文件为空(0 字节)。
有什么想法是我做错了什么,或者如何运行更大的批次?
【问题讨论】:
-
您解决了这个问题吗?我的批量预测输出不断输出 0 字节对象。我已经尝试过底层解决方案。还是不行……