Configuration d’un estimateur avec des paramètres pour le profilage de base à l’aide des modules Python d’Amazon SageMaker Debugger - Amazon SageMaker AI

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.

Configuration d’un estimateur avec des paramètres pour le profilage de base à l’aide des modules Python d’Amazon SageMaker Debugger

Par défaut, le profilage de base de SageMaker Debugger est activé par défaut et surveille les métriques d'utilisation des ressources, tels que l'utilisation des CPU, l'utilisation des GPU, l'utilisation de la mémoire des GPU, le réseau et le temps d'attente des I/O, de toutes les tâches d'entraînement SageMaker soumises à l'aide du kit Amazon SageMaker Python SDK. SageMaker Debugger collecte ces métriques d'utilisation des ressources toutes les 500 millisecondes. Vous n'avez pas besoin d'apporter de modifications supplémentaires à votre code, à votre script d'entraînement ou au lanceur de tâches pour suivre l'utilisation des ressources de base. Si vous souhaitez modifier l'intervalle de collecte des métriques pour le profilage de base, vous pouvez spécifier des paramètres spécifiques à Debugger lors de la création d'un lanceur de tâches d'entraînement SageMaker à l'aide du kit SageMaker Python SDK, du kit AWS SDK pour Python (Boto3) ou de l'AWS Command Line Interface (CLI). Dans ce guide, nous nous concentrons sur la manière de modifier les options de profilage à l'aide du kit Amazon SageMaker Python SDK. Cette page fournit des modèles de référence pour configurer cet objet estimateur.

Si vous souhaitez accéder au tableau de bord des métriques d'utilisation des ressources de votre tâche d'entraînement dans SageMaker Studio, vous pouvez accéder à l'Interface utilisateur Amazon SageMaker Debugger dans Amazon SageMaker Studio Classic Experiments.

Si vous souhaitez activer les règles qui détectent automatiquement les problèmes d'utilisation des ressources du système, vous pouvez ajouter le paramètre rules dans l'objet estimateur pour activer les règles.

Important

Pour utiliser les dernières fonctionnalités de SageMaker Debugger, vous devez mettre à niveau le kit SageMaker Python SDK et la bibliothèque client 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)

Modèle de code pour configurer un objet estimateur SageMaker AI avec les modules SageMaker Debugger Python dans le kit SageMaker AI Python SDK

Pour ajuster la configuration de profilage de base (profiler_config) ou ajouter les règles du profileur (rules), choisissez l’un des onglets pour obtenir le modèle de configuration d’un estimateur SageMaker AI. Dans les pages suivantes, vous pouvez trouver plus d'informations sur la configuration des deux paramètres.

Note

Les exemples de codes suivants ne sont pas directement exécutables. Passez aux sections suivantes pour découvrir comment configurer chaque paramètre.

PyTorch
# An example of constructing a SageMaker AI PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
TensorFlow
# An example of constructing a SageMaker AI TensorFlow estimator import boto3 import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.8.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
MXNet
# An example of constructing a SageMaker AI MXNet estimator import sagemaker from sagemaker.mxnet import MXNet from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
Note

Pour MxNet, lorsque vous configurez le paramètre profiler_config, vous ne pouvez configurer que la surveillance du système. Les métriques du cadre de profilage ne sont pas prises en charge pour MxNet.

XGBoost
# An example of constructing a SageMaker AI XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
Note

Pour XGBoost, lorsque vous configurez le paramètre profiler_config, vous ne pouvez configurer que la surveillance du système. Les métriques du cadre de profilage ne sont pas prises en charge pour XGBoost.

Generic estimator
# An example of constructing a SageMaker AI generic estimator using the XGBoost algorithm base image import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker import image_uris from sagemaker.debugger import ProfilerConfig, DebuggerHookConfig, Rule, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] region=boto3.Session().region_name xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1") estimator=Estimator( role=sagemaker.get_execution_role() image_uri=xgboost_container, base_job_name="debugger-demo", instance_count=1, instance_type="ml.m5.2xlarge", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)

Vous trouverez ci-dessous de brèves descriptions des paramètres.

  • profiler_config : configurez Debugger pour collecter les métriques système et les métriques de framework de votre tâche d'entraînement et les enregistrer dans votre URI de compartiment S3 sécurisé ou votre machine locale. Vous pouvez définir la fréquence ou le degré de collecte des métriques du système. Pour en savoir plus sur la configuration du paramètre profiler_config, consultez Configuration des paramètres pour le profilage de base de l'utilisation des ressources du système et Configuration de l’estimateur pour le profilage du cadre.

  • rules : configurez ce paramètre pour activer les règles intégrées de Debugger que vous souhaitez exécuter en parallèle. Assurez-vous que votre tâche d'entraînement a accès à ce compartiment S3. Les règles s'appliquent au traitement des conteneurs et analysent automatiquement votre tâche d'entraînement pour détecter les problèmes de performance de calcul et opérationnelle. La règle ProfilerReport est la règle la plus intégrée qui exécute toutes les règles de profilage intégrées et enregistre les résultats du profilage sous forme de rapport dans votre compartiment S3 sécurisé. Pour savoir comment configurer le paramètre rules, consultez Utilisation des règles de profilage intégrées gérées par Amazon SageMaker Debugger.

Note

Debugger enregistre en toute sécurité les données de sortie dans les sous-dossiers de votre compartiment S3 par défaut. Par exemple, le format de l'URI du compartiment S3 par défaut est s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Il y a trois sous-dossiers créés par Debugger : debug-output, profiler-output et rule-output. Vous pouvez également extraire les URI du compartiment S3 par défaut à l’aide des méthodes de classe d’estimateur SageMaker AI.

Consultez les rubriques suivantes pour savoir comment configurer en détail les paramètres spécifiques à Debugger.