本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SageMaker 调试器参考资料
在以下主题中查找有关使用 Amazon SageMaker Debugger 的更多信息和参考资料。
Amazon SageMaker 调试器 APIs
Amazon SageMaker Debugger 在多个位置都有API操作,用于实施其对模型训练的监控和分析。
Amazon SageMaker Debugger 还提供了开源 sagemaker-debugger
Python SDK
Amaz SageMaker on Python SDKSMDebug
Python 库定义的内置规则或自定义规则,以使用 SageMaker 估计器监视和分析这些张量。
Debugger 已向 Amazon 添加了操作和类型 SageMaker API,使平台能够在训练模型时使用调试器并管理输入和输出的配置。
-
CreateTrainingJob
并UpdateTrainingJob
使用以下 Debugger APIs 来配置张量集合、规则、规则图像和分析选项: -
DescribeTrainingJob
提供了训练作业的完整描述,包括以下 Debugger 配置和规则评估状态:
在分析模型训练时,规则配置API操作使用 SageMaker 处理功能。有关 SageMaker 处理的更多信息,请参阅带 SageMaker 处理功能的数据转换工作负载。
用于调试器规则的 Docker 镜像
Amazon SageMaker 为规则提供了两组 Docker 镜像:一组用于评估由 SageMaker (内置规则)提供的规则,另一组用于评估 Python 源文件中提供的自定义规则。
如果您使用 Amaz SageMaker on Python SDKConfigureTrainingJob
API
如果您不使用 SageMaker PythonSDK,则必须为调试器规则检索相关的预构建容器基础镜像。Amazon D SageMaker ebugger 为内置规则和自定义规则提供预构建的 Docker 镜像,这些镜像存储在亚马逊弹性容器注册表 (Amazon) 中。ECR要从 Amazon ECR 存储库中提取图像(或将图像推送到存储库),请使用该图像URL的全名注册表CreateTrainingJob
API。 SageMaker 使用以下URL模式作为调试器规则容器镜像注册表地址。
<account_id>.dkr.ecr.<Region>.amazonaws.com/<ECR repository name>:<tag>
有关每个 Amazon 地区的账户 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
按 Amazon 区域划分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
按 Amazon 区域划分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 操作。