View a markdown version of this page

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 L'IA analyse automatiquement les journaux des tâches de formation et envoie des mesures de formation à CloudWatch. Par défaut, SageMaker AI envoie des mesures d'utilisation des ressources système répertoriées dans SageMaker AI Jobs et Endpoint Metrics. Si vous souhaitez que l' SageMaker IA analyse les journaux et envoie des métriques personnalisées à partir d'une tâche de formation à laquelle votre propre algorithme est destiné 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 de formation SageMaker IA.

Vous pouvez spécifier les mesures que vous souhaitez suivre à l'aide de la console SageMaker AI, du SDK SageMaker AI Python 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 effectue des recherches précises dans les journaux afin de capturer les valeurs des métriques que vous souhaitez 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 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 de la train:error métrique 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 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éfinissez des métriques à l'aide du SDK SageMaker AI Python

Définissez les métriques que vous souhaitez envoyer CloudWatch en spécifiant une liste de définitions de métriques dans la section AlgorithmSpecification Lorsque vous créez une TrainingJob utilisationsagemaker-core. Par exemple, si vous souhaitez surveiller à la fois les validation:error données train:error et les statistiques CloudWatch, votre TrainingJob.create() appel ressemblera à l'exemple suivant :

from sagemaker.core.resources import TrainingJob from sagemaker.core.shapes import ( AlgorithmSpecification, MetricDefinition, ResourceConfig, OutputDataConfig, StoppingCondition, ) TrainingJob.create( training_job_name="my-training-job", role_arn="arn:aws:iam::123456789012:role/SageMakerRole", algorithm_specification=AlgorithmSpecification( training_image="your-own-image-uri", training_input_mode="File", metric_definitions=[ MetricDefinition(name="train:error", regex="Train_error=(.*?);"), MetricDefinition(name="validation:error", regex="Valid_error=(.*?);"), ], ), resource_config=ResourceConfig( instance_type="ml.c4.xlarge", instance_count=1, volume_size_in_gb=30, ), output_data_config=OutputDataConfig(s3_output_path="s3://bucket/output"), stopping_condition=StoppingCondition(max_runtime_in_seconds=3600), )

Pour plus d'informations sur la formation à l'aide du SDK Amazon SageMaker Python ModelTrainers, consultez le SDK https://github.com/aws/sagemaker-python-sdk#sagemaker-python-sdk-overview Sagemaker Python sur. GitHub

Définissez 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 de formation, 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éfinissez des métriques à l'aide de l'API Low-level SageMaker AI

Définissez les mesures que 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 AlgorithmSpecification d'entrée que vous transmettez à l'CreateTrainingJobopération. Par exemple, si vous souhaitez surveiller à la fois les validation:error paramètres train:error et les métriques dans CloudWatch, vous devriez AlgorithmSpecification suivre 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 de l'API SageMaker AI de bas niveau, consultez CreateTrainingJob.