Rapport d'entraînement XGBoost SageMaker Debugger - Amazon SageMaker

Rapport d'entraînement XGBoost SageMaker Debugger

Pour les tâches d'entraînement XGBoost SageMaker, utilisez la règle CreateXgboostReport Debugger pour recevoir un rapport d'entraînement complet sur les progrès et les résultats de l'entraînement. En suivant ce guide, spécifiez le paramètre CreateXgboostReport lorsque vous créez un estimateur XGBoost, puis téléchargez le rapport à l'aide du kit SDK Python Amazon SageMaker ou de la console Amazon S3. Vous obtenez des informations sur les résultats de la formation.

Important

Dans le rapport, les diagrammes et les recommandations sont fournis à titre informatif et ne sont pas définitifs. Vous êtes tenu de réaliser votre propre évaluation indépendante des informations.

Créer un estimateur SageMaker XGBoost avec la règle de rapport XGBoost de Debugger

La règle CreateXgboostReport collecte les tenseurs de sortie suivants à partir de votre tâche d'entraînement :

  • hyperparameters : enregistre à la première étape.

  • metrics : enregistre la perte et la précision toutes les 5 étapes.

  • feature_importance : enregistre toutes les 5 étapes.

  • predictions : enregistre toutes les 5 étapes.

  • labels : enregistre toutes les 5 étapes.

Les tenseurs de sortie sont enregistrés dans un compartiment S3 par défaut. Par exemple, s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/debug-output/.

Lorsque vous créez un estimateur SageMaker pour une tâche d'entraînement XGBoost, spécifiez la règle comme illustré dans l'exemple de code suivant.

Using the SageMaker generic estimator
import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker import image_uris from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.create_xgboost_report()) ] region = boto3.Session().region_name xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1") estimator=Estimator( role=sagemaker.get_execution_role() image_uri=xgboost_container, base_job_name="debugger-xgboost-report-demo", instance_count=1, instance_type="ml.m5.2xlarge", # Add the Debugger XGBoost report rule rules=rules ) estimator.fit(wait=False)

Télécharger le rapport d'entraînement XGBoost de Debugger

Téléchargez le rapport d'entraînement XGBoost de Debugger pendant que votre tâche d'entraînement est en cours d'exécution ou une fois qu'elle est terminée à l'aide du kit SKD Python Amazon SageMaker et de l'AWS Command Line Interface (CLI).

Download using the SageMaker Python SDK and AWS CLI
  1. Vérifiez l'URI de base de sortie S3 par défaut de la tâche en cours.

    estimator.output_path
  2. Vérifiez le nom de la tâche en cours.

    estimator.latest_training_job.job_name
  3. Le rapport XGBoost de Debugger est stocké sous <default-s3-output-base-uri>/<training-job-name>/rule-output. Configurez le chemin de sortie de la règle comme suit :

    rule_output_path = estimator.output_path + "/" + estimator.latest_training_job.job_name + "/rule-output"
  4. Pour vérifier si le rapport est généré, listez les répertoires et les fichiers de façon récursive sous rule_output_path en utilisant aws s3 ls avec l'option --recursive.

    ! aws s3 ls {rule_output_path} --recursive

    Cela devrait renvoyer une liste complète des fichiers sous des dossiers générés automatiquement et nommés CreateXgboostReport et ProfilerReport-1234567890. Le rapport d'entraînement XGBoost est stocké dans le dossier CreateXgboostReport, et le rapport de profilage est stocké dans le dossier ProfilerReport-1234567890. Pour en savoir plus sur le rapport de profilage généré par défaut avec la tâche d'entraînement XGBoost, consultez Rapport de profilage SageMaker Debugger.

    
                                        Exemple de sortie de règle.

    xgboost_report.html est un rapport d'entraînement XGBoost généré automatiquement par Debugger. xgboost_report.ipynb est un bloc-notes Jupyter utilisé pour regrouper les résultats d'entraînement dans le rapport. Vous pouvez télécharger tous les fichiers, parcourir le fichier de rapport HTML et modifier le rapport à l'aide du bloc-notes.

  5. Téléchargez les fichiers de façon récursive en utilisant aws s3 cp. La commande suivante enregistre tous les fichiers de sortie de règle dans le dossier ProfilerReport-1234567890 sous le répertoire de travail actuel.

    ! aws s3 cp {rule_output_path} ./ --recursive
    Astuce

    Si vous utilisez un serveur de bloc-notes Jupyter, exécutez !pwd pour vérifier le répertoire de travail actuel.

  6. Sous le répertoire /CreateXgboostReport, ouvrez xgboost_report.html. Si vous utilisez JupyterLab, choisissez Trust HTML (Faire confiance à l'HTML) pour voir le rapport d'entraînement généré automatiquement par Debugger.

    
                                        Exemple de sortie de règle.
  7. Ouvrez le fichier xgboost_report.ipynb pour voir comment le rapport est généré. Vous pouvez personnaliser et étendre le rapport d'entraînement à l'aide du fichier de bloc-notes Jupyter.

Download using the Amazon S3 console
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Recherchez le compartiment S3 de base. Par exemple, si vous n'avez pas spécifié de nom de tâche de base, le nom du compartiment S3 de base doit être au format suivant : sagemaker-<region>-111122223333. Recherchez le compartiment S3 de base à l'aide du champ Find bucket by name (Rechercher des compartiments par nom).

    
                                        Champ Find bucket by name (Rechercher des compartiments par nom) dans la console Amazon S3.
  3. Dans le compartiment S3 de base, recherchez le nom de la tâche d'entraînement en saisissant le préfixe du nom de votre tâche dans Find objects by prefix (Rechercher des objets par préfixe) , puis en choisissant le nom de la tâche d'entraînement.

    
                                        Champ Find objects by prefix (Rechercher des objets par préfixe) dans la console Amazon S3.
  4. Dans le compartiment S3 de la tâche d'entraînement, choisissez le sous-dossier rule-output/. Celui-ci doit contenir trois sous-dossiers pour les données d'entraînement collectées par Debugger : debug-output/, profiler-output/ et rule-output/.

    
                                        Exemple d'utilisation de l'URI du compartiment S3 de la sortie de règle.
  5. Dans le dossier rule-output/, choisissez le dossier CreateXgboostReport/. Le dossier contient xbgoost_report.html (le rapport généré automatiquement en html) et xbgoost_report.ipynb (un bloc-notes Jupyter avec les scripts utilisés pour générer le rapport).

  6. Choisissez le fichier xbgoost_report.html, puis Download actions (Télécharger les actions) et Download (Télécharger).

    
                                        Exemple d'utilisation de l'URI du compartiment S3 de la sortie de règle.
  7. Ouvrez le fichier xbgoost_report.html téléchargé dans un navigateur web.

Démonstration du rapport d'entraînement XGBoost de Debugger

Cette section présente le rapport d'entraînement XGBoost de Debugger. Le rapport est automatiquement agrégé en fonction de l'expression régulière du tenseur de sortie. Il reconnait le type de votre tâche d'entraînement parmi la classification binaire, la classification multiclasse et la régression.

Important

Dans le rapport, les diagrammes et les recommandations sont fournis à titre informatif et ne sont pas définitifs. Vous êtes tenu de réaliser votre propre évaluation indépendante des informations.

Distribution des étiquettes True du jeu de données

Cet histogramme montre la distribution des classes étiquetées (pour la classification) ou des valeurs (pour la régression) dans votre jeu de données d'origine. L'asymétrie de votre jeu de données peut contribuer à des inexactitudes. Cette visualisation est disponible pour les types de modèles suivants : classification binaire, multiclassification et régression.


                        Exemple de distribution d'étiquettes True du diagramme du jeu de données.

Diagramme Perte contre Étape

Il s'agit d'un graphique linéaire qui montre la progression de la perte sur les données d'entraînement et les données de validation tout au long des étapes d'entraînement. La perte est ce que vous avez défini dans votre fonction objective, comme une erreur quadratique moyenne. Vous pouvez évaluer si le modèle est trop ajusté ou inadapté à partir de ce diagramme. Cette section fournit également des informations que vous pouvez utiliser pour déterminer comment résoudre les problèmes de surajustement et de sous-ajustement. Cette visualisation est disponible pour les types de modèles suivants : classification binaire, multiclassification et régression.


                        Exemple de diagramme Perte contre Étape.

Importance des fonctions

Il existe trois différents types de visualisations de l'importance des fonctions : Weight (Pondération), Gain et Coverage (Couverture). Le rapport contient des définitions détaillées pour chacune des trois fonctions. Les visualisations de l'importance des fonctions vous aident à déterminer quelles fonctions de votre jeu de données d'entraînement ont contribué aux prédictions. Les visualisations de l'importance des fonctions sont disponibles pour les types de modèles suivants : classification binaire, multiclassification et régression.


                        Exemple de graphique d'importance des fonctions.

Matrice Confusion

Cette visualisation s'applique uniquement aux modèles de classification binaires et multiclasses. La précision à elle seule peut ne pas suffire à évaluer les performances du modèle. Pour certains cas d'utilisation, comme les soins de santé et la détection de fraude, il est également important de connaître le taux de faux positifs et le taux de faux négatifs. Une matrice Confusion vous donne les dimensions supplémentaires pour évaluer les performances de votre modèle.


                        Exemple de matrice Confusion.

Évaluation de la matrice Confusion

Cette section vous fournit plus d'informations sur les métriques micro, macro et pondérées en matière de précision, de rappel et de score F1 pour votre modèle.


                        Évaluation de la matrice Confusion.

Taux de précision de chaque élément diagonal par rapport à l'itération

Cette visualisation s'applique uniquement aux modèles de classification binaires et multiclasses. Il s'agit d'un graphique linéaire qui trace les valeurs diagonales de la matrice Confusion tout au long des étapes d'entraînement pour chaque classe. Ce graphique vous montre comment la précision de chaque classe progresse tout au long des étapes d'entraînement. Vous pouvez identifier les classes sous-performantes à partir de ce diagramme.


                        Exemple de taux de précision de chaque élément diagonal par rapport au graphique d'itération.

Courbe caractéristique de fonctionnement du récepteur

Cette visualisation s'applique uniquement aux modèles de classification binaire. La courbe de caractéristique de fonctionnement du récepteur est communément utilisée pour évaluer les performances du modèle de classification binaire. L'axe des y de la courbe représente le taux de vrais positifs et l'axe des x représente le taux de faux positif. Le graphique affiche également la valeur de la zone sous la courbe. Plus la valeur de la zone sous la courbe est élevée, plus votre classificateur est prédictif. Vous pouvez également utiliser la courbe de caractéristique de fonctionnement du récepteur pour comprendre le compromis entre le taux de vrais positifs et le taux de faux positifs et identifier le seuil de classification optimal pour votre cas d'utilisation. Le seuil de classification peut être modifié pour ajuster le comportement du modèle et ainsi réduire plus d'un ou un autre type d'erreur (FP/FN).


                        Exemple de graphique de courbe de caractéristique de fonctionnement du récepteur.

Distribution des résidus à la dernière étape enregistrée

Cette visualisation est un graphique en colonnes qui montre les distributions résiduelles dans la dernière étape capturée par Debugger. Dans cette visualisation, vous pouvez vérifier si la distribution résiduelle est proche de la distribution normale, centrée sur zéro. Si les valeurs résiduelles sont biaisées, il se peut que vos fonctions ne soient pas suffisantes pour prédire les étiquettes.


                        Exemple de distribution de valeurs résiduelles au dernier graphique d'étape enregistré.

Erreur de validation absolue par groupe d'étiquettes sur itération

Cette visualisation s'applique uniquement aux modèles de régression. Les valeurs cibles réelles sont divisées en 10 intervalles. Cette visualisation montre comment les erreurs de validation progressent pour chaque intervalle tout au long des étapes d'entraînement à travers un tracé linéaire. L'erreur de validation absolue est la valeur absolue de la différence entre la prédiction et la valeur réelle pendant la validation. Vous pouvez identifier les intervalles sous-performants à partir de cette visualisation.


                        Exemple d'erreur de validation absolue par groupe d'étiquettes sur graphique d'itération.