首页 > 解决方案 > 使用 AWS Lambda 函数将机器学习带入现场生产

问题描述

我目前正在为现场生产环境实施 Facebook Prophet。我以前没有这样做过,所以我想在这里向您介绍我的计划,并希望您能给我一些反馈,无论这是一个好的解决方案还是您有任何建议。

  1. 在 Django 中,我创建了预测所需的相关数据的 .csv 导出。这些 .csv 导出将上传到 AWS S3 存储桶。

  2. 从那里我可以访问这个 S3 存储桶,AWS Lambda Function其中包含发生“繁重”计算的地方。

  3. 完成后,我从 2. 中获取预测并将它们再次保存在forcast.csv导出中

  4. 现在我的 Django 应用程序可以访问forecast.csvS3获得相应的预测。

我特别好奇在这种情况下是否AWS Lambda Function正确tool。导出可能也可以保存在DynamoDB(?) 中,但我尽量保持我的 v1 简单,因此是 .csv。仍然需要为 AWS Lambda 安装正确的层/包。因此,在深入研究文档之前,我想确保自己走在正确的方向上。

标签: pythondjangoamazon-web-servicesaws-lambdafacebook-prophet

解决方案


我有点担心使用 AWS Lambda 进行“繁重”的计算。有几个原因。

  1. 二进制大小限制:AWS Lambda 的二进制大小限制为 250MB。这是我们面临的最大限制,因为您将无法在该二进制文件中包含所有库,如 numpy、pandas、matplotlib 等。
  2. 磁盘大小限制:AWS 仅提供 500MB 的最大磁盘大小来执行 lambda,如果您想将中间结果保存在磁盘中,这可能会成为问题。
  3. 成本可能会飙升:如果您的 lambda 要运行很长时间而不是多次小型调用,那么您最终会付出很多钱。在这种情况下,我认为使用 EC2 和 ECS 之类的东西会更好。

您可以评估将 S3 存储桶链接到 SQS 队列以及在 EC2 机器上运行的进程,该机器正在侦听队列并执行所有计算。

AWS Lambda 限制


推荐阅读