Définition de métriques de formation - Amazon SageMaker AI

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.

Définition de métriques de formation

SageMaker AI analyse automatiquement les journaux des tâches d’entraînement et envoie les métriques d’entraînement à CloudWatch. Par défaut, SageMaker AI envoie les métriques d’utilisation des ressources système répertoriées dans Tâches SageMaker AI et métriques de point de terminaison. Si vous souhaitez que SageMaker AI analyse les journaux et envoie des métriques personnalisées à partir d’une tâche d’entraînement de votre propre algorithme à CloudWatch, vous devez spécifier des définitions de métriques en transmettant le nom des métriques et des expressions régulières lorsque vous configurez une demande de tâche d’entraînement SageMaker AI.

Vous pouvez spécifier les métriques que vous souhaitez suivre à l’aide de la console SageMaker AI, du kit SageMaker AI Python SDK ou de l’API SageMaker AI de bas niveau.

Si vous utilisez votre propre algorithme, procédez comme suit :

  • Assurez-vous que l’algorithme émet les métriques que vous souhaitez collecter pour les journaux.

  • Définissez une expression régulière qui analyse les journaux en détail pour capturer les valeurs des métriques que vous voulez envoyer à CloudWatch.

Par exemple, supposons que votre algorithme émette les métriques suivantes pour les erreurs d’entraînement et de validation :

Train_error=0.138318; Valid_error=0.324557;

Si vous souhaitez contrôler ces deux métriques dans CloudWatch, le dictionnaire des définitions de métriques doit ressembler à l’exemple suivant :

[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]

Dans l’expression régulière pour la métrique train:error définie dans l’exemple précédent, la première partie de l’expression régulière trouve le texte exact « Train_error= » et l’expression (.*?); capture tous les caractères jusqu’à ce que le premier caractère point-virgule apparaisse. Dans cette expression, la parenthèse indiquent au regex de capturer ce qui est à l’intérieur de celle-ci, . signifie n’importe quel caractère, * signifie aucun ou plusieurs caractères et ? signifie capturer uniquement jusqu’à ce que la première instance du caractère ;.

Définition des métriques à l’aide du kit SageMaker AI Python SDK

Définissez les métriques que vous voulez envoyer à CloudWatch en spécifiant une liste de noms de métriques et d’expressions régulières en tant qu’argument metric_definitions lorsque vous initialisez un objet Estimator. Par exemple, si vous voulez contrôler les deux métriques train:error et validation:error dans CloudWatch, votre initialisation Estimator se présente comme suit :

import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )

Pour plus d’informations sur l’entraînement à l’aide des estimateurs du kit Amazon SageMaker Python SDK, consultez kit Sagemaker Python SDK sur GitHub.

Définition des métriques à l’aide de la console SageMaker AI

Si vous choisissez l’option Votre propre conteneur d’algorithmes dans ECR comme source d’algorithme dans la console SageMaker AI lorsque vous créez une tâche d’entraînement, ajoutez les définitions de métriques dans la section Métriques. La capture d’écran suivante montre à quoi cela devrait ressembler après avoir ajouté les exemples de noms de métriques et les expressions régulières correspondantes.

Exemple de formulaire d’options d’algorithme dans la console.

Définition des métriques à l’aide de l’API SageMaker AI de bas niveau

Définissez les métriques que vous voulez envoyer à CloudWatch en spécifiant une liste de noms de métriques et d’expressions régulières dans le champ MetricDefinitions du paramètre d’entrée AlgorithmSpecification que vous transmettez à l’opération CreateTrainingJob. Par exemple, si vous voulez contrôler les deux métriques train:error et validation:error dans CloudWatch, votre AlgorithmSpecification se présente comme suit :

"AlgorithmSpecification": { "TrainingImage": your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }

Pour plus d’informations sur la définition et l’exécution d’une tâche d’entraînement à l’aide de l’API SageMaker AI de bas niveau, consultez CreateTrainingJob.