如何在SageMaker上安排任务

Vic*_*sAT 5 amazon-web-services jupyter-notebook amazon-sagemaker

我在SageMaker上有一个笔记本,希望每天晚上运行。安排此任务的最佳方法是什么。是否可以从SageMaker运行bash脚本并计划Cron作业?

Guy*_*Guy 10

Amazon SageMaker是一组API,可以帮助执行各种机器学习和数据科学任务。可以从各种来源(例如CLI,SDK或从计划的AWS Lambda函数(请参见此处获取文档)中调用这些API (https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events) .html

Amazon SageMaker的主要部分是笔记本实例,培训和调整工作以及用于实时预测的模型托管。每个人都有您可能想要的不同类型的日程表。最受欢迎的是:

  • 停止和启动Notebook实例 -由于Notebook实例用于交互式ML模型开发,因此您实际上并不需要它们在晚上或周末运行。您可以安排Lambda函数在工作日结束时(例如,晚上8点)调用stop-notebook-instance API,并在早晨调用start-notebook-instance API。请注意,您也可以在笔记本实例上运行crontab(从Jupyter界面打开本地终端后)。
  • 刷新ML模型 -使用SageMaker可以更轻松地解决对所有时间一直流入系统的新数据进行模型的重新训练的自动化。从预定的Lambda函数(甚至从监视现有模型性能的CloudWatch Event)中调用create-training-job API ,指向旧数据和新数据所在的S3存储桶,可以创建一个刷新的模型,现在可以部署到A / B测试环境中

-----更新(感谢@ snat2100评论)-----

  • 创建和删除实时端点 -如果不需要24/7全天候端点(例如,为在工作日和工作时间内工作的公司内部用户提供服务),您还可以在早上创建端点,并在晚上删除它们


Omr*_*mri 5

截至 2020 年中期,AWS 提供了多种选项来将笔记本作为 cron 作业运行。它使用 Papermill 在每次运行时注入参数,您还可以使用 CLI 按需运行笔记本。
您可以:(1)直接使用AWS API或CLI;(2) 使用便利包,或 (3) 使用 Jupyter Lab 扩展。

有关示例,请参阅本教程快速入门指南