파이프라인 단계에 대한 재시도 정책 - 아마존 SageMaker

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

파이프라인 단계에 대한 재시도 정책

재시도 정책을 사용하면 오류가 발생한 후 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 작업에 Amazon InsufficientCapacityErrors 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 모델 구축 파이프라인 - 재시도 정책을 참조하십시오.