python - 使用 AWS Lambda 函数将机器学习带入现场生产
问题描述
我目前正在为现场生产环境实施 Facebook Prophet。我以前没有这样做过,所以我想在这里向您介绍我的计划,并希望您能给我一些反馈,无论这是一个好的解决方案还是您有任何建议。
在 Django 中,我创建了预测所需的相关数据的 .csv 导出。这些 .csv 导出将上传到 AWS S3 存储桶。
从那里我可以访问这个 S3 存储桶,
AWS Lambda Function
其中包含发生“繁重”计算的地方。完成后,我从 2. 中获取预测并将它们再次保存在
forcast.csv
导出中现在我的 Django 应用程序可以访问
forecast.csv
并S3
获得相应的预测。
我特别好奇在这种情况下是否AWS Lambda Function
正确tool
。导出可能也可以保存在DynamoDB
(?) 中,但我尽量保持我的 v1 简单,因此是 .csv。仍然需要为 AWS Lambda 安装正确的层/包。因此,在深入研究文档之前,我想确保自己走在正确的方向上。
解决方案
我有点担心使用 AWS Lambda 进行“繁重”的计算。有几个原因。
- 二进制大小限制:AWS Lambda 的二进制大小限制为 250MB。这是我们面临的最大限制,因为您将无法在该二进制文件中包含所有库,如 numpy、pandas、matplotlib 等。
- 磁盘大小限制:AWS 仅提供 500MB 的最大磁盘大小来执行 lambda,如果您想将中间结果保存在磁盘中,这可能会成为问题。
- 成本可能会飙升:如果您的 lambda 要运行很长时间而不是多次小型调用,那么您最终会付出很多钱。在这种情况下,我认为使用 EC2 和 ECS 之类的东西会更好。
您可以评估将 S3 存储桶链接到 SQS 队列以及在 EC2 机器上运行的进程,该机器正在侦听队列并执行所有计算。
推荐阅读
- git - Azure devops 显示其他人提交我的代码
- javascript - 通过Javascript中的键按字母顺序对对象对象进行排序
- java - 是否可以仅在没有 tomcat 服务器的情况下使用 Nginx 服务器运行 Java Web 应用程序?
- html - 在没有js的div的中心插入图像
- php - 如何打开mysql php函数自动完成?
- node.js - express.js 项目中的 CORS 问题
- angular7 - Angular 6 无法使用本地参考禁用启用输入
- php - 使用 mysql_data_seek 时 PHP Extra 1 空行
- python - 如何在 Python 中使用 Paramiko 时使 EllipticCurvePublicNumbers.encode_point CryptographyDeprecationWarning 静音
- excel - Excel 条件格式 - 间接地址公式