Arrêter de manière précoce des tâches d'entraînement - 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.

Arrêter de manière précoce des tâches d'entraînement

Arrêtez plus tôt que prévu les tâches d'entraînement lancées par une tâche de réglage d'hyperparamètres en cas d'absence d'amélioration significative selon la métrique d'objectif. L'arrêt précoce de tâches d'entraînement peut vous aider à réduire les temps de calcul et vous permet d'éviter un réglage excessif de votre modèle. Pour configurer une tâche de réglage des hyperparamètres afin d'arrêter de façon précoce les tâches d'entraînement, effectuez l'une des actions suivantes :

  • Si vous utilisez le AWS SDK pour Python (Boto3), TrainingJobEarlyStoppingType définissez le champ de l'objet sur lequel vous souhaitez configurer la tâche HyperParameterTuningJobConfigde réglage. AUTO

  • Si vous utilisez le SDK Amazon SageMaker Python, définissez le early_stopping_type paramètre de l'HyperParameterTunerobjet sur. Auto

  • Dans la SageMaker console Amazon, dans le flux de travail de création d'une tâche de réglage des hyperparamètres, sous Arrêt anticipé, choisissez Auto.

Pour un exemple de bloc-notes expliquant comment utiliser l'arrêt anticipé, consultez https://github.com/awslabs/ amazon-sagemaker-examples /blob/master/hyperparameter_tuning/image_classification_early_stopping/hpo_image_classification_early_stopping.ipynb ou ouvrez le bloc-notes dans la section Réglage des hyperparamètres des exemples dans une instance de bloc-notes. hpo_image_classification_early_stopping.ipynb SageMaker Pour obtenir des informations sur l'utilisation d'exemples de bloc-notes dans une instance de bloc-notes, veuillez consulter Exemples de blocs-notes.

Comment fonctionne l'arrêt précoce

Lorsque vous activez l'arrêt anticipé pour une tâche de réglage d'hyperparamètres, chaque tâche d'entraînement lancée par la tâche de réglage d'hyperparamètres est SageMaker évaluée comme suit :

  • Obtention la valeur de la métrique d'objectif après chaque époque d'entraînement.

  • Calcul de la moyenne d'exécution de la métrique d'objectif pour toutes les tâches d'entraînement précédentes jusqu'à cette époque, puis calcul de la valeur médiane de tous les moyennes en cours d'exécution.

  • Si la valeur de la métrique objective pour la tâche de formation en cours est inférieure (supérieure lors de la minimisation ou inférieure lors de la maximisation de la métrique objective) que la valeur médiane des moyennes cumulatives de la métrique objective pour les tâches de formation précédentes à la même époque, SageMaker la tâche de formation en cours est interrompue.

Algorithmes prenant en charge l'arrêt précoce

Pour prendre en charge l'arrêt précoce, un algorithme doit émettre des métriques d'objectif pour chaque époque. Les SageMaker algorithmes intégrés suivants prennent en charge l'arrêt anticipé :

Note

Cette liste des algorithmes intégrés qui prennent en charge l'arrêt précoce date du 13 décembre 2018. D'autres algorithmes intégrés pourront prendre en charge l'arrêt précoce. Si un algorithme émet une métrique susceptible d'être utilisée comme métrique d'objectif pour une tâche de réglage d'hyperparamètres (de préférence une métrique de validation), il prend en charge l'arrêt précoce.

Pour utiliser l'arrêt précoce avec votre propre algorithme, vous devez l'écrire de manière à ce qu'il émette la valeur de la métrique d'objectif après chaque époque. La liste suivante indique comment procéder dans différentes infrastructures :

TensorFlow

Utilisez la classe tf.keras.callbacks.ProgbarLogger. Pour plus d'informations, consultez le fichier tf.keras.callbacks. ProgbarLogger API.

MXNet

Utilisez mxnet.callback.LogValidationMetricsCallback. Pour plus d'informations, consultez l'API mxnet.callback.

Chainer

Étendez Chainer au moyen de la classe extensions.Evaluator. Pour plus d'informations, consultez l'API Chainer.Training.Extensions.Evaluator.

PyTorch et Spark

Il n'y a pas de prise en charge de haut niveau. Vous devez explicitement écrire votre code d'entraînement afin qu'il calcule les métriques d'objectif et les écrive dans les journaux après chaque époque.