如何快速调试SageMaker训练脚本?

4
在Amazon SageMaker中运行机器学习训练作业时,训练脚本会被“部署”,并分配一个机器学习训练实例,这需要大约10分钟来启动并获取所需数据。
在训练作业中,我只能得到一个错误消息,然后它就会死掉,并且实例也会随之被销毁。
当我修改训练脚本以修复问题时,我需要再次部署和运行,这需要大约另外10分钟左右的时间。
如何更快地完成此操作,或者保持训练实例的运行状态?
3个回答

5
看起来您正在使用SageMaker框架之一运行训练作业。在此情况下,您可以使用SageMaker的“本地模式”功能,在笔记本实例中本地运行您的训练作业(特别是容器)。通过这种方式,您可以反复迭代您的脚本直到它正常工作。然后,如果需要,您可以转移到远程训练集群对整个数据集进行模型训练。要使用本地模式,只需将实例类型设置为“local”。有关本地模式的更多详细信息,请访问https://github.com/aws/sagemaker-python-sdk#sagemaker-python-sdk-overview和博客文章:https://aws.amazon.com/blogs/machine-learning/use-the-amazon-sagemaker-local-mode-to-train-on-your-notebook-instance/

2
如果您正在使用TF、MXNet、Pytorch或Chainer,本地模式确实是一种更快的迭代方式。更快的解决方案是使用玩具数据集在本地机器上编码和调试,确保您的训练/预测代码在将其移动到SageMaker之前可以正常运行。您甚至可以使用与SageMaker相同的容器,因为它们都是开源的,例如https://github.com/aws/sagemaker-tensorflow-container
如果您使用自定义容器,则可以在将其推送到ECR并在SageMaker中使用之前,在本地工作。
如果您使用内置算法,则没有其他选择,只能使用SageMaker托管的实例进行训练/预测。但是,在这种情况下,您不需要编写ML代码,因此运行问题的风险较小 :)

0
Amazon SageMaker现在提供了一种使用名为SageMaker Debugger的新功能来调试机器学习模型的方法。这个功能将允许您捕获通过计算图流动的张量并实时分析它们。基于实时发生的分析结果,您可以选择停止训练作业并以交互方式单独分析张量以调试您的模型。
请参见:https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_debugger.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接