配置由 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.sagemaker
和 Rule.sagemaker
类方法的 base_config
和 rule_parameters
参数。使用 Rule.sagemaker
类方法时,您也可以通过 collections_to_save
参数自定义张量集合。有关如何使用 CollectionConfig
类的说明,请参阅使用 CollectionConfig API 配置张量集合。
为内置规则使用以下配置模板来自定义参数值。通过根据需要更改规则参数,您可以调整规则触发的敏感度。
-
您在
base_config
参数中调用内置规则方法。 -
rule_parameters
参数用于调整 Debugger 内置探查器规则列表 中列出的内置规则的默认键值。
有关 Debugger 规则类、方法和参数的更多信息,请参阅 Amazon SageMaker Python SDK
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。