Bonnes pratiques relatives à Amazon SageMaker Debugger - Amazon SageMaker

Bonnes pratiques relatives à 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 cadre de machine learning et utiliser des conteneurs d'entraînement prédéfinis SageMaker ou vos propres conteneurs. Utilisez Debugger pour détecter les problèmes d'entraînement et de performances, et analyser la progression de votre tâche d'entraînement dans SageMaker. SageMaker vous propose des options pour utiliser des conteneurs prédéfinis qui sont préparés pour un certain nombre d'environnements de cadre de machine learning afin d'entraîner votre modèle sur Amazon EC2. Toute tâche d'entraînement peut être adaptée pour fonctionner dans des conteneurs AWS Deep Learning Containers, des conteneurs d'entraînement SageMaker et des conteneurs personnalisés. Pour en savoir plus, consultez Configurer Debugger à l'aide du kit SDK Python Amazon SageMaker et Utiliser Debugger avec des conteneurs d'entraînement 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 d'entraînement SageMaker exécutées sur une instance Amazon EC2, Debugger contrôle l'utilisation des ressources et les données de sortie de 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, consultez Amazon SageMaker Debugger dans Amazon SageMaker Studio.

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, consultez Rapports interactifs 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, consultez Configurer le hook de 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. Consultez Configuration des règles intégrées de Debugger pour en savoir plus sur les règles Debugger et obtenir des instructions détaillées sur l'utilisation du kit SDK Python Amazon SageMaker. Pour obtenir la liste complète des règles intégrées Debugger, consultez Liste des règles intégrées 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 Debugger détectent des problèmes et déclenchent un statut d'évaluation "IssuesFound", CloudWatch Events détecte le changement de statut de la règle et appelle la fonction Lambda pour effectuer des actions. 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 Analyser les données à l'aide de la bibliothèque client SMDebug.

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

Amazon CloudWatch prend en charge les métriques personnalisées haute résolution. Son niveau de résolution maximum est de 1 seconde. Cependant, plus la résolution est élevée, plus la durée de vie des métriques CloudWatch est courte. Pour une résolution d'une fréquence de 1 seconde, les métriques CloudWatch sont disponibles pendant 3 heures. Pour plus d'informations sur la résolution et la durée de vie des métriques CloudWatch, veuillez consulter GetMetricStatistics dans la référence de l'API Amazon CloudWatch.

Si vous souhaitez profiler votre tâche d'entraînement avec un niveau de résolution plus élevé jusqu'à une granularité de 100 millisecondes (0,1 seconde) et stocker les métriques d'entraînement indéfiniment dans Amazon S3 pour une analyse personnalisée à tout moment, envisagez d'utiliser Amazon SageMaker Debugger. SageMaker Debugger 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 goulets d'étranglement du processeur, du GPU et des I/O) et les problèmes de modèle non convergents (tels que le surajustement, les gradients de disparition et l'explosion des tenseurs).

SageMaker Debugger fournit également des visualisations via Studio et son rapport de profilage. Contrairement aux métriques CloudWatch, qui accumulent les taux d'utilisation des ressources des cœurs GPU et processeurs et calculent la moyenne de celles réparties 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 débogueur, veuillez consulter Démonstration du tableau de bord SageMaker Debugger Insights, Démonstration du rapport de profilage Debugger et Analyser les données à l'aide de la bibliothèque client 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 des instances Amazon EC2. La surveillance est disponible pour toute tâche d'entraînement SageMaker créée avec les estimateurs de cadre SageMaker (TensorFlow, PyTorch et MXNet) et l'estimateur SageMaker générique (algorithmes intégrés SageMaker 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 Configurer Debugger à l'aide du kit SDK Python Amazon SageMaker et Configurer l'utilisation des ressources matérielles du système de surveillance de Debugger.

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 la surveillance 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 de cadre de deep learning. Vous pouvez profiler votre entraînement du modèle à l'aide des conteneurs d'entraînement SageMaker TensorFlow, des conteneurs de cadre SageMaker PyTorch et de vos propres conteneurs d'entraînement. À 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 Configurer Debugger à l'aide du kit SDK Python Amazon SageMaker et Configurer le profilage du cadre Debugger.

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 cadre.

Débogage des tenseurs de sortie de modèle

Vous pouvez déboguer les cadres de deep learning à l'aide des conteneurs AWS Deep Learning Containers et des conteneurs d'entraînement SageMaker. 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 du tenseur de sortie, vous pouvez également utiliser les opérations d'API CollectionConfig et DebuggerHookConfig, ainsi que le kit SDK Python Amazon SageMaker 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 Configurer Debugger à l'aide du kit SDK Python Amazon SageMaker et Configurer le hook de 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 du modèle (tenseurs de sortie).