Bonnes pratiques pour Amazon SageMaker Debugger - 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.

Bonnes pratiques pour Amazon SageMaker Debugger

Suivez les consignes suivantes lorsque vous exécutez des tâches d'entraînement avec Debugger.

Choisir un cadre de machine learning

Vous pouvez choisir un framework d'apprentissage automatique et utiliser des conteneurs de formation SageMaker prédéfinis ou vos propres conteneurs. Utilisez Debugger pour détecter les problèmes d'entraînement et de performance, et analyser la progression de l'entraînement dans le cadre de votre tâche de formation. SageMaker SageMaker vous propose des options pour utiliser des conteneurs prédéfinis préparés pour un certain nombre d'environnements de machine learning afin d'entraîner votre modèle sur Amazon EC2. Toute tâche de formation peut être adaptée pour être exécutée dans des AWS Deep Learning Containers, des conteneurs de SageMaker formation et des conteneurs personnalisés.

Utiliser le tableau de bord Studio Debugger Insights

Avec le tableau de bord Studio Debugger Insights, vous contrôlez vos tâches d'entraînement. Utilisez les tableaux de bord Studio Debugger pour contrôler et optimiser les performances de votre modèle sur les instances Amazon EC2. Pour toutes les tâches de SageMaker formation exécutées sur une instance Amazon EC2, Debugger surveille l'utilisation des ressources et les données de sortie du modèle de base (valeurs de perte et de précision). Grâce aux tableaux de bord Studio Debugger, obtenez des informations sur vos tâches d'entraînement et améliorez les performances de votre entraînement du modèle. Pour en savoir plus, veuillez consulter la section Interface utilisateur Amazon SageMaker Debugger dans Amazon SageMaker Studio Classic Experiments.

Télécharger les rapports Debugger pour obtenir plus d'informations

Vous pouvez afficher les résultats agrégés et obtenir des informations dans les rapports Debugger. Debugger agrège les résultats d'entraînement et de profilage collectés à partir de l'analyse des règles intégrées dans un rapport par tâche d'entraînement. Pour de plus amples informations sur les résultats de vos entraînements, consultez les rapports Debugger. Pour en savoir plus, veuillez consulter la section Rapport interactif de SageMaker Debugger.

Capturez les données de votre tâche d'entraînement et enregistrez-les sur Amazon S3

Vous pouvez utiliser un hook Debugger pour enregistrer les tenseurs de sortie. Après avoir choisi un conteneur et un cadre qui s'adaptent à votre script d'entraînement, utilisez un hook Debugger pour configurer les tenseurs à enregistrer et le répertoire dans lequel les enregistrer, tel qu'un compartiment Amazon S3. Un hook Debugger vous aide à créer votre configuration et à la conserver dans votre compte pour l'utiliser lors d'analyses ultérieures. Elle est ainsi sécurisée pour une utilisation avec les applications les plus sensibles au respect de la vie privée. Pour en savoir plus, veuillez consulter la section Configurer SageMaker Debugger pour enregistrer les tenseurs.

Analyser les données avec une flotte de règles intégrées Debugger

Vous pouvez utiliser les règles intégrées de Debugger pour inspecter les tenseurs en parallèle avec la tâche d'entraînement. Pour analyser les données de performances d'entraînement, Debugger fournit des règles intégrées qui contrôlent les comportements anormaux des processus d'entraînement. Par exemple, une règle Debugger détecte les problèmes lorsque le processus d'entraînement souffre de problèmes de goulet d'étranglement du système ou de problèmes d'entraînement, tels que des gradients qui disparaissent, des tenseurs explosifs, un surajustement ou un surentraînement. Si nécessaire, vous pouvez également créer des règles personnalisées en créant une définition de règle avec vos propres critères pour définir un problème d'entraînement. Pour en savoir plus sur les règles du Debugger, consultez Configuration des règles intégrées de Debugger les instructions détaillées relatives à l'utilisation du SDK Amazon SageMaker Python. Pour obtenir la liste complète des règles intégrées Debugger, consultez Liste des règles intégrées du Debugger. Si vous souhaitez créer une règle intégrée, consultez Créer des règles personnalisées Debugger pour l'analyse des tâches d'entraînement.

Effectuer des actions en fonction du statut de la règle intégrée

Vous pouvez utiliser Debugger avec Amazon CloudWatch Events et. AWS Lambda Vous pouvez automatiser des actions basées sur le statut de la règle, telles que l'arrêt précoce des tâches d'entraînement et la configuration des notifications par e-mail ou SMS. Lorsque les règles du Debugger détectent des problèmes et déclenchent un statut "IssuesFound" d'évaluation, CloudWatch Events détecte les changements d'état des règles et appelle la fonction Lambda pour prendre des mesures. Pour configurer des actions automatisées en fonction de vos problèmes d'entraînement, consultez Créer des actions sur les règles à l'aide d'Amazon CloudWatch et de AWS Lambda.

Explorer les données à l'aide de la bibliothèque client SMDebug

Vous pouvez utiliser les outils SMDebug pour accéder aux données d'entraînement collectées par Debugger et les analyser. Les classes TrainingJob et create_trial chargent les métriques et les tenseurs enregistrés par Debugger. Ces classes fournissent des méthodes de classe étendues pour analyser les données en temps réel ou une fois l'entraînement terminé. La bibliothèque SMDebug fournit également des outils de visualisation : fusion des chronologies des métriques de cadre pour agréger différents profilages, graphiques linéaires et cartes thermiques pour suivre l'utilisation du système, et histogrammes pour trouver les valeurs aberrantes de durée d'étape. Pour en savoir plus sur les outils de la bibliothèque SMDebug, consultez Analyse des données à l'aide de la bibliothèque client Debugger Python.

Surveillance et analyse des métriques de tâches d'entraînement

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 des CloudWatch métriques, consultez GetMetricStatisticsle Amazon CloudWatch API Reference.

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 les goulots d'étranglement du processeur, du processeur graphique et des E/S) et les problèmes de modèle non convergents (tels que le surajustement, 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. Contrairement aux CloudWatch métriques, qui cumulent les taux d'utilisation des ressources des cœurs du processeur et du processeur graphique et en font la moyenne sur plusieurs instances, Debugger suit le taux d'utilisation de chaque cœur. Cela vous permet de repérer un déséquilibre au niveau de l'utilisation des ressources matérielles lorsque vous passez à des clusters de calcul plus importants. Pour explorer les visualisations du Debugger, consultez les sections 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.

Surveillance de l'utilisation du système et détection des goulets d'étranglement

Grâce à la surveillance d'Amazon SageMaker Debugger, vous pouvez mesurer l'utilisation des ressources matérielles du système par les instances Amazon EC2. La surveillance est disponible pour tout travail de SageMaker formation construit à l'aide des estimateurs du SageMaker framework (TensorFlow, PyTorch, et MXnet) et de l' SageMakerestimateur générique (algorithmes SageMaker intégrés et vos propres conteneurs personnalisés). Les règles intégrées de Debugger pour la surveillance détectent les problèmes de goulet d'étranglement du système et vous avertissent lorsqu'elles détectent les problèmes de goulet d'étranglement.

Pour savoir comment activer la surveillance système de Debugger, consultez Configuration d'un estimateur avec des paramètres pour le profilage de base à l'aide des modules Python d'Amazon SageMaker Debugger et Configuration des paramètres pour le profilage de base de l'utilisation des ressources du système.

Pour obtenir la liste complète des règles intégrées disponibles pour la surveillance, veuillez consulter Règles intégrées à Debugger pour le profilage de l'utilisation des ressources matérielles du système (métriques système).

Profilage des opérations de cadre

Avec le profilage Amazon SageMaker Debugger, vous pouvez profiler les opérations des frameworks d'apprentissage profond. Vous pouvez profiler votre modèle d'entraînement à l'aide des conteneurs de SageMaker TensorFlow formation, des conteneurs du SageMaker PyTorch framework et de vos propres conteneurs de formation. À l'aide de la fonction de profilage de Debugger, vous pouvez explorer les opérateurs et les fonctions Python qui sont exécutés pour effectuer la tâche d'entraînement. Debugger prend en charge le profilage détaillé, le profilage Python, le profilage de chargeur de données et le profilage d'entraînement distribué Horovod. Vous pouvez fusionner les chronologies profilées pour les mettre en corrélation avec les goulets d'étranglement du système. Les règles intégrées Debugger pour le profilage contrôlent les problèmes liés aux opérations de cadre, y compris les durées excessives d'initialisation d'entraînement dues au téléchargement des données avant le début de l'entraînement et les valeurs aberrantes de durée d'étape dans les boucles d'entraînement.

Pour savoir comment configurer Debugger pour le profilage de cadre, veuillez consulter Configuration d'un estimateur avec des paramètres pour le profilage de base à l'aide des modules Python d'Amazon SageMaker Debugger et Configuration du profilage du framework.

Pour obtenir la liste complète des règles intégrées disponibles pour le profilage, veuillez consulter Règles intégrées à Debugger pour le profilage des métriques de framework.

Débogage des tenseurs de sortie de modèle

Le débogage est disponible pour les frameworks de deep learning utilisant les AWS Deep Learning Containers et les conteneurs de SageMaker formation. Pour les versions de cadre entièrement prises en charge (voir les versions dans Cadres et algorithmes pris en charge), Debugger enregistre automatiquement les hooks pour collecter les tenseurs de sortie, et vous pouvez exécuter directement votre script d'entraînement. Pour les versions avec un astérisque, vous devez enregistrer manuellement les hooks pour collecter les tenseurs. Debugger fournit des collections de tenseurs préconfigurés avec des noms généralisés que vous pouvez utiliser dans les différents cadres. Si vous souhaitez personnaliser la configuration des tenseurs de sortie, vous pouvez également utiliser les opérations d' DebuggerHookConfig API CollectionConfig et le SDK Amazon SageMaker Python pour configurer vos propres collections de tenseurs. Les règles intégrées Debugger pour le débogage analysent les tenseurs de sortie et identifient les problèmes d'optimisation de modèle qui empêchent votre modèle de réduire la fonction de perte. Par exemple, les règles identifient le surajustement, le surentraînement, l'absence de diminution de perte, les tenseurs qui explosent et les gradients qui disparaissent.

Pour savoir comment configurer Debugger pour le débogage des tenseurs de sortie, veuillez consulter Étape 2 : lancer et déboguer des tâches d'entraînement à l'aide du kit SDK Python SageMaker et Configurer SageMaker Debugger pour enregistrer les tenseurs.

Pour obtenir la liste complète des règles intégrées disponibles pour le débogage, veuillez consulter Règles intégrées à Debugger pour le débogage des données d'entraînement de modèle (tenseurs de sortie).