使用 AWS Lambda 函数将机器学习引入现场生产
Bring machine learning to live production with AWS Lambda Function
我目前正在为实时生产环境实施 Facebook Prophet。我以前没有这样做过,所以我想在这里向您介绍我的计划,并希望您能给我一些反馈,无论这是一个好的解决方案还是您有任何建议。
在 Django 中,我创建了一个 .csv 导出的相关数据,我需要这些数据来进行预测。这些 .csv 导出将上传到 AWS S3 存储桶。
从那里我可以使用 AWS Lambda Function
访问这个 S3 存储桶,其中正在进行 "heavy" 计算。
完成后,我从 2. 中获取预测并再次将它们保存在 forcast.csv
export
中
现在我的 Django 应用程序可以访问 S3
上的 forecast.csv
并获得相应的预测。
我特别好奇 AWS Lambda Function
在那种情况下是否是正确的 tool
。导出可能也可以保存在 DynamoDB
(?) 中,但我尽量让我的 v1 保持简单,因此 .csv。为 AWS Lambda 安装正确的 layers/packages 仍然需要一些努力。因此,在深入研究其文档之前,我想确保我正朝着正确的方向前进。
我有点担心使用 AWS Lambda 进行 "heavy" 计算。有几个原因。
- 二进制文件大小限制:AWS Lambda 的二进制文件大小限制为 250MB。这是我们面临的最大限制,因为您将无法在该二进制文件中包含所有库,如 numpy、pandas、matplotlib 等。
- 磁盘大小限制:AWS 只为 lambda 执行提供最大 500MB 的磁盘大小,如果您想将中间结果保存在磁盘中,这可能会成为一个问题。
- 成本可能会飙升:如果您的 lambda 将要 运行 很长时间而不是多次小调用,您最终会付出很多钱。在那种情况下,我认为使用 EC2 和 ECS 之类的东西会更好。
您可以评估将 S3 存储桶链接到 SQS 队列,以及 运行正在侦听队列并执行所有计算的 EC2 机器上的进程。
我目前正在为实时生产环境实施 Facebook Prophet。我以前没有这样做过,所以我想在这里向您介绍我的计划,并希望您能给我一些反馈,无论这是一个好的解决方案还是您有任何建议。
在 Django 中,我创建了一个 .csv 导出的相关数据,我需要这些数据来进行预测。这些 .csv 导出将上传到 AWS S3 存储桶。
从那里我可以使用
AWS Lambda Function
访问这个 S3 存储桶,其中正在进行 "heavy" 计算。完成后,我从 2. 中获取预测并再次将它们保存在
forcast.csv
export 中
现在我的 Django 应用程序可以访问
S3
上的forecast.csv
并获得相应的预测。
我特别好奇 AWS Lambda Function
在那种情况下是否是正确的 tool
。导出可能也可以保存在 DynamoDB
(?) 中,但我尽量让我的 v1 保持简单,因此 .csv。为 AWS Lambda 安装正确的 layers/packages 仍然需要一些努力。因此,在深入研究其文档之前,我想确保我正朝着正确的方向前进。
我有点担心使用 AWS Lambda 进行 "heavy" 计算。有几个原因。
- 二进制文件大小限制:AWS Lambda 的二进制文件大小限制为 250MB。这是我们面临的最大限制,因为您将无法在该二进制文件中包含所有库,如 numpy、pandas、matplotlib 等。
- 磁盘大小限制:AWS 只为 lambda 执行提供最大 500MB 的磁盘大小,如果您想将中间结果保存在磁盘中,这可能会成为一个问题。
- 成本可能会飙升:如果您的 lambda 将要 运行 很长时间而不是多次小调用,您最终会付出很多钱。在那种情况下,我认为使用 EC2 和 ECS 之类的东西会更好。
您可以评估将 S3 存储桶链接到 SQS 队列,以及 运行正在侦听队列并执行所有计算的 EC2 机器上的进程。