配置由 Amazon SageMaker Debugger 管理的内置探查器规则 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置由 Amazon SageMaker Debugger 管理的内置探查器规则

Amazon SageMaker Debugger 内置探查器规则可以分析模型训练期间收集的系统指标和框架操作。Debugger 提供 ProfilerRule API 操作,有助于配置规则来监控训练计算资源和操作以及检测异常。例如,分析规则可以协助您检测是否存在计算问题,例如 CPU 瓶颈、I/O 等待时间过长、GPU 工作线程之间的工作负载不平衡以及计算资源利用率不足。要查看可用的内置分析规则的完整列表,请参阅 Debugger 内置探查器规则列表

注意

内置规则通过 Amazon SageMaker 处理容器提供,由 SageMaker Debugger 完全管理,而且没有其他费用。有关计费的更多信息,请参阅 Amazon SageMaker 定价页面。

通过以下主题,学习如何使用 Debugger 内置规则。

将 SageMaker Debugger 内置探查器规则与默认参数设置一起使用

要在估算器中添加 SageMaker Debugger 内置规则,您需要配置 rules 列表对象。以下示例代码显示了列出 SageMaker Debugger 内置规则的基本结构:

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_n()), ... # You can also append more debugging rules in the Rule.sagemaker(rule_configs.*()) format. ] estimator=Estimator( ... rules=rules )

有关可用内置规则的完整列表,请参阅 Debugger 内置探查器规则列表

要使用分析规则并检查训练作业的计算性能和进度,请添加 SageMaker Debugger ProfilerReport 规则。此规则激活 Debugger ProfilerRule ProfilerRule 系列下的所有内置规则。此外,此规则还会生成汇总分析报告。有关更多信息,请参阅使用 SageMaker Debugger 生成的分析报告。您可以使用以下代码将分析报告规则添加到训练估算器中。

from sagemaker.debugger import Rule, rule_configs rules=[ ProfilerRule.sagemaker(rule_configs.ProfilerReport()) ]

当您使用 ProfilerReport 规则启动训练作业时,Debugger 每 500 毫秒收集一次资源利用率数据。Debugger 分析资源利用率,以确定您的模型是否存在瓶颈问题。当规则检测到训练异常时,规则评估状态将更改为 IssueFound。您可以设置自动操作,例如使用 Amazon CloudWatch Events 和 Amazon Lambda 来提供训练问题通知和停止训练作业。有关更多信息,请参阅 Amazon SageMaker Debugger 规则上的操作

使用带有自定义参数值的 Debugger 内置规则

如果您要调整内置的规则参数值并自定义张量集合正则表达式,请配置 ProfilerRule.sagemakerRule.sagemaker 类方法的 base_configrule_parameters 参数。使用 Rule.sagemaker 类方法时,您也可以通过 collections_to_save 参数自定义张量集合。有关如何使用 CollectionConfig 类的说明,请参阅使用 CollectionConfig API 配置张量集合

为内置规则使用以下配置模板来自定义参数值。通过根据需要更改规则参数,您可以调整规则触发的敏感度。

有关 Debugger 规则类、方法和参数的更多信息,请参阅 Amazon SageMaker Python SDK 中的 SageMaker Debugger 规则类

from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig rules=[ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInProfilerRuleName(), rule_parameters={ "key": "value" } ) ]

各个规则的参数描述和值自定义示例均在 Debugger 内置探查器规则列表 中提供。

有关使用 CreateTrainingJob API 的 Debugger 内置规则的低级别 JSON 配置,请参阅使用 Amazon SageMaker API 配置 Debugger