

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

# 使用由 Amazon SageMaker Debugger 管理的内置分析器规则
<a name="use-debugger-built-in-profiler-rules"></a>

Amazon SageMaker Debugger 内置的分析器规则可以分析模型训练期间收集的系统指标和框架操作。Debugger 提供 `ProfilerRule` API 操作，有助于配置规则来监控训练计算资源和操作以及检测异常。例如，性能分析规则可以帮助您检测是否存在计算问题，例如 CPU 瓶颈、 I/O 等待时间过长、GPU 工作负载不平衡以及计算资源利用率不足。要查看可用的内置分析规则的完整列表，请参阅 [Debugger 内置探查器规则列表](debugger-built-in-profiler-rules.md)。以下主题介绍了如何使用 Debugger 内置规则的默认参数设置和自定义参数值。

**注意**  
内置规则通过 Amazon SageMaker 处理容器提供，完全由 SageMaker Debugger 管理，无需支付额外费用。有关账单的更多信息，请参阅 [Amazon SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/)页面。

**Topics**
+ [

## 使用带有默认参数设置的 SageMaker Debugger 内置探查器规则
](#debugger-built-in-profiler-rules-configuration)
+ [

## 使用带有自定义参数值的 Debugger 内置规则
](#debugger-built-in-profiler-rules-configuration-param-change)

## 使用带有默认参数设置的 SageMaker Debugger 内置探查器规则
<a name="debugger-built-in-profiler-rules-configuration"></a>

要在估算器中添加 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 内置探查器规则列表](debugger-built-in-profiler-rules.md)。

要使用性能分析规则并检查训练作业的计算性能和进度，请添加 SageMaker Debugg [https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#profiler-report](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#profiler-report)er 规则。此规则激活 D [ebugger ProfilerRule](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#debugger-built-in-profiler-rules-ProfilerRule) `ProfilerRule` 系列下的所有内置规则。此外，此规则还会生成汇总分析报告。有关更多信息，请参阅[使用 SageMaker 调试器生成的分析报告](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html)。您可以使用以下代码将分析报告规则添加到训练估算器中。

```
from sagemaker.debugger import Rule, rule_configs

rules=[
    ProfilerRule.sagemaker(rule_configs.ProfilerReport())
]
```

当您使用 `ProfilerReport` 规则启动训练作业时，Debugger 每 500 毫秒收集一次资源利用率数据。Debugger 分析资源利用率，以确定您的模型是否存在瓶颈问题。当规则检测到训练异常时，规则评估状态将更改为 `IssueFound`。您可以设置自动操作，例如使用 Amazon Ev CloudWatch ents 和，通知培训问题和停止训练作业。 AWS Lambda有关更多信息，请参阅 [Amazon 上的操作 SageMaker 调试器规则](debugger-action-on-rules.md)。

## 使用带有自定义参数值的 Debugger 内置规则
<a name="debugger-built-in-profiler-rules-configuration-param-change"></a>

如果您要调整内置的规则参数值并自定义张量集合正则表达式，请配置 `ProfilerRule.sagemaker` 和 `Rule.sagemaker` 类方法的 `base_config` 和 `rule_parameters` 参数。使用 `Rule.sagemaker` 类方法时，您也可以通过 `collections_to_save` 参数自定义张量集合。有关如何使用 `CollectionConfig` 类的说明，请参阅[使用 `CollectionConfig` API 配置张量集合](debugger-configure-tensor-collections.md)。

为内置规则使用以下配置模板来自定义参数值。通过根据需要更改规则参数，您可以调整规则触发的敏感度。
+ 您在 `base_config` 参数中调用内置规则方法。
+ `rule_parameters` 参数用于调整 [Debugger 内置探查器规则列表](debugger-built-in-profiler-rules.md) 中列出的内置规则的默认键值。

有关调试器规则类、方法和参数的更多信息，请参阅 [SageMaker Amaz [on Pyth SageMaker on](https://sagemaker.readthedocs.io/en/stable) SDK 中的 AI 调试器规则类](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html)。

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig

rules=[
    ProfilerRule.sagemaker(
        base_config=rule_configs.BuiltInProfilerRuleName(),
        rule_parameters={
                "key": "value"
        }
    )
]
```

各个规则的参数描述和值自定义示例均在 [Debugger 内置探查器规则列表](debugger-built-in-profiler-rules.md) 中提供。

有关使用 `CreateTrainingJob` API 的 Debugger 内置规则的低级别 JSON 配置，请参阅[使用 SageMaker API 配置调试器](debugger-createtrainingjob-api.md)。