Exemples de blocs-notes et d'exemples de code pour configurer les règles du débogueur - 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.

Exemples de blocs-notes et d'exemples de code pour configurer les règles du débogueur

Dans les sections suivantes, des blocs-notes et des exemples de code expliquant comment utiliser les règles du Debugger pour surveiller les tâches de SageMaker formation sont fournis.

Exemples de règles intégrées au débogueur : blocs-notes

Les exemples de blocs-notes suivants montrent comment utiliser les règles intégrées du Debugger lors de l'exécution de tâches de formation avec Amazon : SageMaker

Lorsque vous exécutez les exemples de blocs-notes dans SageMaker Studio, vous pouvez trouver la version d'essai des tâches de formation créée dans l'onglet Studio Experiment List. 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 les composants d'essai de votre projet de formation dans l'interface utilisateur de Studio, voir SageMaker Studio - Afficher les tests, les essais et les composants d'essai.

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

Il existe deux manières d'utiliser les règles intégrées du Debugger dans SageMaker l'environnement : déployez les règles intégrées au fur et à mesure de leur préparation ou ajustez leurs paramètres comme vous le souhaitez. Les rubriques suivantes vous montrent comment utiliser les règles intégrées avec des exemples de codes.

Exemple de code de règles intégrées au débogueur

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'rules_configsAPIopération pour 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, veuillez consulter Liste des règles intégrées du 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 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 de règles, les méthodes et les paramètres du Debugger, consultez la classe SageMaker Debugger Rule dans Amazon Python. SageMaker SDK

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

Utiliser les règles intégrées du Debugger avec des modifications de 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 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()