Amazon web services 基于AWS-SageMaker的数据预处理
我有一个端点在AWS上运行一个经过培训的SageMaker模型,该模型需要特定格式的数据 最初,数据已在应用程序的客户端进行处理,这意味着,Amazon web services 基于AWS-SageMaker的数据预处理,amazon-web-services,aws-api-gateway,amazon-sagemaker,Amazon Web Services,Aws Api Gateway,Amazon Sagemaker,我有一个端点在AWS上运行一个经过培训的SageMaker模型,该模型需要特定格式的数据 最初,数据已在应用程序的客户端进行处理,这意味着,API网关(在AWS上接收API后调用)用于接收预处理数据,但现在有一个变化,API网关将从客户端接收原始数据,在发送到SageMaker模型之前预处理这些数据的工作取决于我们的工作流程 在不需要重新训练模型的情况下,在此工作流上创建预处理作业的最佳方法是什么?我的预处理只是一组数据帧转换,不需要标准化或使用所需的训练集进行计算(它不需要保存任何模型文件)
API网关
(在AWS上接收API后调用)用于接收预处理数据,但现在有一个变化,API网关
将从客户端接收原始数据,在发送到SageMaker模型之前预处理这些数据的工作取决于我们的工作流程
在不需要重新训练模型的情况下,在此工作流上创建预处理作业的最佳方法是什么?我的预处理只是一组数据帧转换,不需要标准化或使用所需的训练集进行计算(它不需要保存任何模型文件)
谢谢 我将创建一个Lambda,由API网关调用,处理数据并将其发送到SageMaker端点。经过一些研究,我采用了以下解决方案:
- 首先,我创建了一个
sagemaker模型来进行所有预处理设置(我构建了一个Scikit-Learn自定义类来处理所有预处理步骤,如下所示)SKLearn
- 在我的训练数据上训练这个预处理模型。具体来说,我的模型不需要训练(它没有任何标准化或任何需要存储训练数据参数的东西),但sagemaker要求对模型进行训练
- 使用
参数加载经过训练的遗留模型model
- 创建了一个带有级联预处理模型和遗留模型的
:管道模型
pipeline\u model=PipelineModel(name=model\u name,
角色,
模型=[
预处理模型,
训练有素的模型
])
- 创建一个新端点,调用
,然后更改PipelineModel
函数以调用此新端点。有了它,我就可以直接为同一个Lambda
发送原始数据,它只调用一个端点,而不需要24/7支付两个端点来执行整个过程API网关
Lambda
函数上执行艰难的处理工作