Liste des règles de profilage intégrées à Debugger - Amazon SageMaker AI

Liste des règles de profilage intégrées à Debugger

Utilisez les règles de profilage intégrées à Debugger fournies par Amazon SageMaker Debugger et analysez les métriques collectées lors de l'entraînement de vos modèles. Les règles intégrées à Debugger contrôlent diverses conditions communes qui sont essentielles à l'exécution réussie d'une tâche d'entraînement performante. Vous pouvez appeler les règles de profilage intégrées à l'aide du kit Amazon SageMaker Python SDK ou des opérations d'API SageMaker de bas niveau. L'utilisation des règles intégrées n'entraîne aucun coût supplémentaire. Pour plus d'informations sur la facturation, consultez la page Tarification d'Amazon SageMaker.

Note

Le nombre maximal de règles de profilage intégrées que vous pouvez associer à une tâche d'entraînement est de 20. SageMaker Debugger gère entièrement les règles intégrées et analyse votre tâche d'entraînement de façon synchrone.

Important

Pour utiliser les nouvelles fonctions de Debugger, vous devez mettre à niveau le kit SDK Python SageMaker et la bibliothèque cliente SMDebug. Dans votre noyau iPython, bloc-notes Jupyter ou environnement JupyterLab, exécutez le code suivant pour installer les dernières versions des bibliothèques et redémarrer le noyau.

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

Règles du profileur

Les règles suivantes sont les règles intégrées de Debugger qui peuvent être appelées à l'aide de la méthode de classe ProfilerRule.sagemaker.

Règles intégrées à Debugger pour la génération de rapports de profilage

Domaine de validité Règles intégrées
Rapport de profilage pour toute tâche d'entraînement SageMaker

Règles intégrées à Debugger pour le profilage de l'utilisation des ressources matérielles du système (métriques système)

Domaine de validité Règles intégrées
Règles génériques de surveillance système pour toute tâche d'entraînement SageMaker

Règles intégrées à Debugger pour le profilage des métriques de framework

Domaine de validité Règles intégrées
Règles de profilage pour les cadres de deep learning (TensorFlow et PyTorch)
Avertissement

À partir de TensorFlow 2.11 et PyTorch 2.0, SageMaker Debugger abandonne la caractéristique de profilage du cadre au profit du profileur Amazon SageMaker. Vous pouvez toujours utiliser cette fonctionnalité dans les versions précédentes des frameworks et des kits SDK comme suit.

  • Kit SageMaker Python SDK <= v2.130.0

  • PyTorch >= v1.6.0, < v2.0

  • TensorFlow >= v2.3.1, < v2.11

Voir aussi 16 mars 2023.

Pour utiliser les règles intégrées avec les valeurs de paramètre par défaut, utilisez le format de configuration suivant :

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n()) ]

Pour utiliser les règles intégrées avec la personnalisation des valeurs des paramètres, utilisez le format de configuration suivant :

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) ]

Pour voir les clés disponibles pour le paramètre rule_parameters, consultez les tables de description des paramètres.

Des exemples de codes de configuration de règle sont fournis pour chaque règle intégrée sous les tables de description des paramètres.

ProfilerReport

La règle ProfilerReport appelle toutes les règles intégrées pour la surveillance et le profilage. Elle crée un rapport de profilage et le met à jour lorsque les règles individuelles sont déclenchées. Vous pouvez télécharger un rapport de profilage complet pendant qu'une tâche d'entraînement est en cours d'exécution ou une fois la tâche d'entraînement finie. Vous pouvez ajuster les valeurs des paramètres de règle pour personnaliser la sensibilité des règles intégrées de surveillance et de profilage. L'exemple de code suivant montre le format de base permettant d'ajuster les paramètres de règle intégrée via la règle ProfilerReport.

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( <BuiltInRuleName>_<parameter_name> = value ) ) ]

Si vous déclenchez cette règle ProfilerReport sans aucun paramètre personnalisé, comme dans l'exemple de code suivant, la règle ProfilerReport déclenche toutes les règles intégrées pour la surveillance et le profilage avec leurs valeurs de paramètre par défaut.

rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]

L'exemple de code suivant montre comment spécifier et ajuster la le paramètre cpu_threshold de la règle CPUBottleneck et le paramètre threshold de la règle IOBottleneck.

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( CPUBottleneck_cpu_threshold = 90, IOBottleneck_threshold = 90 ) ) ]

Pour découvrir le contenu du rapport de profilage, consultez Rapport de profilage SageMaker Debugger. De plus, comme cette règle active toutes les règles de profilage, vous pouvez également vérifier le statut de l'analyse des règles à l'aide de l'Interface utilisateur de SageMaker Debugger dans SageMaker Studio Experiments.

Description des paramètres de la règle OverallSystemUsage

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

<BuiltInRuleName>_<parameter_name>

Paramètre personnalisable pour ajuster les seuils d'autres règles de surveillance et de profilage intégrées.

Facultatif

Valeur par défaut : None

BatchSize

La règle BatchSize permet de détecter si le GPU est sous-utilisé en raison d'une petite taille de lot. Pour détecter ce problème, cette règle surveille l'utilisation moyenne du CPU, l'utilisation du GPU et l'utilisation de la mémoire GPU. Si l'utilisation du CPU, du GPU et de la mémoire GPU est faible en moyenne, cela peut indiquer que la tâche d'entraînement peut soit s'exécuter sur un type d'instance plus petit, soit s'exécuter avec une taille de lot plus grande. Cette analyse ne fonctionne pas pour les cadres qui surallouent fortement la mémoire. Toutefois, l'augmentation de la taille du lot peut entraîner des goulets d'étranglement dans le traitement ou le chargement des données, car le prétraitement des données est plus long à chaque itération.

Description des paramètres de la règle BatchSize

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

cpu_threshold_p95

Définit le seuil du 95e quantile d'utilisation du CPU en pourcentage.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 70 (en pourcentage)

gpu_threshold_p95

Définit le seuil du 95e quantile d'utilisation du GPU en pourcentage.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 70 (en pourcentage)

gpu_memory_threshold_p95

Définit le seuil du 95e quantile d'utilisation de la mémoire GPU en pourcentage.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 70 (en pourcentage)

patience

Définit le nombre de points de données à ignorer jusqu'à ce que la règle lance l'évaluation. Les premières étapes des tâches d'entraînement affichent généralement un volume élevé de processus de données, c'est pourquoi vous devez faire patienter la règle et l'empêcher d'être invoquée trop tôt en spécifiant un nombre de données de profilage avec ce paramètre.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 100

window

Taille de la fenêtre pour le calcul des quantiles.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 500

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

CPUBottleneck

La règle CPUBottleneck permet de détecter si le GPU est sous-utilisé en raison de goulets d'étranglement du CPU. La règle renvoie la valeur True si le nombre de goulets d'étranglement du CPU dépasse un seuil prédéfini.

Description des paramètres de la règle CPUBottleneck

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

threshold

Définit le seuil de la proportion de temps limité par rapport au temps d'entraînement total. Si la proportion dépasse le pourcentage spécifié pour le paramètre de seuil, le statut de la règle passe à True.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 50 (en pourcentage)

gpu_threshold

Seuil qui définit une faible utilisation du GPU.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 10 (en pourcentage)

cpu_threshold

Seuil qui définit une utilisation élevée du CPU.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 90 (en pourcentage)

patience

Définit le nombre de points de données à ignorer jusqu'à ce que la règle lance l'évaluation. Les premières étapes des tâches d'entraînement affichent généralement un volume élevé de processus de données, c'est pourquoi vous devez faire patienter la règle et l'empêcher d'être invoquée trop tôt en spécifiant un nombre de données de profilage avec ce paramètre.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 100

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

GPUMemoryIncrease

La règle GPUMemoryIncrease permet de détecter une augmentation importante de l'utilisation de la mémoire sur les GPU.

Description des paramètres de la règle GPUMemoryIncrease

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

increase

Définit le seuil pour l'augmentation absolue de la mémoire.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 10 (en pourcentage)

patience

Définit le nombre de points de données à ignorer jusqu'à ce que la règle lance l'évaluation. Les premières étapes des tâches d'entraînement affichent généralement un volume élevé de processus de données, c'est pourquoi vous devez faire patienter la règle et l'empêcher d'être invoquée trop tôt en spécifiant un nombre de données de profilage avec ce paramètre.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 100

window

Taille de la fenêtre pour le calcul des quantiles.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 500

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

IOBottleneck

Cette règle permet de détecter si le GPU est sous-utilisé en raison de goulets d'étranglement des I/O de données. La règle renvoie la valeur True si le nombre de goulets d'étranglement d'I/O dépasse un seuil prédéfini.

Description des paramètres de la règle IOBottleneck

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

threshold Définit le seuil pour que la règle renvoie True.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 50 (en pourcentage)

gpu_threshold

Seuil qui définit quand le GPU est considéré comme sous-utilisé.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 70 (en pourcentage)

io_threshold Seuil qui définit un temps d'attente d'I/O élevé.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 50 (en pourcentage)

patience Définit le nombre de points de données à ignorer jusqu'à ce que la règle lance l'évaluation. Les premières étapes des tâches d'entraînement affichent généralement un volume élevé de processus de données, c'est pourquoi vous devez faire patienter la règle et l'empêcher d'être invoquée trop tôt en spécifiant un nombre de données de profilage avec ce paramètre.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 1000

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

LoadBalancing

La règle LoadBalancing permet de détecter les problèmes d'équilibrage d'application entre plusieurs GPU.

Description des paramètres de la règle LoadBalancing

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

threshold

Définit le pourcentage d'application.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 0.5 (proportion sans unité)

patience

Définit le nombre de points de données à ignorer jusqu'à ce que la règle lance l'évaluation. Les premières étapes des tâches d'entraînement affichent généralement un volume élevé de processus de données, c'est pourquoi vous devez faire patienter la règle et l'empêcher d'être invoquée trop tôt en spécifiant un nombre de données de profilage avec ce paramètre.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 10

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

LowGPUUtilization

La règle LowGPUUtilization permet de détecter si l'utilisation du GPU est faible ou si elle subit des fluctuations. Ceci est vérifié pour chaque GPU sur chaque composant. La règle renvoie True si le 95e quantile est inférieur à threshold_p95, ce qui indique une sous-utilisation. La règle renvoie True si le 95e quantile est supérieur à threshold_p95 et le 5e quantile est inférieur à threshold_p5, ce qui indique des fluctuations.

Description des paramètres de la règle LowGPUUtilization

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

threshold_p95

Seuil pour le 95e quantile au-dessous duquel le GPU est considéré comme sous-utilisé.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 70 (en pourcentage)

threshold_p5 Seuil pour le 5e quantile. La valeur par défaut est 10 %.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 10 (en pourcentage)

patience

Définit le nombre de points de données à ignorer jusqu'à ce que la règle lance l'évaluation. Les premières étapes des tâches d'entraînement affichent généralement un volume élevé de processus de données, c'est pourquoi vous devez faire patienter la règle et l'empêcher d'être invoquée trop tôt en spécifiant un nombre de données de profilage avec ce paramètre.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 1000

window

Taille de la fenêtre pour le calcul des quantiles.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 500

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

OverallSystemUsage

La règle OverallSystemUsage mesure l'utilisation globale du système par composant master. Actuellement, la règle agrège uniquement les valeurs par nœud et calcule leurs percentiles.

Description des paramètres de la règle OverallSystemUsage

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

MaxInitializationTime

La règle MaxInitializationTime permet de détecter si le lancement de l'entraînement prend trop de temps. La règle attend que la première étape soit disponible.

Description des paramètres de la règle MaxInitializationTime

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

threshold

Définit le seuil en minutes à attendre pour que la première étape devienne disponible.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 20 (en minutes)

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

OverallFrameworkMetrics

La règle OverallFrameworkMetrics récapitule le temps passé sur les métriques de cadre, telles que les transmissions vers l'avant et vers l'arrière, et le chargement des données.

Description des paramètres de la règle OverallFrameworkMetrics

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)

StepOutlier

La règle StepOutlier permet de détecter les valeurs aberrantes en matière de durées d'étape. Cette règle renvoie True s'il y a des valeurs aberrantes avec des durées d'étape supérieures à stddev sigmas de l'ensemble des durées d'étape dans une plage de temps.

Description des paramètres de la règle StepOutlier

Nom du paramètre Description
base_trial

Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche d'entraînement actuelle par Amazon SageMaker Debugger.

Obligatoire

Valeurs valides : string

stddev

Définit un facteur par lequel multiplier l'écart standard. Par exemple, la règle est invoquée par défaut lorsqu'une durée d'étape est supérieure ou inférieure à 5 fois l'écart standard.

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 5 (en minutes)

mode Mode sous lequel les étapes ont été enregistrées et sur lequel la règle doit s'exécuter. La règle par défaut s'exécute sur les étapes de la phase EVAL et TRAIN

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 5 (en minutes)

n_outliers Nombre de valeurs aberrantes à ignorer avant que la règle ne renvoie True

Facultatif

Valeurs valides : nombre entier

Valeur par défaut : 10

scan_interval_us

Intervalle de temps pendant lequel les fichiers de chronologie sont analysés.

Facultatif

Valeurs valides : nombre entier

Valeurs par défaut : 60000000 (en microsecondes)