

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SageMaker Python SDK를 사용하여 Debugger로 훈련 작업 시작
<a name="debugger-configuration-for-debugging"></a>

SageMaker Debugger로 SageMaker AI 예측기를 구성하려면 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)를 사용하고 디버거별 파라미터를 지정합니다. 디버깅 기능을 완전히 활용하려면 `debugger_hook_config`, `tensorboard_output_config`, `rules` 등 세 가지 파라미터를 구성해야 합니다.

**중요**  
훈련 작업을 시작하기 위해 예측기 fit 메서드를 구성하고 실행하기 전에 [훈련 스크립트를 조정하여 후크 등록](debugger-modify-script.md)의 지침에 따라 훈련 스크립트를 수정해야 합니다.

## 디버거별 파라미터를 사용하여 SageMaker AI 예측기 구문화
<a name="debugger-configuration-structure"></a>

이 섹션의 코드 예시에서는 디버거별 파라미터를 사용하여 SageMaker AI 예측기를 구문화하는 방법을 보여줍니다.

**참고**  
다음 코드 예시는 SageMaker AI 프레임워크 예측기를 구문화하기 위한 템플릿이며 직접 실행할 수 없습니다. 다음 섹션으로 진행하여 디버거 관련 파라미터를 구성해야 합니다.

------
#### [ PyTorch ]

```
# An example of constructing a SageMaker AI PyTorch estimator
import boto3
import sagemaker
from sagemaker.pytorch import PyTorch
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

session=boto3.session.Session()
region=session.region_name

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

estimator=PyTorch(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="1.12.0",
    py_version="py37",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ TensorFlow ]

```
# An example of constructing a SageMaker AI TensorFlow estimator
import boto3
import sagemaker
from sagemaker.tensorflow import TensorFlow
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

session=boto3.session.Session()
region=session.region_name

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule()),
    ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]

estimator=TensorFlow(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="2.9.0",
    py_version="py39",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ MXNet ]

```
# An example of constructing a SageMaker AI MXNet estimator
import sagemaker
from sagemaker.mxnet import MXNet
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

estimator=MXNet(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="1.7.0",
    py_version="py37",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ XGBoost ]

```
# An example of constructing a SageMaker AI XGBoost estimator
import sagemaker
from sagemaker.xgboost.estimator import XGBoost
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

estimator=XGBoost(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="1.5-1",

    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ Generic estimator ]

```
# An example of constructing a SageMaker AI generic estimator using the XGBoost algorithm base image
import boto3
import sagemaker
from sagemaker.estimator import Estimator
from sagemaker import image_uris
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

region=boto3.Session().region_name
xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1")

estimator=Estimator(
    role=sagemaker.get_execution_role()
    image_uri=xgboost_container,
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.m5.2xlarge",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------

다음 파라미터를 구성하여 SageMaker 디버거를 활성화하세요.
+ `debugger_hook_config`([https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DebuggerHookConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DebuggerHookConfig)의 객체) - [훈련 스크립트를 조정하여 후크 등록](debugger-modify-script.md) 도중에 적응된 훈련 스크립트에서 후크를 활성화하고, 훈련 작업에서 출력 텐서를 수집하도록 SageMaker 훈련 런처(예측기)를 구성하고, 텐서를 보안 S3 버킷 또는 로컬 머신에 저장하는 데 필요합니다. `debugger_hook_config` 파라미터 구성 방법을 알아보려면 [텐서를 저장하도록 SageMaker 디버거 구성](debugger-configure-hook.md) 섹션을 참조하세요.
+ `rules`([https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.Rule](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.Rule) 개체의 목록) - 실시간으로 실행하려는 SageMaker 디버거 내장 규칙을 활성화하도록 이 파라미터를 구성합니다. 내장 규칙은 보안 S3 버킷에 저장된 출력 텐서를 분석하여 모델의 훈련 진행 상황을 자동으로 디버깅하고 훈련 문제를 찾아내는 로직입니다. `rules` 파라미터 구성 방법을 알아보려면 [Debugger 기본 제공 규칙 구성 방법](use-debugger-built-in-rules.md) 섹션을 참조하세요. 출력 텐서 디버깅을 위한 내장 규칙의 전체 목록을 찾으려면 [Debugger 규칙](debugger-built-in-rules.md#debugger-built-in-rules-Rule) 섹션을 참조하세요. 훈련 문제를 감지하는 자체 로직을 생성하려면 [Debugger 클라이언트 라이브러리를 사용하여 사용자 지정 규칙 생성](debugger-custom-rules.md) 섹션을 참조하세요.
**참고**  
내장 규칙은 SageMaker 훈련 인스턴스를 통해서만 사용할 수 있습니다. 로컬 모드에서는 사용할 수 없습니다.
+ `tensorboard_output_config`([https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.TensorBoardOutputConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.TensorBoardOutputConfig)의 객체) - Tensorboard 호환 형식의 출력 텐서를 수집하고 `TensorBoardOutputConfig` 객체에 지정된 S3 출력 경로에 저장하도록 SageMaker 디버거를 구성합니다. 자세한 내용은 [TensorBoard에서 Amazon SageMaker Debugger 출력 텐서 시각화하기](debugger-enable-tensorboard-summaries.md) 섹션을 참조하세요.
**참고**  
`debugger_hook_config` 파라미터를 사용하여 `tensorboard_output_config`를 구성해야 하며, 이를 위해서는 `sagemaker-debugger` 후크를 추가하여 훈련 스크립트를 조정해야 합니다.

**참고**  
SageMaker 디버거는 출력 텐서를 S3 버킷의 하위 폴더에 안전하게 저장합니다. 예를 들어, 기본 S3 버킷 URI의 형식이 `s3://amzn-s3-demo-bucket-sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/`입니다. SageMaker 디버거에서 생성한 두 개의 하위 폴더는 `debug-output` 및 `rule-output`입니다. `tensorboard_output_config` 파라미터를 추가하면 `tensorboard-output` 폴더도 찾을 수 있습니다.

디버거 관련 파라미터를 자세히 구성하는 방법에 대한 더 많은 예를 찾으려면 다음 항목을 참조하세요.

**Topics**
+ [디버거별 파라미터를 사용하여 SageMaker AI 예측기 구문화](#debugger-configuration-structure)
+ [텐서를 저장하도록 SageMaker 디버거 구성](debugger-configure-hook.md)
+ [Debugger 기본 제공 규칙 구성 방법](use-debugger-built-in-rules.md)
+ [디버거 끄기](debugger-turn-off.md)
+ [디버거용 유용한 SageMaker AI 예측기 클래스 메서드](debugger-estimator-classmethods.md)