Política de reintentos para los pasos de la canalización - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Política de reintentos para los pasos de la canalización

Las políticas de reintento te ayudan a reintentar automáticamente los pasos de SageMaker Pipelines cuando se produce un error. Cualquier paso de la canalización puede tener excepciones, y las excepciones se producen por varios motivos. En algunos casos, un nuevo intento puede resolver estos problemas. Con una política de reintentos para los pasos de canalización, puede elegir si quiere volver a intentar o no un paso concreto de la canalización.

La política de reintentos solo admite los siguientes pasos de canalización:

nota

Los trabajos que se ejecutan dentro de los pasos de ajuste y AutoML realizan reintentos internos y no reintentarán el tipo de excepción SageMaker.JOB_INTERNAL_ERROR, incluso si se ha configurado una política de reintentos. Puedes programar tu propia estrategia de reintentos mediante. SageMaker API

Tipos de excepciones compatibles con la política de reintentos

La política de reintentos para los pasos de la canalización admite los siguientes tipos de excepciones:

  • Step.SERVICE_FAULT: Estas excepciones se producen cuando se produce un error interno del servidor o un error transitorio al llamar a servicios descendentes. SageMaker Pipelines vuelve a intentarlo automáticamente cuando se produce este tipo de error. Con una política de reintentos, puede anular la operación de reintento predeterminada para este tipo de excepción.

  • Step.THROTTLING: Se pueden producir excepciones de limitación al llamar a los servicios descendentes. SageMaker Pipelines vuelve a intentarlo automáticamente cuando se produce este tipo de error. Con una política de reintentos, puede anular la operación de reintento predeterminada para este tipo de excepción.

  • SageMaker.JOB_INTERNAL_ERROR: Estas excepciones se producen cuando se devuelve el SageMaker trabajo. InternalServerError En este caso, iniciar un nuevo trabajo puede solucionar un problema transitorio.

  • SageMaker.CAPACITY_ERROR: El SageMaker trabajo puede encontrarse con Amazon EC2InsufficientCapacityErrors, lo que lleva al fracaso del SageMaker trabajo. Puedes volver a intentarlo iniciando un nuevo SageMaker trabajo para evitar el problema.

  • SageMaker.RESOURCE_LIMIT: Puede superar la cuota límite de recursos al ejecutar un SageMaker trabajo. Puede esperar y volver a intentar ejecutar el SageMaker trabajo después de un breve período de tiempo para comprobar si se liberan los recursos.

El JSON esquema de la política de reintentos

La política de reintentos de Pipelines tiene el siguiente esquema: JSON

"RetryPolicy": { "ExceptionType": [String] "IntervalSeconds": Integer "BackoffRate": Double "MaxAttempts": Integer "ExpireAfterMin": Integer }
  • ExceptionType: este campo requiere los siguientes tipos de excepciones en un formato de matriz de cadenas.

    • Step.SERVICE_FAULT

    • Step.THROTTLING

    • SageMaker.JOB_INTERNAL_ERROR

    • SageMaker.CAPACITY_ERROR

    • SageMaker.RESOURCE_LIMIT

  • IntervalSeconds (opcional): el número de segundos antes del primer intento de reintento (1 de forma predeterminada). IntervalSeconds tiene un valor máximo de 43 200 segundos (12 horas).

  • BackoffRate (opcional): el multiplicador según el cual aumenta el intervalo de reintentos durante cada intento (el valor predeterminado es 2,0).

  • MaxAttempts (opcional): un entero positivo que representa el número máximo de reintentos (el valor predeterminado es 5). Si el error se repite más veces de las especificadas en MaxAttempts, se interrumpen los reintentos y se reanuda el control normal de errores. Un valor de 0 especifica que los errores no se reintentarán nunca. MaxAttempts tiene un valor máximo de 20.

  • ExpireAfterMin (opcional): un entero positivo que representa el período máximo de reintentos. Si el error se repite una vez transcurridos los minutos de ExpireAfterMin desde la ejecución del paso, los reintentos cesan y se reanuda el control normal de errores. Un valor de 0 especifica que los errores no se reintentarán nunca. ExpireAfterMin tiene un valor máximo de 14 400 minutos (10 días).

    nota

    Solo se puede especificar MaxAttempts o ExpireAfterMin, pero no ambos; si no se especifica ninguno, MaxAttempts se convierte en la opción predeterminada. Si ambas propiedades se identifican dentro de una política, la política de reintentos genera un error de validación.

Configuración de una política de reintentos

A continuación se muestra un ejemplo de un paso de entrenamiento con una política de reintentos.

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

El siguiente es un ejemplo de cómo crear una TrainingStep entrada SDK para Python (Boto3) con una política de reintentos.

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 ) ] )

Para obtener más información sobre cómo configurar el comportamiento de reintento para determinados tipos de pasos, consulte Amazon SageMaker Model Building Pipelines: Política de reintentos en la documentación de Amazon Python SageMaker . SDK