Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Configurer Debugger pour la fin automatique des tâches de formation à l'aide CloudWatch de Lambda

Mode de mise au point
Configurer Debugger pour la fin automatique des tâches de formation à l'aide CloudWatch de Lambda - 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.

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.

Les règles du Debugger surveillent l'état des tâches de formation, tandis qu'une règle d' CloudWatch événements surveille l'état d'évaluation des tâches de formation des règles Debugger. Les sections suivantes décrivent le processus nécessaire pour automatiser la fin des tâches de formation à l'aide de Lambda CloudWatch et de Lambda.

Étape 1 : Créer une fonction Lambda

Pour créer une fonction Lambda
  1. Ouvrez la AWS Lambda console à l'adresse https://console.aws.amazon.com/lambda/.

  2. Dans le panneau de navigation, choisissez Functions (Fonctions), puis Create function (Créer une fonction).

  3. Sur la page Create function (Créer une fonction), choisissez l'option Author from scratch (Créer à partir de zéro).

  4. Dans la section Informations de base, entrez le nom d'une fonction (par exemple, debugger-rule-stop-training-job).

  5. Pour Runtime, sélectionnez Python 3.7.

  6. Pour Permissions (Autorisations), développez la liste d'options déroulante et choisissez Change default execution role (Modifier le rôle d'exécution par défaut).

  7. Pour le rôle d'exécution, choisissez Utiliser un rôle existant et choisissez le rôle IAM que vous utilisez pour les tâches de formation sur l' SageMaker IA.

    Note

    Assurez-vous d'utiliser le rôle d'exécution avec AmazonSageMakerFullAccess et AWSLambdaBasicExecutionRole attachées. Sinon, la fonction Lambda ne réagira pas correctement aux changements de statut de la règle Debugger de la tâche d'entraînement. Si vous ne savez pas quel rôle d'exécution est utilisé, exécutez le code suivant dans une cellule de bloc-notes Jupyter pour récupérer la sortie du rôle d'exécution :

    import sagemaker sagemaker.get_execution_role()
  8. Dans le bas de la page, choisissez Create function.

La figure suivante illustre un exemple de page Create function (Créer une fonction) avec les champs de saisie et les sélections remplis.

Page Create function (Créer une fonction).

Etape 2 : Configurer la fonction Lambda

Pour configurer la fonction Lambda
  1. Dans la section Function code (Code de fonction) de la page de configuration, collez le script Python suivant dans le volet de l'éditeur de code Lambda. La lambda_handler fonction surveille l'état d'évaluation des règles du débogueur collecté par l'StopTrainingJobAPI CloudWatch et déclenche l'opération. Le AWS SDK for Python (Boto3) client for SageMaker AI fournit une méthode de haut niveaustop_training_job, qui déclenche le fonctionnement de l'StopTrainingJobAPI.

    import json import boto3 import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): training_job_name = event.get("detail").get("TrainingJobName") logging.info(f'Evaluating Debugger rules for training job: {training_job_name}') eval_statuses = event.get("detail").get("DebugRuleEvaluationStatuses", None) if eval_statuses is None or len(eval_statuses) == 0: logging.info("Couldn't find any debug rule statuses, skipping...") return { 'statusCode': 200, 'body': json.dumps('Nothing to do') } # should only attempt stopping jobs with InProgress status training_job_status = event.get("detail").get("TrainingJobStatus", None) if training_job_status != 'InProgress': logging.debug(f"Current Training job status({training_job_status}) is not 'InProgress'. Exiting") return { 'statusCode': 200, 'body': json.dumps('Nothing to do') } client = boto3.client('sagemaker') for status in eval_statuses: logging.info(status.get("RuleEvaluationStatus") + ', RuleEvaluationStatus=' + str(status)) if status.get("RuleEvaluationStatus") == "IssuesFound": secondary_status = event.get("detail").get("SecondaryStatus", None) logging.info( f'About to stop training job, since evaluation of rule configuration {status.get("RuleConfigurationName")} resulted in "IssuesFound". ' + f'\ntraining job "{training_job_name}" status is "{training_job_status}", secondary status is "{secondary_status}"' + f'\nAttempting to stop training job "{training_job_name}"' ) try: client.stop_training_job( TrainingJobName=training_job_name ) except Exception as e: logging.error( "Encountered error while trying to " "stop training job {}: {}".format( training_job_name, str(e) ) ) raise e return None

    Pour plus d'informations sur l'interface de l'éditeur de code Lambda, voir Création de fonctions à l'aide de l'éditeur de console AWS Lambda.

  2. Ignorez tous les autres paramètres et choisissez Save (Enregistrer) en haut de la page de configuration.

Étape 3 : créer une règle d' CloudWatch événements et un lien vers la fonction Lambda pour Debugger

Pour créer une règle d' CloudWatch événements et créer un lien vers la fonction Lambda pour Debugger
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation de gauche, choisissez Rules (Règles) sous le nœud Events (Événements).

  3. Choisissez Créer une règle.

  4. Dans la section Source de l'événement de la page Étape 1 : Créer une règle, choisissez SageMaker AI pour le nom du service, puis choisissez SageMaker AI Training Job State Change pour le type d'événement. La prévisualisation du modèle d'événement doit ressembler à l'exemple de chaînes JSON suivant :

    { "source": [ "aws.sagemaker" ], "detail-type": [ "SageMaker Training Job State Change" ] }
  5. Dans la section Targets, choisissez Add target*, puis choisissez la debugger-rule-stop-trainingfonction Lambda -job que vous avez créée. Cette étape lie la règle CloudWatch Events à la fonction Lambda.

  6. Choisissez Configure details (Configurer les détails) et accédez à la page Step 2: Configure rule details (Étape 2 : Configurer les détails de la règle).

  7. Spécifiez le nom de la définition de CloudWatch règle. Par exemple, debugger-cw-event-rule.

  8. Choisissez Create rule (Créer la règle) pour terminer.

  9. Revenez dans la page de configuration de la fonction Lambda et actualisez la page. Vérifiez qu'elle est correctement configurée dans le panneau Designer (Concepteur). La règle CloudWatch Events doit être enregistrée comme déclencheur pour la fonction Lambda. La conception de configuration doit ressembler à l'exemple suivant :

    Panneau de conception pour la CloudWatch configuration.
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.