我有 3 个主要进程要使用 Amazon SageMaker 执行。
- 使用自己的训练python脚本,(不使用sagemaker容器,内置算法)[Train.py]
-> 为此,我参考了此链接:
将自己的算法引入 AWS sagemaker 似乎我们可以将自己的训练脚本引入 Sagemaker 托管训练设置,并且可以将模型工件上传到 S3 等。 注意:我正在使用轻型GBM模型进行训练。
- 将预测写入 AWS RDS DB:
-> 无需部署模型和创建终结点,因为训练每天都会发生,并且在训练完成后立即创建预测。(需要 train.py 本身生成预测)
->挑战是如何从 train.py 脚本在 AWS RDS DB 中编写预测。(假设脚本在私有 VPC 中运行)
- 将此过程调度为日常作业:
--> 我已经完成了AWS步骤函数,似乎是触发日常训练并将预测写入RDS的方法。
-->挑战在于如何使用步进函数进行基于时间的触发,而不是基于事件的触发。
关于如何做到这一点的任何建议?有什么最佳实践可以遵循吗?提前谢谢你。
按计划触发步骤函数的方法是使用 CloudWatch 事件(一种 cron)。查看本教程:https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-cloudwatch-events-target.html
不要从你的 Python 代码写入 RDS!最好将输出写入 S3,然后将文件从 S3 "复制"到 RDS 中。解耦这些批次将使过程更加可靠和可扩展。您可以在将文件写入 S3 时触发批量复制到 RDS,也可以在稍后数据库不太忙时触发批量复制到 RDS。