本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 SDKSMDebug Python 库定义的内置或自定义规则,以使用 SageMaker AI 估算器监控和分析这些张量。
Debugger 向 Amazon SageMaker API 添加了一些操作和类型,使得平台可以在训练模型时使用 Debugger 并管理输入和输出的配置。
-
CreateTrainingJob和UpdateTrainingJob使用以下 Debugger API 来配置张量集合、规则、规则映像和性能分析选项: -
DescribeTrainingJob提供了训练作业的完整描述,包括以下 Debugger 配置和规则评估状态:
分析模型训练时,规则配置 API 操作使用 SageMaker Processing 功能。有关 SageMaker Processing 的更多信息,请参阅使用 SageMaker Processing 的数据转换工作负载。
用于 Debugger 规则的 Docker 映像
Amazon SageMaker AI 为规则提供了两组 Docker 映像:一组用于评估 SageMaker AI 提供的规则(内置规则),另一组用于评估在 Python 源文件中提供的自定义规则。
如果您使用 Amazon SageMaker Python SDKConfigureTrainingJob 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– 请求的张量对步骤不可用。这可能意味着此步骤可能不会由挂钩保存,或者此步骤可能已保存一些张量,但请求的张量不在其中。请注意,当您看到该异常时,这意味着此张量将来绝不可用于此步骤。如果张量已为此步骤保存减少量,则它会告知您可以查询这些减少量。 -
TensorUnavailable–smdebugAPI 未保存或尚未保存此张量。这意味着,该张量永远对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 操作)不可用。