

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
<a name="pipelines-retry-policy"></a>

As políticas de repetição ajudam você a repetir automaticamente as etapas do 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 é compatível com somente as seguintes etapas do pipeline:
+ [Processamento de etapas](build-and-manage-steps-types.md#step-type-processing) 
+ [Etapa de treinamento](build-and-manage-steps-types.md#step-type-training) 
+ [Etapa de ajuste](build-and-manage-steps-types.md#step-type-tuning) 
+ [Etapa do AutoML](build-and-manage-steps-types.md#step-type-automl) 
+ [Criar etapa de modelo](build-and-manage-steps-types.md#step-type-create-model) 
+ [Etapa de registrar modelo](build-and-manage-steps-types.md#step-type-register-model) 
+ [Etapa de transformação](build-and-manage-steps-types.md#step-type-transform) 
+ [Etapa de trabalho de caderno](build-and-manage-steps-types.md#step-type-notebook-job) 

**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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RetryStrategy.html) usando a SageMaker API.

## Tipos de exceção compatíveis com a política de nova tentativa
<a name="pipelines-retry-policy-supported-exceptions"></a>

A política de nova tentativa para etapas do pipeline oferece apoio 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. O Pipelines faz uma nova tentativa automaticamente nesse tipo de erro. 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. O Pipelines faz uma nova tentativa automaticamente nesse tipo de erro. 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 trabalho de SageMaker IA retorna`InternalServerError`. Nesse caso, iniciar um novo trabalho pode corrigir um problema transitório.
+ `SageMaker.CAPACITY_ERROR`: O trabalho de SageMaker IA pode encontrar o Amazon EC2`InsufficientCapacityErrors`, o que leva ao fracasso do trabalho de SageMaker IA. Você pode tentar novamente iniciando um novo trabalho de SageMaker IA para evitar o problema. 
+ `SageMaker.RESOURCE_LIMIT`: você pode exceder a cota limite de recursos ao executar um trabalho de SageMaker IA. Você pode esperar e tentar executar novamente o trabalho de SageMaker IA após um curto período e ver se os recursos foram liberados.

## O esquema JSON para a política de nova tentativa
<a name="pipelines-retry-policy-json-schema"></a>

A política de nova tentativa para o 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
<a name="pipelines-configuring-retry-policy"></a>

Embora os SageMaker Pipelines forneçam uma maneira robusta e automatizada de orquestrar fluxos de trabalho de aprendizado de máquina, você pode encontrar falhas ao executá-los. Para lidar com esses cenários de forma tranquila e melhorar a confiabilidade de seus pipelines, você pode configurar políticas de repetição que definam como e quando repetir automaticamente etapas específicas após encontrar uma exceção. A política de repetição permite que você especifique os tipos de exceções a serem repetidas, o número máximo de tentativas, o intervalo entre as tentativas e a taxa de espera para aumentar os intervalos de repetição. A seção a seguir fornece exemplos de como configurar uma política de repetição para uma etapa de treinamento em seu pipeline, tanto em JSON quanto usando o SDK do Python SageMaker .

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 Pipelines - Retry Policy na](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#retry-policy)* documentação do Amazon Python SageMaker SDK.