【问题标题】:How can I quickly debug a SageMaker training script?如何快速调试 SageMaker 训练脚本?
【发布时间】:2020-01-25 03:13:40
【问题描述】:

在 Amazon SageMaker 中运行 ML 训练作业时,会“部署”训练脚本并提供一个 ML 训练实例,这需要大约 10 分钟才能启动并获取所需的数据。

我只能从训练作业中得到一条错误消息,然后它就死了,实例也随之被杀死。

在我对训练脚本进行更改以修复它之后,我需要部署并运行它,这需要另外 10 分钟左右的时间。

我怎样才能更快地完成这项工作,或保持训练实例运行?

【问题讨论】:

    标签: amazon-web-services tensorflow machine-learning amazon-sagemaker


    【解决方案1】:

    您似乎正在使用其中一个 SageMaker 框架运行训练作业。鉴于此,您可以使用 SageMaker 的“本地模式”功能,它将在您的笔记本实例中本地运行您的训练作业(特别是容器)。这样,您可以迭代您的脚本,直到它工作为止。然后,如果需要,您可以转到远程训练集群,针对整个数据集训练模型。要使用本地模式,您只需将实例类型设置为“本地”。有关本地模式的更多详细信息,请参见 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 代码,因此遇到问题的风险较小 :)

      【讨论】:

        【解决方案3】:

        Amazon SageMaker 现在提供了一种使用称为 SageMaker 调试器的新功能来调试机器学习模型的方法。此功能将允许您捕获流经计算图的张量并实时分析它们。根据实时发生的分析结果,您可以选择停止训练作业并以交互方式单独分析张量来调试您的模型。

        见:https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_debugger.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-27
          • 1970-01-01
          • 2020-09-29
          • 2020-01-14
          • 2021-01-16
          • 2018-06-30
          • 1970-01-01
          • 2020-11-18
          相关资源
          最近更新 更多