Amazon SageMaker Debugger 参考 - 亚马逊 SageMaker AI

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

Amazon SageMaker Debugger 参考

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

Amazon SageMaker Debugger API

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

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

Amazon SageMaker AI Python SDK 是一个专门用于机器学习实验的高级 SDK。该 SDK 可用于部署通过 SMDebug Python 库定义的内置或自定义规则,以使用 SageMaker AI 估算器监控和分析这些张量。

Debugger 向 Amazon SageMaker API 添加了一些操作和类型,使得平台可以在训练模型时使用 Debugger 并管理输入和输出的配置。

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

用于 Debugger 规则的 Docker 映像

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

如果您使用 Amazon SageMaker Python SDK,则只需将 SageMaker AI 高级 Debugger API 操作与 SageMaker AI Estimator API 操作结合使用,而无需手动检索 Debugger Docker 映像并配置 ConfigureTrainingJob API。

如果您没有使用 SageMaker Python SDK,则必须检索 Debugger 规则的相关预构建容器基础映像。Amazon SageMaker Debugger 为内置规则和自定义规则提供了预构建的 Docker 映像,映像存储在 Amazon Elastic Container Registry (Amazon ECR) 中。要从 Amazon ECR 存储库中提取映像(或将映像推送到一个存储库),请使用 CreateTrainingJob API 并使用映像的全名注册表 URL。SageMaker AI 为 Debugger 规则容器映像注册表地址使用以下 URL 模式。

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

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

内置规则评估器的 Amazon SageMaker Debugger 映像 URI

对于为 Amazon SageMaker Debugger 提供内置规则的映像,其注册表 URL 的组成部分中可使用以下值。有关账户 ID,请参阅下表。

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

标签:最新

完整注册表 URL 示例

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

按 AWS 区域列出的内置规则容器映像的账户 ID

区域 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

自定义规则评估器的 Amazon SageMaker Debugger 映像 URI

对于为 Amazon SageMaker Debugger 提供自定义规则评估器的映像,其注册表 URL 的组成部分中可使用以下值。有关账户 ID,请参阅下表。

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

标签:最新

完整注册表 URL 示例

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

按 AWS 区域列出的自定义规则容器映像的账户 ID

区域 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 Debugger 异常

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

from smdebug.exceptions import *

提供了以下异常:

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

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

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

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

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

  • IndexReaderException – 索引读取器无效。

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

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

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

Amazon SageMaker Debugger 支持的分布式训练

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

  • Horovod

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

    深度学习框架 Apache MXNet TensorFlow 1.x TensorFlow 2.x TensorFlow 2.x 与 Keras PyTorch
    监控系统瓶颈 支持
    分析框架操作
    调试模型输出张量 支持
  • SageMaker AI 分布式数据并行

    Debugger 对采用 SageMaker AI 分布式数据并行的训练作业的适用范围

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

    * Debugger 不支持 TensorFlow 2.x 的框架分析。

    ** SageMaker AI 分布式数据并行不支持具有 Keras 实施的 TensorFlow 2.x。

  • SageMaker AI 分布式模型并行:Debugger 不支持 SageMaker AI 分布式模型并行训练。

  • 使用 SageMaker AI 检查点的分布式训练:在同时启用分布式训练选项和 SageMaker AI 检查点时,Debugger 不可用于训练作业。您可能会看到如下所示的错误:

    SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled

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

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

  • 分析分布式训练框架操作(例如 SageMaker AI 分布式数据并行运行的 AllReduced 操作以及 Horovod 操作)不可用。