

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Policy di ripetizione per la fasi della pipeline
<a name="pipelines-retry-policy"></a>

Le policy di ripetizione ti aiutano a riprovare automaticamente le fasi di Pipelines dopo che si è verificato un errore. Qualsiasi fase della pipeline può presentare eccezioni, che si verificano per vari motivi. In alcuni casi, un nuovo tentativo può risolvere questi problemi. Con una policy di ripetizione per le fasi della pipeline, è possibile scegliere se riprovare o meno una particolare fase della pipeline.

La policy di ripetizione supporta solo le seguenti fasi della pipeline:
+ [Fase di elaborazione](build-and-manage-steps-types.md#step-type-processing) 
+ [Fase di addestramento](build-and-manage-steps-types.md#step-type-training) 
+ [Fase di ottimizzazione](build-and-manage-steps-types.md#step-type-tuning) 
+ [Fase AutoML](build-and-manage-steps-types.md#step-type-automl) 
+ [Fase Creazione di un modello](build-and-manage-steps-types.md#step-type-create-model) 
+ [Fase Registrazione di un modello](build-and-manage-steps-types.md#step-type-register-model) 
+ [Fase di trasformazione](build-and-manage-steps-types.md#step-type-transform) 
+ [Fase Processo del notebook](build-and-manage-steps-types.md#step-type-notebook-job) 

**Nota**  
I processi eseguiti all'interno delle fasi di ottimizzazione e AutoML eseguono nuovi tentativi internamente e non riproveranno il tipo di eccezione `SageMaker.JOB_INTERNAL_ERROR`, anche se è configurata una policy di ripetizione. Puoi programmare la tua [strategia Retry utilizzando l'API](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RetryStrategy.html). SageMaker 

## Tipi di eccezioni supportati per la policy di ripetizione
<a name="pipelines-retry-policy-supported-exceptions"></a>

La policy di ripetizione per le fasi della pipeline supporta i seguenti tipi di eccezione:
+ `Step.SERVICE_FAULT`: queste eccezioni si verificano quando si verifica un errore interno del server o un errore temporaneo durante la chiamata di servizi downstream. Pipelines riprova automaticamente dopo questo tipo di errore. Con una policy di ripetizione, è possibile ignorare l'operazione di nuovo tentativo predefinita per questo tipo di eccezione.
+ `Step.THROTTLING`: durante la chiamata ai servizi downstream possono verificarsi eccezioni di throttling. Pipelines riprova automaticamente dopo questo tipo di errore. Con una policy di ripetizione, è possibile ignorare l'operazione di nuovo tentativo predefinita per questo tipo di eccezione.
+ `SageMaker.JOB_INTERNAL_ERROR`: Queste eccezioni si verificano quando il job SageMaker AI ritorna. `InternalServerError` In questo caso, l'avvio di un nuovo processo può risolvere un problema temporaneo.
+ `SageMaker.CAPACITY_ERROR`: Il job di SageMaker intelligenza artificiale può incontrare Amazon EC2`InsufficientCapacityErrors`, il che porta al fallimento del processo di SageMaker intelligenza artificiale. Puoi riprovare avviando un nuovo processo di SageMaker intelligenza artificiale per evitare il problema. 
+ `SageMaker.RESOURCE_LIMIT`: È possibile superare la quota limite di risorse durante l'esecuzione di un job SageMaker AI. Puoi aspettare e riprovare a eseguire il job SageMaker AI dopo un breve periodo e vedere se le risorse vengono rilasciate.

## Lo schema JSON per la policy di ripetizione
<a name="pipelines-retry-policy-json-schema"></a>

La policy di ripetizione per Pipeline include lo schema JSON seguente:

```
"RetryPolicy": {
   "ExceptionType": [String]
   "IntervalSeconds": Integer
   "BackoffRate": Double
   "MaxAttempts": Integer
   "ExpireAfterMin": Integer
}
```
+ `ExceptionType`: questo campo richiede i seguenti tipi di eccezione in un formato di matrice di stringhe.
  + `Step.SERVICE_FAULT`
  + `Step.THROTTLING`
  + `SageMaker.JOB_INTERNAL_ERROR`
  + `SageMaker.CAPACITY_ERROR`
  + `SageMaker.RESOURCE_LIMIT`
+ `IntervalSeconds` (opzionale): il numero di secondi prima del primo nuovo tentativo (1 per impostazione predefinita). `IntervalSeconds` ha un valore massimo di 43200 secondi (12 ore).
+ `BackoffRate` (opzionale): il moltiplicatore di cui l'intervallo aumenta a ogni tentativo (2,0 per impostazione predefinita).
+ `MaxAttempts` (opzionale): un numero intero positivo che rappresenta il numero massimo di tentativi (5 per impostazione predefinita). Se l'errore si ripete più volte di quanto specificato in `MaxAttempts`, i tentativi cessano e viene ripristinata la gestione normale degli errori. Il valore 0 indica che dopo gli errori non si effettua mai un nuovo tentativo. `MaxAttempts` ha un valore massimo di 20.
+ `ExpireAfterMin` (opzionale): un numero intero positivo che rappresenta l'intervallo massimo per il nuovo tentativo. Se l'errore si ripresenta dopo `ExpireAfterMin` minuti dall'esecuzione della fase, i nuovi tentativi cessano e riprende la normale gestione degli errori. Il valore 0 indica che dopo gli errori non si effettua mai un nuovo tentativo. `ExpireAfterMin ` ha un valore massimo di 14.400 minuti (10 giorni).
**Nota**  
È possibile fornire solo uno tra `MaxAttempts` e `ExpireAfterMin`, ma non entrambi; se entrambi *non* sono specificati, `MaxAttempts` diventa l'impostazione predefinita. Se entrambe le proprietà sono identificate all'interno di una policy, la policy di ripetizione genera un errore di convalida.

# Configurazione di una policy di ripetizione
<a name="pipelines-configuring-retry-policy"></a>

Sebbene SageMaker Pipelines offra un modo affidabile e automatizzato per orchestrare i flussi di lavoro di machine learning, potresti riscontrare errori durante la loro esecuzione. Per gestire al meglio questi scenari e migliorare l’affidabilità delle pipeline, puoi configurare policy di ripetizione che definiscono come e quando ripetere automaticamente determinate fasi in seguito a un’eccezione. La policy di ripetizione consente di specificare i tipi di eccezioni per i tentativi, il numero massimo di tentativi, l’intervallo tra i tentativi e la frequenza di backoff per allungare gli intervalli tra i tentativi. La sezione seguente fornisce esempi di come configurare una politica di riprova per una fase di formazione nella pipeline, sia in JSON che utilizzando Python SageMaker SDK.

L'esempio seguente mostra una fase di addestramento con una policy di ripetizione.

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



Di seguito è riportato un esempio di come creare una `TrainingStep` in SDK per Python (Boto3) con una policy di ripetizione.

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

Per ulteriori informazioni sulla configurazione del comportamento dei tentativi per determinati tipi di passaggi, consulta *[Amazon SageMaker Pipelines - Retry Policy nella](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#retry-policy)* documentazione di Amazon Python SageMaker SDK.