Exemples de blocs-notes et de code pour configurer les règles 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.

Exemples de blocs-notes et de code pour configurer les règles Debugger

Dans les sections suivantes, vous trouverez des exemples de blocs-notes et de code montrant comment utiliser les règles de Debugger pour contrôler les tâches d'entraînement SageMaker.

Exemples de blocs-notes de règles intégrées Debugger

Les exemples de blocs-notes suivants montrent comment utiliser les règles intégrées Debugger lorsque vous exécutez des tâches d’entraînement avec Amazon SageMaker AI :

Lorsque vous exécutez les exemples de blocs-notes dans SageMaker Studio, vous pouvez trouver la version d'évaluation de la tâche d'entraînement créée sous l'onglet Studio Expermient List (Liste d'expériences Studio). Par exemple, comme illustré dans la capture d'écran suivante, vous pouvez rechercher et ouvrir une fenêtre Describe Trial Component (Décrire le composant d'essai) de votre tâche d'entraînement actuelle. Sous l'onglet Debugger, vous pouvez vérifier si les règles de Debugger, vanishing_gradient() et loss_not_decreasing(), contrôlent la séance de formation en parallèle. Pour obtenir des instructions complètes sur la façon de trouver vos composants d'essai de tâche d'entraînement dans l'interface utilisateur de Studio, consultez SageMaker Studio - View Experiments, Trials, and Trial Components.

Image de l'exécution d'une tâche d'entraînement avec les règles intégrées de Debugger activées dans SageMaker Studio

Il existe deux façons d’utiliser les règles intégrées Debugger dans l’environnement SageMaker AI : déployez les règles intégrées au fur et à mesure qu’elles sont préparées ou ajustez leurs paramètres à votre guise. Les rubriques suivantes vous montrent comment utiliser les règles intégrées avec des exemples de codes.

Exemple de code pour les règles intégrées Debugger

L'exemple de code ci-après illustre comment configurer une règle intégrée Debugger à l'aide de la méthode Rule.sagemaker. Pour spécifier les règles intégrées que vous souhaitez exécuter, utilisez l'opération d'API rules_configs permettant d'appeler les règles intégrées. Pour obtenir la liste complète des règles intégrées et des valeurs de paramètres par défaut de Debugger, consultez Liste des règles intégrées à Debugger.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call built-in rules that you want to use. built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()) Rule.sagemaker(rule_configs.loss_not_decreasing()) ] # construct a SageMaker AI estimator with the Debugger built-in rules sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-built-in-rules-demo', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules ) sagemaker_estimator.fit()
Note

Les règles intégrées de Debugger s'exécutent en parallèle avec votre tâche d'entraînement. Le nombre maximal de conteneurs de règles intégrées pour une tâche d'entraînement est de 20.

Pour plus d’informations sur la classe, les méthodes et les paramètres des règles de Debugger, consultez SageMaker Debugger Rule class dans le kit Amazon SageMaker Python SDK.

Pour trouver un exemple d'ajustement des paramètres de règles Debugger, consultez la section Utilisation des règles intégrées Debugger avec modifications des paramètres suivante.

Utilisation des règles intégrées Debugger avec modifications des paramètres

L'exemple de code suivant présente la structure des règles intégrées permettant d'ajuster les paramètres. Dans cet exemple, la règle stalled_training_rule collecte la collection de tenseurs losses à partir d'une tâche d'entraînement toutes les 50 étapes et d'une étape d'évaluation toutes les 10 étapes. Si le processus d'entraînement commence à ralentir et ne collecte pas de sorties tenseurs pendant 120 secondes, la règle stalled_training_rule arrête la tâche d'entraînement.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call the built-in rules and modify the CollectionConfig parameters base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) built_in_rules_modified=[ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ 'threshold': '120', 'training_job_name_prefix': base_job_name_prefix, 'stop_training_on_fire' : 'True' } collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "50" "eval.save_interval": "10" } ) ] ) ] # construct a SageMaker AI estimator with the modified Debugger built-in rule sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name=base_job_name_prefix, instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_estimator.fit()