

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

# 재시도 정책 구성
<a name="pipelines-configuring-retry-policy"></a>

SageMaker Pipelines은 기계 학습 워크플로를 오케스트레이션하는 강력하고 자동화된 방법을 제공하지만 실행 시 오류가 발생할 수 있습니다. 이러한 시나리오를 원활하게 처리하고 파이프라인의 신뢰성을 높이려면 예외가 발생한 후 특정 단계를 자동으로 재시도하는 방법과 시기를 정의하는 재시도 정책을 구성할 수 있습니다. 재시도 정책을 사용하면 재시도할 예외 유형, 최대 재시도 횟수, 재시도 간격 및 재시도 간격을 늘리기 위한 백오프 속도를 지정할 수 있습니다. 다음 섹션에서는 JSON 및 SageMaker Python SDK를 사용하여 파이프라인의 훈련 단계에 대한 재시도 정책을 구성하는 방법의 예를 제공합니다.

다음은 재시도 정책이 포함된 훈련 단계의 예제입니다.

```
{
    "Steps": [
        {
            "Name": "{{MyTrainingStep}}",
            "Type": "Training",
            "RetryPolicies": [
                {
                    "ExceptionType": [
                        "{{SageMaker.JOB_INTERNAL_ERROR}}",
                        "{{SageMaker.CAPACITY_ERROR}}"
                    ],
                    "IntervalSeconds": {{1}},
                    "BackoffRate": {{2}},
                    "MaxAttempts": {{5}}
                }
            ]
        }
    ]
}
```



다음은 재시도 정책을 사용하여 Python용 SDK (Boto3)에서 `TrainingStep`을 빌드하는 방법의 예제입니다.

```
from sagemaker.workflow.retry import (
    StepRetryPolicy, 
    StepExceptionTypeEnum,
    SageMakerJobExceptionTypeEnum,
    SageMakerJobStepRetryPolicy
)

step_train = TrainingStep(
    name="{{MyTrainingStep}}",
    xxx,
    retry_policies=[
        // override the default 
        StepRetryPolicy(
            exception_types=[
                {{StepExceptionTypeEnum.SERVICE_FAULT}}, 
                {{StepExceptionTypeEnum.THROTTLING}}
            ],
            expire_after_mins={{5}},
            interval_seconds={{10}},
            backoff_rate={{2.0}} 
        ),
        // retry when resource limit quota gets exceeded
        SageMakerJobStepRetryPolicy(
            exception_types=[{{SageMakerJobExceptionTypeEnum.RESOURCE_LIMIT}}],
            expire_after_mins={{120}},
            interval_seconds={{60}},
            backoff_rate={{2.0}}
        ),
        // retry when job failed due to transient error or EC2 ICE.
        SageMakerJobStepRetryPolicy(
            failure_reason_types=[
                {{SageMakerJobExceptionTypeEnum.INTERNAL_ERROR}},
                {{SageMakerJobExceptionTypeEnum.CAPACITY_ERROR}},
            ],
            max_attempts={{10}},
            interval_seconds={{30}},
            backoff_rate={{2.0}}
        )
    ]
)
```

특정 단계 유형에 대한 재시도 동작을 구성하는 방법에 대한 자세한 내용은 Amazon SageMaker Python SDK 설명서에서 *[Amazon SageMaker Pipelines - Retry Policy](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#retry-policy)*을 참조하세요.