Politique de nouvelle tentative pour les étapes du pipeline - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Politique de nouvelle tentative pour les étapes du pipeline

Les politiques de nouvelle tentative vous permettent de réessayer automatiquement les étapes de votre SageMaker pipeline en cas d'erreur. N'importe quelle étape du pipeline peut rencontrer des exceptions, qui se produisent pour diverses raisons. Dans certains cas, une nouvelle tentative peut résoudre ces problèmes. Avec une politique de nouvelle tentative pour les étapes du pipeline, vous pouvez choisir de relancer ou non une étape de pipeline particulière.

La politique de nouvelle tentative prend uniquement en charge les étapes suivantes du pipeline :

Note

Les tâches qui s'exécutent à la fois dans les étapes de réglage et AutoML effectuent de nouvelles tentatives en interne et n'effectuent pas de nouvelle tentative pour le type d'exception SageMaker.JOB_INTERNAL_ERROR, même si une politique de nouvelle tentative est configurée. Vous pouvez programmer votre propre stratégie de réessai à l'aide de l' SageMaker API.

Types d'exceptions pris en charge pour la politique de nouvelle tentative

La politique de nouvelle tentative pour les étapes du pipeline prend en charge les types d'exception suivants :

  • Step.SERVICE_FAULT: Ces exceptions se produisent lorsqu'une erreur interne du serveur ou une erreur transitoire se produit lors de l'appel de services en aval. SageMaker Pipelines réessaie automatiquement ce type d'erreur. Avec une politique de nouvelle tentative, vous pouvez remplacer l'opération de nouvelle tentative par défaut pour ce type d'exception.

  • Step.THROTTLING: des exceptions de limitation peuvent survenir lors de l'appel des services en aval. SageMaker Pipelines réessaie automatiquement ce type d'erreur. Avec une politique de nouvelle tentative, vous pouvez remplacer l'opération de nouvelle tentative par défaut pour ce type d'exception.

  • SageMaker.JOB_INTERNAL_ERROR: Ces exceptions se produisent lorsque le SageMaker travail revientInternalServerError. Dans ce cas, le démarrage d'une nouvelle tâche peut résoudre un problème temporaire.

  • SageMaker.CAPACITY_ERROR: La SageMaker tâche peut rencontrer Amazon EC2InsufficientCapacityErrors, ce qui entraîne SageMaker son échec. Vous pouvez réessayer en démarrant une nouvelle SageMaker tâche pour éviter le problème.

  • SageMaker.RESOURCE_LIMIT: vous pouvez dépasser le quota limite de ressources lors de l'exécution d'une SageMaker tâche. Vous pouvez attendre et réessayer d'exécuter la SageMaker tâche après une courte période pour voir si des ressources sont disponibles.

Schéma JSON de la politique de nouvelle tentative

La politique de nouvelle tentative pour Pipelines a le schéma JSON suivant :

"RetryPolicy": { "ExceptionType": [String] "IntervalSeconds": Integer "BackoffRate": Double "MaxAttempts": Integer "ExpireAfterMin": Integer }
  • ExceptionType : ce champ nécessite les types d'exception suivants au format de chaîne simple.

    • Step.SERVICE_FAULT

    • Step.THROTTLING

    • SageMaker.JOB_INTERNAL_ERROR

    • SageMaker.CAPACITY_ERROR

    • SageMaker.RESOURCE_LIMIT

  • IntervalSeconds (facultatif) : nombre de secondes avant la première nouvelle tentative (1 par défaut). IntervalSeconds a une valeur maximale de 43 200 secondes (12 heures).

  • BackoffRate (facultatif) : multiplicateur par lequel l'intervalle de nouvelle tentative augmente à chaque tentative (2,0 par défaut).

  • MaxAttempts : nombre entier positif qui représente le nombre maximum de nouvelles tentatives (5 par défaut). Si l'erreur se produit un nombre de fois supérieur à la valeur spécifiée par MaxAttempts, les nouvelles tentatives cessent et la gestion normale des erreurs reprend. La valeur 0 spécifie que les erreurs n'ont jamais fait l'objet d'une nouvelle tentative. MaxAttempts a une valeur maximale de 20.

  • ExpireAfterMin (facultatif) : nombre entier positif qui représente la durée maximale d'une nouvelle tentative. Si l'erreur se répète après ExpireAfterMin minutes à partir de l'exécution de l'étape, les nouvelles tentatives cessent et la gestion normale des erreurs reprend. La valeur 0 spécifie que les erreurs n'ont jamais fait l'objet d'une nouvelle tentative. ExpireAfterMin a une valeur maximale de 14 400 minutes (10 jours).

    Note

    Les valeurs MaxAttempts ou ExpireAfterMin peuvent être spécifiées, mais pas les deux. Si aucune des deux n'est spécifiée, MaxAttempts devient la valeur par défaut. Si les deux propriétés sont identifiées dans une politique, la politique de nouvelle tentative génère une erreur de validation.

Configuration d'une politique de nouvelle tentative

Voici un exemple d'étape d'entraînement avec une poltiique de nouvelle tentative.

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

Voici un exemple de création d'une étape TrainingStep dans le kit SDK pour Python (Boto3) avec une politique de nouvelle tentative.

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

Pour plus d'informations sur la configuration du comportement des nouvelles tentatives pour certains types d'étapes, consultez Amazon SageMaker Model Building Pipelines - Retry Policy dans la documentation du SDK Amazon SageMaker Python.