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

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 de l'estimateur avec paramètres pour le profilage de base à l'aide des modules Python d'Amazon SageMaker Debugger

Par défaut, le profilage de base du SageMaker Debugger est activé par défaut et surveille les indicateurs d'utilisation des ressources, tels que l'utilisation, CPU l'utilisation, GPU l'utilisation de GPU la mémoire, le réseau et le temps d'attente des E/S, de toutes les tâches de SageMaker formation soumises à l'aide d'Amazon Python. SageMaker SDK SageMaker Debugger collecte ces mesures 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 au débogueur lors de la création d'un lanceur de tâches d' SageMaker entraînement à l'aide de SageMaker Python SDK AWS SDK for Python (Boto3), or (). AWS Command Line Interface CLI Dans ce guide, nous nous concentrons sur la façon de modifier les options de profilage à l'aide d'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 indicateurs d'utilisation des ressources de votre tâche de formation dans SageMaker Studio, vous pouvez accéder auInterface 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 du SageMaker Debugger, vous devez mettre à niveau le SageMaker Python SDK et la bibliothèque SMDebug cliente. Dans votre iPython noyau, Jupyter Notebook ou JupyterLab 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)

Modèle de code pour configurer un objet SageMaker estimateur avec les modules SageMaker Debugger Python dans Python SageMaker 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 SageMaker estimateur. 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 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 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 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

En effetMXNet, lors de la configuration du profiler_config paramètre, vous ne pouvez le configurer que pour la surveillance du système. Les métriques du framework de profilage ne sont pas prises en charge pourMXNet.

XGBoost
# An example of constructing a SageMaker 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

En effetXGBoost, lors de la configuration du profiler_config paramètre, vous ne pouvez le configurer que pour la surveillance du système. Les métriques du framework de profilage ne sont pas prises en charge pourXGBoost.

Generic estimator
# An example of constructing a SageMaker 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 du système et les métriques du framework à partir de votre tâche de formation et les enregistrer dans votre bucket S3 sécurisé URI ou sur 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 framework.

  • rules— Configurez ce paramètre pour activer les règles intégrées du SageMaker 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 Utilisez des règles de profilage intégrées gérées par Amazon Debugger SageMaker .

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 du compartiment S3 par défaut URI ests3://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 récupérer le compartiment S3 par défaut à URIs l'aide des méthodes de classe SageMaker estimator.

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