

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.

# Liste des règles de profilage intégrées à Debugger
<a name="debugger-built-in-profiler-rules"></a>

Utilisez les règles de profilage intégrées au 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 [SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) ou des opérations d'API de bas niveau SageMaker . 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 de [ SageMaker tarification d'Amazon](https://aws.amazon.com/sagemaker/pricing/).

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

**Important**  
Pour utiliser les nouvelles fonctionnalités du Debugger, vous devez mettre à niveau le SDK SageMaker Python et la SMDebug bibliothèque cliente. Dans votre noyau IPython, votre bloc-notes Jupyter JupyterLab ou votre environnement, 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
<a name="debugger-built-in-profiler-rules-ProfilerRule"></a>

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 n'importe quel poste SageMaker de formation |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/debugger-built-in-profiler-rules.html)  | 

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 du système pour tout SageMaker type de formation |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/debugger-built-in-profiler-rules.html)  | 

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 frameworks d'apprentissage profond (TensorFlow et PyTorch) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/debugger-built-in-profiler-rules.html)  | 

**Avertissement**  
En faveur d'[Amazon SageMaker Profiler](train-use-sagemaker-profiler.md), SageMaker AI Debugger déconseille la fonctionnalité de profilage du framework à partir des versions 2.11 et 2.0. TensorFlow PyTorch Vous pouvez toujours utiliser cette fonctionnalité dans les versions précédentes des frameworks et SDKs comme suit.   
SageMaker SDK Python <= v2.130.0
PyTorch >= v1.6.0, < v2.0
TensorFlow >= v2.3.1, < v2.11
Consultez également [16 mars 2023](debugger-release-notes.md#debugger-release-notes-20230315).

**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.
+ Pour obtenir des instructions complètes et des exemples d’utilisation des règles intégrées Debugger, consultez [Exemple de code pour les règles intégrées Debugger](debugger-built-in-rules-example.md#debugger-deploy-built-in-rules).
+ Pour obtenir des instructions complètes sur l'utilisation des règles intégrées avec les opérations d' SageMaker API de bas niveau, consultez[Configurer le débogueur à l'aide de l'API SageMaker](debugger-createtrainingjob-api.md).

## ProfilerReport
<a name="profiler-report"></a>

La ProfilerReport règle invoque toutes les règles intégrées de surveillance et de 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és par le biais de la ProfilerReport règle.

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

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

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

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

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

Pour découvrir le contenu du rapport du profileur, consultez le rapport de profilage du [SageMaker débogueur](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html). De plus, comme cette règle active toutes les règles de profilage, vous pouvez également vérifier l'état de l'analyse des règles à l'aide de l'[interface utilisateur du SageMaker débogueur dans SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html) Experiments.

Descriptions des paramètres de la OverallSystemUsage règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours par Amazon SageMaker Debugger. **Obligatoire** Valeurs valides : string  | 
| <BuiltInRuleName>\$1<parameter\$1name> |  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
<a name="batch-size-rule"></a>

La BatchSize règle 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.

Descriptions des paramètres de la BatchSize règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours par Amazon SageMaker Debugger. **Obligatoire** Valeurs valides : string  | 
| cpu\$1threshold\$1p95 |  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\$1threshold\$1p95 |  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\$1memory\$1threshold\$1p95 | 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\$1interval\$1us |  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
<a name="cpu-bottleneck"></a>

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

Descriptions des paramètres de la CPUBottleneck règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours 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\$1threshold |  Seuil qui définit une faible utilisation du GPU. **Facultatif** Valeurs valides : nombre entier Valeur par défaut : `10` (en pourcentage)  | 
| cpu\$1threshold | 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\$1interval\$1us | Intervalle de temps pendant lequel les fichiers de chronologie sont analysés. **Facultatif** Valeurs valides : nombre entier Valeurs par défaut : `60000000` (en microsecondes)  | 

## GPUMemoryAugmenter
<a name="gpu-memory-increase"></a>

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

Descriptions des paramètres de la règle GPUMemory d'augmentation


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours 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\$1interval\$1us |  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
<a name="io-bottleneck"></a>

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.

Descriptions des paramètres de la IOBottleneck règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours par Amazon SageMaker Debugger. **Obligatoire** Valeurs valides : string  | 
| threshold | Définit le seuil pour que la règle renvoie True.**Facultatif**Valeurs valides : nombre entierValeur par défaut : `50` (en pourcentage) | 
| gpu\$1threshold |  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\$1threshold | Seuil qui définit un temps d'attente d'I/O élevé.**Facultatif**Valeurs valides : nombre entierValeurs 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 entierValeurs par défaut : `1000` | 
| scan\$1interval\$1us |  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
<a name="load-balancing"></a>

La LoadBalancing règle permet de détecter les problèmes d'équilibrage de la charge de travail entre plusieurs GPUs.

Descriptions des paramètres de la LoadBalancing règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours 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\$1interval\$1us |  Intervalle de temps pendant lequel les fichiers de chronologie sont analysés. **Facultatif** Valeurs valides : nombre entier Valeurs par défaut : `60000000` (en microsecondes)  | 

## Faible GPUUtilization
<a name="low-gpu-utilization"></a>

La GPUUtilization règle Low permet de détecter si le taux d'utilisation du GPU est faible ou s'il est soumis à 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\$1p95, ce qui indique une sous-utilisation. La règle renvoie True si le 95e quantile est supérieur à threshold\$1p95 et le 5e quantile est inférieur à threshold\$1p5, ce qui indique des fluctuations.

Descriptions des paramètres de la GPUUtilization règle inférieure


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours par Amazon SageMaker Debugger. **Obligatoire** Valeurs valides : string  | 
| threshold\$1p95 |  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\$1p5 | Seuil pour le 5e quantile. La valeur par défaut est 10 %.**Facultatif**Valeurs valides : nombre entierValeurs 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\$1interval\$1us |  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
<a name="overall-system-usage"></a>

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

Descriptions des paramètres de la OverallSystemUsage règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours par Amazon SageMaker Debugger. **Obligatoire** Valeurs valides : string  | 
| scan\$1interval\$1us |  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
<a name="max-initialization-time"></a>

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

Descriptions des paramètres de la MaxInitializationTime règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours 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\$1interval\$1us |  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
<a name="overall-framework-metrics"></a>

La OverallFrameworkMetrics règle résume le temps consacré aux métriques du framework, telles que les passes en avant et en arrière, et le chargement des données.

Descriptions des paramètres de la OverallFrameworkMetrics règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours par Amazon SageMaker Debugger. **Obligatoire** Valeurs valides : string  | 
| scan\$1interval\$1us |  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
<a name="step-outlier"></a>

La StepOutlier règle permet de détecter les valeurs aberrantes dans la durée des étapes. 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.

Descriptions des paramètres de la StepOutlier règle


| Nom du paramètre | Description | 
| --- | --- | 
| base\$1trial | Nom de la tâche d'entraînement d'essai de base. Ce paramètre est automatiquement défini sur la tâche de formation en cours 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 entierValeur par défaut : `5` (en minutes) | 
| n\$1outliers | Nombre de valeurs aberrantes à ignorer avant que la règle ne renvoie True**Facultatif**Valeurs valides : nombre entierValeur par défaut : `10` | 
| scan\$1interval\$1us |  Intervalle de temps pendant lequel les fichiers de chronologie sont analysés. **Facultatif** Valeurs valides : nombre entier Valeurs par défaut : `60000000` (en microsecondes)  | 