Définition de métriques de formation - 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.

Définition de métriques de formation

SageMaker analyse automatiquement les journaux des tâches de formation et envoie les indicateurs de formation à CloudWatch. Par défaut, SageMaker envoie les métriques d'utilisation des ressources du système répertoriées dans SageMaker Jobs et Endpoint Metrics. Si vous SageMaker souhaitez analyser les journaux et envoyer des métriques personnalisées à partir d'une tâche de formation créée par votre propre algorithme CloudWatch, vous devez spécifier les définitions des métriques en transmettant le nom des métriques et des expressions régulières lorsque vous configurez une demande de tâche de SageMaker formation.

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

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 effectue des recherches précises dans les journaux afin de capturer les valeurs des métriques auxquelles vous souhaitez envoyer des données 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 surveiller 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éfinir des métriques à l'aide du SageMaker Python SDK

Définissez les métriques auxquelles vous souhaitez envoyer CloudWatch en spécifiant une liste de noms de métriques et d'expressions régulières comme metric_definitions argument lorsque vous initialisez un Estimator objet. Par exemple, si vous souhaitez surveiller à la fois les validation:error métriques train:error et dans CloudWatch, votre Estimator initialisation ressemblera à l'exemple suivant :

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 la formation à l'aide des SDK estimateurs Amazon SageMaker Python, consultez Sagemaker Python SDK sur. GitHub

Définir des métriques à l'aide de la SageMaker console

Si vous choisissez l'ECRoption Votre propre conteneur d'algorithmes comme source d'algorithme dans la SageMaker console lorsque vous créez une tâche de formation, ajoutez les définitions des métriques dans la section Mesures. 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éfinissez des métriques à l'aide du bas niveau SageMaker API

Définissez les métriques auxquelles vous souhaitez envoyer CloudWatch en spécifiant une liste de noms de métriques et d'expressions régulières dans le MetricDefinitions champ du paramètre AlgorithmSpecificationd'entrée que vous transmettez à l'CreateTrainingJobopération. Par exemple, si vous souhaitez surveiller à la fois les validation:error métriques train:error et dans CloudWatch, vous AlgorithmSpecification ressemblerez à l'exemple suivant :

"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 de formation à l'aide du niveau inférieur SageMaker API, consultez CreateTrainingJob.