Amazon SageMaker 调试器参考资料 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon SageMaker 调试器参考资料

在以下主题中查找有关使用 Amazon SageMaker Debugger 的更多信息和参考资料。

Amazon SageMaker 调试器 APIs

Amazon SageMaker Debugger 在多个位置都有API操作,用于实施其对模型训练的监控和分析。

Amazon SageMaker Debugger 还提供了开源 sagemaker-debuggerPython SDK,用于配置内置规则、定义自定义规则和注册挂钩以收集训练作业的输出张量数据。

Amaz SageMaker on Python SDK 是一款以机器学习实验SDK为重点的高级版本。SDK可用于部署使用 SMDebug Python 库定义的内置规则或自定义规则,以使用 SageMaker 估计器监视和分析这些张量。

Debugger 已向 Amazon 添加了操作和类型 SageMaker API,使平台能够在训练模型时使用调试器并管理输入和输出的配置。

在分析模型训练时,规则配置API操作使用 SageMaker 处理功能。有关 SageMaker 处理的更多信息,请参阅带 SageMaker 处理功能的数据转换工作负载

用于调试器规则的 Docker 镜像

Amazon SageMaker 为规则提供了两组 Docker 镜像:一组用于评估由 SageMaker (内置规则)提供的规则,另一组用于评估 Python 源文件中提供的自定义规则。

如果您使用 Amaz SageMaker on Python SDK,则只需将 SageMaker 高级调试器API操作与 SageMaker 估算器API操作结合使用,而不必手动检索调试器 Docker 镜像并进行配置。ConfigureTrainingJob API

如果您不使用 SageMaker PythonSDK,则必须为调试器规则检索相关的预构建容器基础镜像。Amazon D SageMaker ebugger 为内置规则和自定义规则提供预构建的 Docker 镜像,这些镜像存储在亚马逊弹性容器注册表 (Amazon) 中。ECR要从 Amazon ECR 存储库中提取图像(或将图像推送到存储库),请使用该图像URL的全名注册表CreateTrainingJobAPI。 SageMaker 使用以下URL模式作为调试器规则容器镜像注册表地址。

<account_id>.dkr.ecr.<Region>.amazonaws.com/<ECR repository name>:<tag>

有关每个 AWS 地区的账户 ID、Amazon ECR 存储库名称和标签值,请参阅以下主题。

内置规则评估器的 Amazon SageMaker 调试器图片 URIs

使用以下值作为为 Amazon D SageMaker ebugger 提供内置规则的映像的注册表URLs组件。有关帐户IDs,请参阅下表。

ECR存储库名称: sagemaker-debugger-rules

标签:最新

完整注册表的示例 URL

904829902805.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rules:latest

按 AWS 区域划分IDs的内置规则容器镜像的账户

区域 account_id
af-south-1

314341159256

ap-east-1

199566480951

ap-northeast-1

430734990657

ap-northeast-2

578805364391

ap-south-1

904829902805

ap-southeast-1

972752614525

ap-southeast-2

184798709955

ca-central-1

519511493484

cn-north-1

618459771430

cn-northwest-1

658757709296

eu-central-1

482524230118

eu-north-1

314864569078

eu-south-1

563282790590

eu-west-1

929884845733

eu-west-2

250201462417

eu-west-3

447278800020

me-south-1

986000313247

sa-east-1

818342061345

us-east-1

503895931360

us-east-2

915447279597

us-west-1

685455198987

us-west-2

895741380848

us-gov-west-1

515509971035

URIs适用于自定义规则评估者的 Amazon SageMaker 调试器图片

使用以下值作为为 Amazon D SageMaker ebugger 提供自定义规则评估器的映像的注册表URL组件。有关帐户IDs,请参阅下表。

ECR存储库名称: sagemaker-debugger-rule-evaluator

标签:最新

完整注册表的示例 URL

552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest

按 AWS 区域划分IDs的自定义规则容器镜像账户

区域 account_id
af-south-1

515950693465

ap-east-1

645844755771

ap-northeast-1

670969264625

ap-northeast-2

326368420253

ap-south-1

552407032007

ap-southeast-1

631532610101

ap-southeast-2

445670767460

ca-central-1

105842248657

cn-north-1

617202126805

cn-northwest-1

658559488188

eu-central-1

691764027602

eu-north-1

091235270104

eu-south-1

335033873580

eu-west-1

606966180310

eu-west-2

074613877050

eu-west-3

224335253976

me-south-1

050406412588

sa-east-1

466516958431

us-east-1

864354269164

us-east-2

840043622174

us-west-1

952348334681

us-west-2

759209512951

us-gov-west-1

515361955729

Amazon SageMaker 调试器异常

Amazon SageMaker Debugger 旨在意识到执行规则所需的张量可能并非在每个步骤都可用。因此,它会引发几个异常,以使您能够控制张量缺失时发生的情况。在 smdebug.exceptions 模块中提供了这些异常。可按如下方式导入它们:

from smdebug.exceptions import *

提供了以下异常:

  • TensorUnavailableForStep – 请求的张量对步骤不可用。这可能意味着此步骤可能不会由挂钩保存,或者此步骤可能已保存一些张量,但请求的张量不在其中。请注意,当您看到该异常时,这意味着此张量将来绝不可用于此步骤。如果张量已为此步骤保存减少量,则它会告知您可以查询这些减少量。

  • TensorUnavailable— 此张量未被保存或未被保存。smdebug API这意味着,该张量永远对 smdebug 中的任何步骤不可见。

  • StepUnavailable – 步骤未保存,并且 Debugger 没有获取来自步骤的数据。

  • StepNotYetAvailable – 步骤对 smdebug 尚不可见。如果训练还在进行中,数据可以在以后可用。Debugger 会在新数据可用时自动加载新数据。

  • NoMoreData – 在训练结束时引发。一旦您看到此项,便知道没有其他需要保存的步骤和张量。

  • IndexReaderException – 索引读取器无效。

  • InvalidWorker – 调用了无效的工作线程。

  • RuleEvaluationConditionMet – 在步骤中对规则的评估结果是满足条件。

  • InsufficientInformationForRuleInvocation – 提供的信息不足,无法调用规则。

由 Amazon SageMaker 调试器支持的分布式训练

以下列表针对使用深度学习框架和各种分布式训练选项的训练作业,显示了 Debugger 的适用范围和注意事项。

  • Horovod

    对采用 Horovod 的训练作业的 Debugger 适用范围

    深度学习框架 Apache MXNet TensorFlow 1.x TensorFlow 2.x TensorFlow 使用 Keras 的 2.x PyTorch
    监控系统瓶颈
    分析框架操作
    调试模型输出张量
  • SageMaker 分布式数据 parallel

    使用调试器训练 SageMaker 分布式数据 parallel 的作业的有效范围

    深度学习框架 TensorFlow 2.x TensorFlow 使用 Keras 的 2.x PyTorch
    监控系统瓶颈
    分析框架操作 否* 否**
    调试模型输出张量

    * 调试器不支持 TensorFlow 2.x 的框架分析。

    ** SageMaker 分布式数据 parallel 不支持采用 Keras 实现的 TensorFlow 2.x。

  • SageMaker 分布式模型 paral lel — Debugger 不支持 SageMaker 分布式模型并行训练。

  • 带 SageMaker 检查点的分布式训练 — 当同时启用分布式训练选项和 SageMaker 检查点时,调试器不可用于训练作业。您可能会看到如下所示的错误:

    SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled

    要将 Debugger 用于带有分布式训练选项的训练作业,您需要禁用 SageMaker 检查点操作并在训练脚本中添加手动检查点功能。有关在带有检查点的分布式训练选项中使用 Debugger 的详细信息,请参阅与 Amazon SageMaker 调试器和检查点并行使用 SageMaker 分布式数据保存检查点

  • 参数服务器 – Debugger 不支持基于参数服务器的分布式训练。

  • 无法分析分布式训练框架的AllReduced操作,例如 SageMaker 分布式数据并行操作和 Horovod 操作