

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

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

**참고**  
Amazon SageMaker Debugger는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 서비스를 정상적으로 계속 사용할 수 있습니다.는 AWS Debugger의 보안 및 가용성 개선에 계속 투자하지만 새로운 기능을 도입할 계획은 없습니다. 자세한 내용은 [디버거 가용성 변경](debugger-availability-change.md) 단원을 참조하십시오.

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 프레임워크 예측기를 구문화하기 위한 템플릿이며 직접 실행할 수 없습니다. 다음 섹션으로 진행하여 디버거 관련 파라미터를 구성해야 합니다.

```
# An example of creating a training job with debugger configuration
import boto3
from sagemaker.core import image_uris
from sagemaker.core.resources import TrainingJob
from sagemaker.core.shapes import (
    AlgorithmSpecification,
    ResourceConfig,
    OutputDataConfig,
    StoppingCondition,
    DebugHookConfig,
    CollectionConfiguration,
    DebugRuleConfiguration,
)

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

# Retrieve the training image for your framework
# Change framework to "tensorflow", "mxnet", "xgboost", etc. as needed
training_image = image_uris.retrieve(
    framework="pytorch",  # or "tensorflow", "mxnet", "xgboost"
    region=region,
    version="{{1.12.0}}",
    py_version="{{py37}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

debug_hook_config={{DebugHookConfig(...)}}
debug_rule_configurations=[
    {{DebugRuleConfiguration(
        rule_configuration_name="built_in_rule",
        rule_evaluator_image="rule-evaluator-image-uri",
    )}}
]

TrainingJob.create(
    training_job_name="{{debugger-demo}}",
    algorithm_specification=AlgorithmSpecification(
        training_image=training_image,
        training_input_mode="File",
    ),
    role_arn="{{arn:aws:iam::123456789012:role/SageMakerRole}}",
    resource_config=ResourceConfig(instance_type="{{ml.p3.2xlarge}}", instance_count={{1}}, volume_size_in_gb={{30}}),
    output_data_config=OutputDataConfig(s3_output_path="{{s3://bucket/output}}"),
    stopping_condition=StoppingCondition(max_runtime_in_seconds={{3600}}),

    # Debugger-specific parameters
    debug_hook_config=debug_hook_config,
    debug_rule_configurations=debug_rule_configurations,
)
```

다음 파라미터를 구성하여 SageMaker 디버거를 활성화하세요.
+ `debugger_hook_config`([`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`([`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`([`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)