[英]Preprocessing data before inference in Batch Transform SageMaker
[英]Data Preprocessing on AWS SageMaker
我有一个端点在 AWS 上运行经过训练的 SageMaker model,它需要特定格式的数据。
最初,数据已经在应用程序的客户端处理,这意味着, API Gateway
(它在 AWS 上接收 POST API 调用)用于接收预处理数据,但现在有一个变化, API Gateway
将接收来自客户端的原始数据,以及在发送到我们的 SageMaker model 之前预处理这些数据的工作取决于我们的工作流程。
在此工作流上创建预处理作业的最佳方法是什么,而无需重新训练 model? 我的预处理只是一堆 dataframe 转换,不需要对训练集进行标准化或计算(不需要保存任何 model 文件)。
谢谢!
经过一些研究,这是我遵循的解决方案:
SKLearn
sagemaker model 来完成所有预处理设置(我已经构建了一个 Scikit-Learn 自定义 class 来处理所有预处理步骤,遵循此AWS 代码)Model
参数训练的遗留 model。PipelineModel
:pipeline_model = PipelineModel(name=model_name,
role=role,
models=[
preprocess_model,
trained_model
])
PipelineModel
然后将 Lambda 更改为Lambda
以调用此新端点。 有了这个,我可以直接为同一个API Gateway
发送原始数据,它只会调用一个端点,而无需支付两个端点 24/7 的费用来执行整个过程。 我发现这是在训练好的 model 之外执行预处理的一种很好且“经济”的方法,而无需在Lambda
function 上进行艰苦的处理工作。
我将创建一个 Lambda,它由 API 网关调用,处理数据并将其发送到您的 SageMaker 端点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.