首页 > 解决方案 > 如何在不使用 jupyter notebook 实例(无服务器)的情况下在 Sagemaker 上以脚本模式训练和部署模型?

问题描述

我一直在使用 jupyter notebook 实例来启动训练作业(在单独的实例上)并部署端点(在另一个实例上)。我为此使用 sagemaker tensorflow API,如下所示:

# create Tensorflow object and provide and entry point script
tf_estimator = TensorFlow(entry_point='tf-train.py', role='SageMakerRole',
                      train_instance_count=1, train_instance_type='ml.p2.xlarge',
                      framework_version='1.12', py_version='py3')

# train model on data on s3 and save model artifacts to s3
tf_estimator.fit('s3://bucket/path/to/training/data')

# deploy model on another instance using checkpoints saved on S3
predictor = estimator.deploy(initial_instance_count=1,
                         instance_type='ml.c5.xlarge',
                         endpoint_type='tensorflow-serving')

我一直在通过一个 jupyter notebook 实例完成所有这些步骤。我可以使用哪些 AWS 服务来摆脱对 jupyter notebook 实例的依赖,并以无服务器方式自动执行这些训练和部署模型的任务?

标签: amazon-web-servicestensorflowjupyter-notebookamazon-sagemaker

解决方案


我推荐AWS Step FunctionsSageMaker Batch Transform由于它与CloudWatch事件规则集成,因此一直使用它来安排和预处理作业。它还可以训练模型、执行 hpo 调优,并与lambda. 有一个 SageMaker/Step Functions SDK,您可以通过创建状态机直接使用 Step Functions。一些示例和文档:

https://aws.amazon.com/about-aws/whats-new/2019/11/introducing-aws-step-functions-data-science-sdk-amazon-sagemaker/

https://docs.aws.amazon.com/step-functions/latest/dg/connect-sagemaker.html


推荐阅读