Surveillez et analysez les offres de formation à l'aide d'Amazon CloudWatch Metrics - 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.

Surveillez et analysez les offres de formation à l'aide d'Amazon CloudWatch Metrics

Une tâche de SageMaker formation Amazon est un processus itératif qui apprend à un modèle à faire des prédictions en présentant des exemples issus d'un ensemble de données de formation. En règle générale, un algorithme d'entraînement calcule plusieurs métriques, telles que les erreurs d'entraînement et la précision des prédictions. Ces métriques permettent de diagnostiquer si le modèle apprend bien et généralisera pour effectuer des prédictions sur des données inconnues. L'algorithme d'entraînement écrit les valeurs de ces métriques dans des journaux, qui SageMaker les surveillent et les envoient à Amazon CloudWatch en temps réel. Pour analyser les performances de votre travail de formation, vous pouvez consulter des graphiques de ces indicateurs dans CloudWatch. Lorsqu'une tâche de formation est terminée, vous pouvez également obtenir une liste des valeurs de métriques qu'elle calcule dans son itération finale en appelant l'opération DescribeTrainingJob.

Note

Amazon CloudWatch prend en charge les métriques personnalisées en haute résolution, et la résolution maximale est d'une seconde. Cependant, plus la résolution est fine, plus la durée de vie des CloudWatch métriques est courte. Pour la résolution de fréquence d'une seconde, les CloudWatch métriques sont disponibles pendant 3 heures. Pour plus d'informations sur la résolution et la durée de vie CloudWatch des métriques, consultez GetMetricStatisticsla CloudWatch APIréférence Amazon.

Astuce

Si vous souhaitez établir le profil de votre poste de formation avec une résolution plus fine, jusqu'à une granularité de 100 millisecondes (0,1 seconde) et stocker les indicateurs de formation indéfiniment dans Amazon S3 pour une analyse personnalisée à tout moment, pensez à utiliser Amazon Debugger. SageMaker SageMaker Le débogueur fournit des règles intégrées pour détecter automatiquement les problèmes d'entraînement courants ; il détecte les problèmes d'utilisation des ressources matérielles (tels que CPU les goulots d'étranglement des E/S) et les problèmes de modèle non convergents (tels que le surajustementGPU, la disparition des dégradés et l'explosion des tenseurs). SageMaker Debugger fournit également des visualisations via Studio Classic et son rapport de profilage. Pour explorer les visualisations du Debugger, consultez les rubriques Procédure pas à pas du tableau de bord SageMaker Debugger Insights, Procédure pas à pas du rapport de profilage du Debugger et Analyser les données à l'aide de la bibliothèque cliente. SMDebug

Définissez les métriques d'entraînement

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 pour capturer les valeurs des métriques auxquelles 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 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.

Surveillance des indicateurs des tâches de formation (CloudWatch console)

Vous pouvez surveiller les indicateurs émis par une tâche de formation en temps réel dans la CloudWatch console.

Pour surveiller les indicateurs des tâches de formation (CloudWatch console)
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch.

  2. Choisissez Metrics, puis /aws/sagemaker/ TrainingJobs.

  3. Choisissez TrainingJobName.

  4. Sous l'onglet All metrics (Toutes les métriques), choisissez les noms des métriques d'entraînement que vous souhaitez contrôler.

  5. Sous l'onglet Graphed metrics (Graphique des métriques), configurez les options du graphique. Pour plus d'informations sur l'utilisation CloudWatch des graphiques, consultez Graph Metrics dans le guide de CloudWatch l'utilisateur Amazon.

Surveillez les métriques d'une tâche d'entraînement (Console SageMaker)

Vous pouvez surveiller les indicateurs émis par une tâche de formation en temps réel à l'aide de la SageMaker console.

Pour surveiller les indicateurs des tâches de formation (SageMaker console)
  1. Ouvrez la SageMaker console à l'adresse https://console.aws.amazon.com/sagemaker.

  2. Sélectionnez Training jobs (Tâches d'entraînement), puis choisissez la tâche d'entraînement dont vous souhaitez consulter les métriques.

  3. Choisissez TrainingJobName.

  4. Dans la section Monitor (Surveillance), vous pouvez consulter les graphiques d'utilisation des instances et les métriques des algorithmes.

    Exemples de graphiques dans la section Moniteur de la console.

Exemple : Affichage d'une courbe d'entraînement et de validation

En règle générale, vous divisez les données sur lesquelles vous entraînez votre modèle en jeux de données d'entraînement et de validation. Vous utilisez l'ensemble de données d'entraînement pour entraîner les paramètres du modèle qui sont utilisés pour effectuer des prédictions sur l'ensemble de données d'entraînement. Puis, vous testez la qualité des prédictions du modèle en calculant les prédictions pour l'ensemble de données de validation. Pour analyser les performances d'une tâche d'entraînement, vous tracez habituellement une courbe d'entraînement et une courbe de validation.

L'affichage d'un graphique qui illustre la précision des ensembles de données d'entraînement et de validation au fil du temps peut vous aider à améliorer la performance de votre modèle. Par exemple, si la précision de l'ensemble de données d'entraînement continue d'augmenter au fil du temps, mais qu'à un moment donné, la précision de l'ensemble de données de validation commence à diminuer, il est probable que votre modèle soit surajusté. Pour résoudre ce problème, vous pouvez ajuster votre modèle (par exemple, augmentation de la régularisation).

Pour cet exemple, vous pouvez utiliser l'mage-classification-full-trainingexemple I dans la section Exemples de carnets de notes de votre instance de SageMaker bloc-notes. Si vous ne possédez pas d'instance de SageMaker bloc-notes, créez-en une en suivant les instructions deÉtape 1 : créer une instance Amazon SageMaker Notebook pour le didacticiel. Si vous préférez, vous pouvez suivre l'exemple de classification d'images multiclasses de bout en bout dans le bloc-notes d'exemple ci-dessous. GitHub Vous avez également besoin d'un compartiment Amazon S3 pour stocker les données d'entraînement et pour la sortie du modèle.

Pour consulter une courbe d'entraînement et une courbe de validation
  1. Ouvrez la SageMaker console à l'adresse https://console.aws.amazon.com/sagemaker.

  2. Choisissez Blocs-notes, puis Instances de blocs-notes.

  3. Choisissez l'instance de bloc-notes que vous souhaitez utiliser, puis choisissez Ouvrir.

  4. Sur le tableau de bord de votre instance de bloc-notes, sélectionnez SageMakerExamples.

  5. Développez la section Introduction aux algorithmes Amazon, puis choisissez Utiliser à côté de I mage-classification-fulltraining .ipynb.

  6. Choisissez Créer une copie. SageMaker crée une copie modifiable du bloc-notes I mage-classification-fulltraining .ipynb dans votre instance de bloc-notes.

  7. Exécutez toutes les cellules du bloc-notes jusqu'à la section Inference (Inférence). Vous n'avez pas besoin de déployer un point de terminaison ou d'obtenir une inférence pour cet exemple.

  8. Une fois la tâche de formation lancée, ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch.

  9. Choisissez Metrics, puis /aws/sagemaker/ TrainingJobs.

  10. Choisissez TrainingJobName.

  11. Sous l'onglet All metrics (Toutes les métriques), sélectionnez les métriques train:accuracy et validation:accuracy pour la tâche d'entraînement que vous avez créée dans le bloc-notes.

  12. Sur le graphique, sélectionnez une zone avec une valeur de métrique sur laquelle zoomer. Vous devriez voir un résultat similaire à l'exemple suivant.

    Zone zoomée sur le graphique.