Policy di ripetizione per la fasi della pipeline - Amazon SageMaker

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

Le politiche di riprova consentono di riprovare automaticamente i passaggi di SageMaker 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:

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. SageMaker

Tipi di eccezioni supportati per la policy di ripetizione

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 transitorio durante la chiamata dei servizi downstream. SageMaker Pipelines riprova automaticamente 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 limitazione. SageMaker Pipelines riprova automaticamente 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 SageMaker job ritorna. InternalServerError In questo caso, l'avvio di un nuovo processo può risolvere un problema temporaneo.

  • SageMaker.CAPACITY_ERROR: Il SageMaker processo potrebbe incontrare Amazon EC2InsufficientCapacityErrors, il che porta al fallimento del SageMaker processo. Puoi riprovare iniziando un nuovo SageMaker lavoro per evitare il problema.

  • SageMaker.RESOURCE_LIMIT: È possibile superare la quota limite di risorse durante l'esecuzione di un SageMaker processo. È possibile attendere e riprovare a eseguire il SageMaker processo dopo un breve periodo e verificare se le risorse vengono rilasciate.

Lo schema JSON per la policy di ripetizione

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

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 Model Building Pipelines - Retry Policy nella documentazione di Amazon Python SageMaker SDK.