Política de repetição para etapas do pipeline - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Política de repetição para etapas do pipeline

As políticas de repetição ajudam você a repetir automaticamente as etapas do SageMaker Pipelines após a ocorrência de um erro. Qualquer etapa do pipeline pode encontrar exceções, e as exceções acontecem por vários motivos. Em certos casos, uma nova tentativa pode resolver esses problemas. Com uma política de nova tentativa para etapas do pipeline, você pode escolher se quer repetir uma etapa específica do pipeline ou não.

A política de nova tentativa suporta somente as seguintes etapas do pipeline:

nota

Os trabalhos executados nas etapas de ajuste e AutoML conduzem novas tentativas internamente e não repetirão o tipo de exceção SageMaker.JOB_INTERNAL_ERROR, mesmo que uma política de nova tentativa esteja configurada. Você pode programar sua própria estratégia de repetição usando a SageMaker API.

Tipos de exceção compatíveis com a política de nova tentativa

A política de nova tentativa para etapas do pipeline oferece suporte aos seguintes tipos de exceção:

  • Step.SERVICE_FAULT: essas exceções ocorrem quando ocorre um erro interno do servidor ou um erro transitório ao chamar serviços downstream. SageMaker O Pipelines repete esse tipo de erro automaticamente. Com uma política de nova tentativa, você pode substituir a operação de repetição padrão para esse tipo de exceção.

  • Step.THROTTLING: exceções de limitação podem ocorrer ao chamar os serviços downstream. SageMaker O Pipelines repete esse tipo de erro automaticamente. Com uma política de nova tentativa, você pode substituir a operação de repetição padrão para esse tipo de exceção.

  • SageMaker.JOB_INTERNAL_ERROR: essas exceções ocorrem quando o SageMaker trabalho retornaInternalServerError. Nesse caso, iniciar um novo trabalho pode corrigir um problema transitório.

  • SageMaker.CAPACITY_ERROR: O SageMaker trabalho pode encontrar o Amazon EC2InsufficientCapacityErrors, o que leva à falha do SageMaker trabalho. Você pode tentar novamente iniciando um novo SageMaker trabalho para evitar o problema.

  • SageMaker.RESOURCE_LIMIT: você pode exceder a cota limite de recursos ao executar um SageMaker trabalho. Você pode esperar e tentar executar o SageMaker trabalho novamente após um curto período e ver se os recursos foram liberados.

O esquema JSON para a política de nova tentativa

A política de nova tentativa para Pipelines tem o seguinte esquema JSON:

"RetryPolicy": { "ExceptionType": [String] "IntervalSeconds": Integer "BackoffRate": Double "MaxAttempts": Integer "ExpireAfterMin": Integer }
  • ExceptionType: esse campo exige os seguintes tipos de exceção em um formato de matriz de sequências de caracteres.

    • Step.SERVICE_FAULT

    • Step.THROTTLING

    • SageMaker.JOB_INTERNAL_ERROR

    • SageMaker.CAPACITY_ERROR

    • SageMaker.RESOURCE_LIMIT

  • IntervalSeconds (opcional): o número de segundos antes da primeira tentativa (1 por padrão). IntervalSeconds tem um valor máximo de 43.200 segundos (12 horas).

  • BackoffRate (opcional): o multiplicador pelo qual o intervalo de novas tentativas aumenta durante cada tentativa (por padrão, 2,0).

  • MaxAttempts (opcional): um inteiro positivo que representa o número máximo de tentativas novas (por padrão, 5). Se o erro voltar a ocorrer mais vezes do que MaxAttempts, as novas tentativas são interrompidas e o tratamento de erro normal é retomado. Um valor de 0 especifica que os erros nunca são repetidos. MaxAttempts tem um valor máximo de 20.

  • ExpireAfterMin (opcional): um número inteiro positivo que representa o período máximo de repetição. Se o erro persistir após a execução da contagem de ExpireAfterMin minutos a partir da etapa, as novas tentativas serão interrompidas e o tratamento normal de erros será retomado. Um valor de 0 especifica que os erros nunca são repetidos. ExpireAfterMin tem um valor máximo de 14.400 minutos (10 dias).

    nota

    Somente um dos MaxAttempts ou ExpireAfterMin pode ser fornecido, mas não ambos; se ambos não forem especificados, MaxAttempts se tornará o padrão. Se ambas as propriedades forem identificadas em uma política, a política de nova tentativa gerará um erro de validação.

Configuração uma política de nova tentativa

Veja a seguir um exemplo de uma etapa de treinamento com uma política de nova tentativa.

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

Veja a seguir um exemplo de como criar um SDK TrainingStep in para Python (Boto3) com uma política de nova tentativa.

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 obter mais informações sobre como configurar o comportamento de repetição para determinados tipos de etapas, consulte Amazon SageMaker Model Building Pipelines - Retry Policy na documentação do Amazon Python SageMaker SDK.