我们如何在 AWS Sagemaker 推理中添加复杂的预处理
Posted
技术标签:
【中文标题】我们如何在 AWS Sagemaker 推理中添加复杂的预处理【英文标题】:How can we add complex preprocessing in AWS Sagemaker inference 【发布时间】:2021-04-08 21:29:12 【问题描述】:我正在使用 AWS Sagemaker 部署在 Sagemaker 之外训练的语音模型。我能够将我的模型转换为 Sagemaker 能够理解的模型并将其部署为端点。问题是 Sagemaker 直接加载模型并调用 .predict 来获取推理。我无法弄清楚在部署模型中的何处可以添加我的预处理功能。建议使用 AWS Lambda 或其他服务器进行预处理。有什么方法可以在 Sagemaker 本身中加入复杂的预处理(不能通过简单的 Scikit、Pandas 之类的框架来完成)?
【问题讨论】:
【参考方案1】:您需要调整要引入语音模型的容器中的 predictor.py 文件。假设您使用带上您的容器在 SageMaker 上部署这些模型,您需要调整预测器代码以包含预处理您正在使用的功能。对于您正在使用的任何额外依赖项,请确保在您带来的 Dockerfile 中更新它。在预测器文件中拥有预处理功能将确保您的数据在返回预测之前按照您的需要进行转换和处理。但是,这会增加响应时间,因此如果您有繁重的预处理工作负载或需要执行 ETL,您可能希望将服务视为 AWS Glue (ETL) 或 Kinesis(实时数据流/数据转换)。如果您选择使用 Lambda,请记住 15 分钟的超时限制。
我在 AWS 工作,我的意见是我自己的
【讨论】:
以上是关于我们如何在 AWS Sagemaker 推理中添加复杂的预处理的主要内容,如果未能解决你的问题,请参考以下文章
如何将 AWS SageMaker 提供给组织外部的人员使用?
如何修复 aws 区域错误“ValueError:必须使用 SageMaker 支持的区域设置本地 AWS 配置”
ClearML 如何在 AWS Sagemaker 中更改 clearml.conf 文件
如何在 AWS Sagemaker 中检索分段掩码中使用的标签