기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
파이프라인 단계에 대한 재시도 정책
재시도 정책을 사용하면 오류가 발생한 후 SageMaker 파이프라인 단계를 자동으로 재시도할 수 있습니다. 모든 파이프라인 단계에서 예외가 발생할 수 있으며 다양한 이유로 예외가 발생합니다. 경우에 따라 재시도를 통해 이러한 문제를 해결할 수 있습니다. 파이프라인 단계에 대한 재시도 정책을 사용하여 특정 파이프라인 단계를 재시도할지 여부를 선택할 수 있습니다.
재시도 정책은 다음 파이프라인 단계만 지원합니다.
참고
조정 단계와 AutoML 단계 모두에서 실행 중인 작업은 내부적으로 재시도를 수행하며 재시도 정책이 구성되어 있더라도 SageMaker.JOB_INTERNAL_ERROR
예외 유형을 재시도하지 않습니다. API를 사용하여 자체 재시도 전략을 프로그래밍할 수 있습니다. SageMaker
재시도 정책에 지원되는 예외 유형
파이프라인 단계에 대한 재시도 정책은 다음과 같은 예외 유형을 지원합니다.
-
Step.SERVICE_FAULT
: 이러한 예외는 다운스트림 서비스를 호출할 때 내부 서버 오류나 일시적 오류가 발생할 때 발생합니다. SageMaker 파이프라인은 이 유형의 오류를 자동으로 재시도합니다. 재시도 정책을 사용하면 이 예외 유형에 대한 기본 재시도 작업을 재정의할 수 있습니다. -
Step.THROTTLING
: 다운스트림 서비스를 호출하는 동안 스로틀링 예외가 발생할 수 있습니다. SageMaker 파이프라인은 이 유형의 오류가 발생하면 자동으로 재시도합니다. 재시도 정책을 사용하면 이 예외 유형에 대한 기본 재시도 작업을 재정의할 수 있습니다. -
SageMaker.JOB_INTERNAL_ERROR
: 이러한 예외는 SageMaker 작업이 반환될 때 발생합니다.InternalServerError
이 경우 새 작업을 시작하면 일시적인 문제가 해결될 수 있습니다. -
SageMaker.CAPACITY_ERROR
: SageMaker 작업에 AmazonInsufficientCapacityErrors
EC2가 발생하여 SageMaker 작업이 실패할 수 있습니다. 문제를 방지하려면 새 SageMaker 작업을 시작하여 다시 시도할 수 있습니다. -
SageMaker.RESOURCE_LIMIT
: 작업을 실행할 때 리소스 제한 할당량을 초과할 수 있습니다. SageMaker 잠시 기다린 후 SageMaker 작업을 다시 실행하여 리소스가 릴리스되었는지 확인할 수 있습니다.
재시도 정책의 JSON 스키마
파이프라인의 재시도 정책에는 다음과 같은 JSON 스키마가 있습니다.
"RetryPolicy": { "ExceptionType": [String] "IntervalSeconds": Integer "BackoffRate": Double "MaxAttempts": Integer "ExpireAfterMin": Integer }
-
ExceptionType
: 이 필드에는 문자열 배열 형식의 다음과 같은 예외 유형이 필요합니다.-
Step.SERVICE_FAULT
-
Step.THROTTLING
-
SageMaker.JOB_INTERNAL_ERROR
-
SageMaker.CAPACITY_ERROR
-
SageMaker.RESOURCE_LIMIT
-
-
IntervalSeconds
(선택 사항): 첫 번째 재시도 이전의 시간(초)(기본값: 1).IntervalSeconds
의 최댓값은 43200초(12시간)입니다. -
BackoffRate
(선택 사항): 각 시도때마다 재시도 간격이 늘어나도록 정한 곱하기 배수입니다(기본값 2.0). -
MaxAttempts
(선택 사항): 최대 재시도 횟수를 나타내는 양의 정수입니다(기본값 5). 지정된 횟수MaxAttempts
보다 많이 오류가 발생하는 경우 재시도가 중지되고 일반 오류 처리가 다시 시작됩니다. 값이 0이면 오류가 다시 시도되지 않습니다.MaxAttempts
의 최대값은 20입니다. -
ExpireAfterMin
(선택 사항): 최대 재시도 시간을 나타내는 양의 정수입니다. 단계부터ExpireAfterMin
분 단위 계산을 실행한 후 오류가 다시 발생하면 재시도가 중단되고 일반 오류 처리가 다시 시작됩니다. 값이 0이면 오류가 다시 시도되지 않습니다.ExpireAfterMin
의 최대값은 14,400분 (10일)입니다.참고
MaxAttempts
또는ExpireAfterMin
둘 중 하나만 지정할 수 있으며 둘 다 지정할 수는 없습니다. 둘 다 지정하지 않으면 기본값은MaxAttempts
입니다. 한 정책 내에서 두 속성이 모두 식별되는 경우 재시도 정책에서 검증 오류가 발생합니다.
재시도 정책 구성
다음은 재시도 정책이 포함된 훈련 단계의 예제입니다.
{ "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 모델 구축 파이프라인 - 재시도 정책을