哪一个用于处理sagemaker批量推理管道的数据-SKlearnEstimator或SKlearnProcessor



我正在构建一个Sagemaker批量推理管道,并对使用sagemaker.sklearn.processing.SKLearnProcessorsagemaker.sklearn.estimator.SKLearn之间处理特性的选项(在推理之前(感到困惑我对这两个选项的理解是:

aws中有文档使用sagemaker.sklearn.estimator.SKLearn进行批量转换来处理数据。使用这个类及其.create_model()方法的好处是,我可以将创建的模型(在推理之前处理特性(合并到部署在端点上的sagemaker.pipeline.PipelineModel中。因此,当推理请求输入时,整个管道都在一个要调用的端点后面https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-学习%20和%20Linear%20Learner.html我不知道具体的缺点,这是第一个问题(1(

然而,如果只是用于数据处理,我还可以使用sagemaker.sklearn.processing.SKLearnProcessor创建Sagemaker processing作业来处理特征,然后转储到s3进行模型到批量推理。对我来说,优点是有一份专为处理而设计的工作对我来说更有意义,但缺点是,与sagemaker.sklern.estimator.sklearn不同,我似乎必须编写一个处理程序来处理和推理自己。https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_processing/scikit_learn_data_processing_and_model_evaluation/scikit_learn_data_processing_and_model_evaluation.html那么,我的下一个问题(2(有没有一种方法可以让SKLearnProcessor参与sagemaker.pipeline.PipelineModel?如果不是,接下来的问题(3(是,如果SKLearnProcessor不是为在推理中使用而设计的,它的用例是什么。

最后一个问题(4(是,从效率的角度来看,在Sagemaker批量推理管道中使用每种方法的利弊是什么

  1. SageMaker推理管道是SageMaker托管的一项功能,您可以在端点和/或Batch Transform作业上创建串行推理管道(容器链(

关于您共享的链接,一种常见的模式是使用两个容器,其中一个容器承载Scikit学习模型,该模型将作为将请求传递到第二个容器之前的预处理步骤,该容器承载端点或Batch Transform Job上的模型。

  1. SKLearnProcessor用于启动SKLearn处理作业。您可以将SKLearnProcessor与处理脚本一起使用来处理您的数据。因此,SKLearnProcessor不能用于串行推理管道(sagemaker.pipeline.PipelineModel(。

  2. 如上所述,SKLearnProcessor旨在启动SageMaker处理作业,该作业利用Scikit学习容器,该容器可用于数据预处理或后处理以及模型评估工作负载。请查看此链接了解更多信息。

  3. 您是否正在尝试决定是使用SKLearnProcessor(处理作业(处理数据,还是使用包含Batch Transform作业中预处理步骤的PipelineModel

如果是,则根据您的用例做出决定。如果要使用处理作业(SKLearnProcessor(,则需要在批处理转换作业之前启动该作业。一旦处理作业完成,您就可以使用处理作业的输出作为Batch Transform作业的输入来启动Batch Transform Job。

另一方面,如果您要使用串行推理管道(sagemaker.pipeline.PipelineModel(,那么您只需要确保第一个容器对请求进行预处理,以确保它符合模型的预期。此选项需要在Batch Transform作业本身内根据请求进行处理。

最新更新