View a markdown version of this page

Lancer des tâches de formation avec Debugger à l'aide du SDK Python SageMaker - 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.

Lancer des tâches de formation avec Debugger à l'aide du SDK Python SageMaker

Note

Amazon SageMaker Debugger n'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. AWS continue d'investir dans l'amélioration de la sécurité et de la disponibilité de Debugger, mais nous ne prévoyons pas d'introduire de nouvelles fonctionnalités. Pour de plus amples informations, veuillez consulter Modification de la disponibilité du débogueur.

Pour configurer un estimateur SageMaker AI avec SageMaker Debugger, utilisez le SDK https://sagemaker.readthedocs.io/en/stable Amazon SageMaker Python et spécifiez les paramètres. Debugger-specific Pour utiliser pleinement la fonctionnalité de débogage, vous devez configurer trois paramètres : debugger_hook_config, tensorboard_output_config et rules.

Important

Avant de créer et d'exécuter la méthode d'ajustement de l'estimateur pour lancer une tâche d'entraînement, assurez-vous d'adapter votre script d'entraînement en suivant les instructions fournies dans Adaptation de votre script d’entraînement pour enregistrer un hook.

Construction d'un estimateur SageMaker AI avec des paramètres Debugger-specific

Les exemples de code de cette section montrent comment construire un estimateur SageMaker AI avec les Debugger-specific paramètres.

Note

Les exemples de code suivants sont des modèles permettant de construire les estimateurs du framework SageMaker AI et ne sont pas directement exécutables. Vous devez passer aux sections suivantes et configurer les Debugger-specific paramètres.

# An example of creating a training job with debugger configuration import boto3 from sagemaker.core import image_uris from sagemaker.core.resources import TrainingJob from sagemaker.core.shapes import ( AlgorithmSpecification, ResourceConfig, OutputDataConfig, StoppingCondition, DebugHookConfig, CollectionConfiguration, DebugRuleConfiguration, ) session=boto3.session.Session() region=session.region_name # Retrieve the training image for your framework # Change framework to "tensorflow", "mxnet", "xgboost", etc. as needed training_image = image_uris.retrieve( framework="pytorch", # or "tensorflow", "mxnet", "xgboost" region=region, version="1.12.0", py_version="py37", instance_type="ml.p3.2xlarge", image_scope="training" ) debug_hook_config=DebugHookConfig(...) debug_rule_configurations=[ DebugRuleConfiguration( rule_configuration_name="built_in_rule", rule_evaluator_image="rule-evaluator-image-uri", ) ] TrainingJob.create( training_job_name="debugger-demo", algorithm_specification=AlgorithmSpecification( training_image=training_image, training_input_mode="File", ), role_arn="arn:aws:iam::123456789012:role/SageMakerRole", resource_config=ResourceConfig(instance_type="ml.p3.2xlarge", instance_count=1, volume_size_in_gb=30), output_data_config=OutputDataConfig(s3_output_path="s3://bucket/output"), stopping_condition=StoppingCondition(max_runtime_in_seconds=3600), # Debugger-specific parameters debug_hook_config=debug_hook_config, debug_rule_configurations=debug_rule_configurations, )

Configurez les paramètres suivants pour activer SageMaker Debugger :

  • debugger_hook_config(un objet de DebuggerHookConfig) — Nécessaire pour activer le hook dans le script d'entraînement adapté pendantAdaptation de votre script d’entraînement pour enregistrer un hook, configurer le lanceur d' SageMaker entraînement (estimateur) pour collecter les tenseurs de sortie de votre tâche d'entraînement et enregistrer les tenseurs dans votre bucket S3 sécurisé ou votre machine locale. Pour savoir comment configurer le paramètre debugger_hook_config, consultez Configuration du SageMaker débogueur pour enregistrer les tenseurs.

  • rules(une liste d'Ruleobjets) — Configurez ce paramètre pour activer les règles intégrées du SageMaker débogueur que vous souhaitez exécuter en temps réel. Les règles intégrées sont des logiques qui déboguent automatiquement la progression de l'entraînement de votre modèle et détectent les problèmes d'entraînement en analysant les tenseurs de sortie enregistrés dans votre compartiment S3 sécurisé. Pour savoir comment configurer le paramètre rules, consultez Configuration des règles intégrées Debugger. Pour obtenir la liste complète des règles intégrées de débogage des tenseurs de sortie, consultez Règle Debugger. Si vous souhaitez créer votre propre logique pour détecter les problèmes d'entraînement, consultez Création de règles personnalisées à l’aide de la bibliothèque client Debugger.

    Note

    Les règles intégrées ne sont disponibles que via les instances SageMaker de formation. Vous ne pouvez pas les utiliser en mode local.

  • tensorboard_output_config(un objet de TensorBoardOutputConfig) — Configurez SageMaker Debugger pour collecter les tenseurs de sortie TensorBoard-compatible au format et les enregistrer sur votre chemin de sortie S3 spécifié dans l'objet. TensorBoardOutputConfig Pour en savoir plus, veuillez consulter la section Visualisez les tenseurs SageMaker de sortie d'Amazon Debugger dans TensorBoard.

    Note

    L'objet tensorboard_output_config doit être configuré avec le paramètre debugger_hook_config, ce qui vous oblige également à adapter votre script d'entraînement en ajoutant le hook sagemaker-debugger.

Note

SageMaker Debugger enregistre en toute sécurité les tenseurs de sortie dans les sous-dossiers de votre compartiment S3. Par exemple, le format de l'URI du compartiment S3 par défaut dans votre compte est s3://amzn-s3-demo-bucket-sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Il existe deux sous-dossiers créés par SageMaker Debugger :debug-output, et. rule-output Si vous ajoutez le paramètre tensorboard_output_config, vous trouverez également le dossier tensorboard-output.

Consultez les rubriques suivantes pour trouver d'autres exemples de configuration détaillée des Debugger-specific paramètres.