SageMaker端点自动化流集成和多个请求

0

【以下的问题经过翻译处理】 一位数据科学家正在寻求在SageMaker中托管一个TensorFlow模型,并处理低容量的流式事件数据(约每秒2-3个)以收集有关每个事件的推理。数据科学家正在考虑将SageMaker推理模型插入为Kinesis Data Analytics应用程序,但Kinesis Data Analytics目前仅支持SQL或Flink。

一种选项是设置一个ECS或Lambda服务来从Kinesis或SNS中消费数据,并针对每个消息调用SageMaker推理端点,但如果有一种更自动化和优化的解决方案可用于这些工作流程,就更好了。

目前不可能向SageMaker端点传递多个请求,但是TensorFlow模型往往在数据批处理上的表现比多个单独调用好得多,因此一些窗口化将是有益的。理想情况下,客户端想要在处理事件后的10-15秒内收到一个推理结果,因此基于S3的批处理方法可能会太慢了。

是否有什么建议适合处理这种工作负载?

profile picture
专家
已提问 5 个月前33 查看次数
1 回答
0

【以下的回答经过翻译处理】 要在SageMaker端点和Kinesis Data Analytics之间进行集成,请参考此博客-https://aws.amazon.com/blogs/architecture/realtime-in-stream-inference-kinesis-sagemaker-flink/。它讲解了如何设置无服务器环境以调用SageMaker推理端点。

在使用批处理时,TensorFlow文档提到以下内容:

  • 此链接提到,您可以在predict请求中包含多个实例(或在分类/回归请求中包含多个示例),以在一个请求中获取多个预测结果到您的端点。
  • 此链接提到,您可以配置SageMaker TensorFlow Serving容器,在执行推理之前合并多个记录。

您仍然必须在ECS/Lambda内部处理逻辑,以控制您从流中消耗多少记录才能进行批处理,但至少根据以上内容,您可以用整个批次的数据在SageMaker端点上进行推理。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则