Utiliser les actions intégrées du Debugger pour les règles - 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.

Utiliser les actions intégrées du Debugger pour les règles

Utilisez les actions intégrées Debugger pour réagir aux problèmes détectés par Règle du débogueur. La rule_configs classe Debugger fournit des outils permettant de configurer une liste d'actions, notamment l'arrêt automatique des tâches de formation et l'envoi de notifications via Amazon Simple Notification Service SNS (Amazon) lorsque les règles du Debugger détectent des problèmes de formation. Les rubriques suivantes décrivent les étapes à suivre pour accomplir ces tâches.

Configurer AmazonSNS, créer un SMDebugRules sujet et s'y abonner

Cette section explique comment configurer un SNS SMDebugRules sujet Amazon, s'y abonner et confirmer l'abonnement pour recevoir les notifications des règles du Debugger.

Note

Pour plus d'informations sur la facturation pour AmazonSNS, consultez les sections SNS Tarification Amazon et Amazon SNS FAQs.

Pour créer une rubrique SMDebugRules
  1. Connectez-vous à la SNS console Amazon AWS Management Console et ouvrez-la sur https://console.aws.amazon.com/sns/v3/home.

  2. Dans le panneau de navigation de gauche, choisissez Rubriques.

  3. Sur la page Topics (Rubriques), choisissez Create new topic (Créer une rubrique).

  4. Sur la page Create ropic (Créer une rubrique), dans la section Details (Détails), procédez comme suit :

    1. Pour Type, choisissez Standard pour le type de rubrique.

    2. Pour Name (Nom), entrez SMDebugRules.

  5. Ignorez tous les autres paramètres facultatifs et choisissez Create topic (Créer une rubrique). Pour en savoir plus sur les paramètres facultatifs, consultez la section Création d'une SNS rubrique Amazon.

Pour vous abonner à la SMDebugRules rubrique

  1. Ouvrez la SNS console Amazon sur https://console.aws.amazon.com/sns/v3/home.

  2. Dans le volet de navigation de gauche, choisissez Abonnements.

  3. Sur la page Abonnements, choisissez Créer un abonnement.

  4. Sur la page Créer un abonnement, dans la section Détails, procédez comme suit :

    1. Dans le champ Sujet ARN, choisissez le SMDebugRulessujetARN. Ils ARN doivent être au format dearn:aws:sns:<region-id>:111122223333:SMDebugRules.

    2. Dans le champ Protocole, sélectionnez E-mail ou SMS.

    3. Pour Endpoint (Point de terminaison), saisissez la valeur du point de terminaison, telle qu'une adresse e-mail ou un numéro de téléphone, qui recevra les notifications.

      Note

      Assurez-vous de saisir l'adresse e-mail et le numéro de téléphone appropriés. Les numéros de téléphone doivent inclure +, un code pays et un numéro de téléphone, et ne doivent pas contenir de caractères spéciaux ni d'espaces. Par exemple, le numéro de téléphone +1 (222) 333-4444 est mis en forme comme suit : +12223334444.

  5. Ignorez tous les autres paramètres facultatifs et choisissez Create subscription (Créer un abonnement). Pour en savoir plus sur les paramètres facultatifs, consultez la section S'abonner à une SNS rubrique Amazon.

Après vous être inscrit au SMDebugRulessujet, vous recevez le message de confirmation suivant par e-mail ou par téléphone :

Un e-mail de confirmation d'abonnement pour le SNS SMDebugRulessujet Amazon.

Pour plus d'informations sur AmazonSNS, consultez les sections Messagerie texte mobile (SMS) et notifications par e-mail dans le manuel Amazon SNS Developer Guide.

Configurez votre IAM rôle pour associer les politiques requises

Au cours de cette étape, vous ajoutez les politiques requises à votre IAM rôle.

Pour ajouter les politiques requises à votre IAM rôle
  1. Connectez-vous à la IAM console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de gauche, choisissez Policies (Stratégies), puis Create policy (Créer une stratégie).

  3. Sur la page Create policy (Créer une stratégie), procédez comme suit pour créer une stratégie sns-access :

    1. Choisissez l'JSONonglet.

    2. Collez les JSON chaînes mises en gras dans le code suivant dans le"Statement", en remplaçant l'identifiant de AWS compte à 12 chiffres par votre identifiant de AWS compte.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sns:Publish", "sns:CreateTopic", "sns:Subscribe" ], "Resource": "arn:aws:sns:*:111122223333:SMDebugRules" } ] }
    3. En bas de la page, choisissez Review policy (Vérifier la stratégie).

    4. Sur la page Review policy (Vérifier la stratégie), pour Name (Nom), saisissez sns-access.

    5. En bas de la page, choisissez Create policy (Créer la stratégie).

  4. Retournez à la IAM console et choisissez Rôles dans le volet de navigation de gauche.

  5. Recherchez le IAM rôle que vous utilisez pour la formation des SageMaker modèles et IAM choisissez-le.

  6. Sous l'onglet Permissions (Autorisations) de la page Summary (Récapitulatif), choisissez Attach policies (Attacher des stratégies).

  7. Recherchez la stratégie sns-access, cochez la case en regard de la stratégie, puis choisissez Attach Policy (Attacher la stratégie).

Pour plus d'exemples de configuration de IAM politiques pour AmazonSNS, consultez Exemples de cas pour le contrôle SNS d'accès Amazon.

Configurer les règles du débogueur avec les actions intégrées

Après avoir terminé avec succès les paramètres requis dans les étapes précédentes, vous pouvez configurer les actions intégrées Debugger pour les règles de débogage, comme indiqué dans l'exemple de script suivant. Vous pouvez choisir les actions intégrées à utiliser lors de la création de l'objet de liste actions. rule_configs est un module d'assistance qui fournit des outils de haut niveau pour configurer les règles et actions intégrées Debugger. Les actions intégrées suivantes sont disponibles pour Debugger :

  • rule_configs.StopTraining() : arrête une tâche d'entraînement lorsque la règle Debugger détecte un problème.

  • rule_configs.Email("abc@abc.com") : envoie une notification par e-mail lorsque la règle Debugger détecte un problème. Utilisez l'adresse e-mail que vous avez utilisée lors de la configuration de votre abonnement au SNS sujet.

  • rule_configs.SMS("+1234567890") : envoie une notification par message texte lorsque la règle Debugger détecte un problème. Utilisez le numéro de téléphone que vous avez utilisé lors de la configuration de votre abonnement au SNS sujet.

    Note

    Assurez-vous de saisir l'adresse e-mail et le numéro de téléphone appropriés. Les numéros de téléphone doivent inclure +, un code pays et un numéro de téléphone, et ne doivent pas comporter de caractères spéciaux ni d'espaces. Par exemple, le numéro de téléphone +1 (222) 333-4444 est mis en forme comme suit : +12223334444.

Vous pouvez utiliser toutes les actions intégrées ou un sous-ensemble d'actions en les finalisant à l'aide de la méthode rule_configs.ActionList(), qui prend les actions intégrées et configure une liste d'actions.

Pour ajouter les trois actions intégrées à une seule règle

Si vous souhaitez affecter les trois actions intégrées à une seule règle, configurez une liste d'actions intégrées Debugger lorsque vous créez un estimateur. Utilisez le modèle suivant pour créer l'estimateur, et Debugger arrêtera les tâches d'entraînement et enverra des notifications par e-mail et SMS pour toutes les règles que vous utilisez afin de contrôler la progression de votre tâche d'entraînement.

from sagemaker.debugger import Rule, rule_configs # Configure an action list object for Debugger rules actions = rule_configs.ActionList( rule_configs.StopTraining(), rule_configs.Email("abc@abc.com"), rule_configs.SMS("+1234567890") ) # Configure rules for debugging with the actions parameter rules = [ Rule.sagemaker( base_config=rule_configs.built_in_rule(), # Required rule_parameters={"paramter_key": value }, # Optional actions=actions ) ] estimator = Estimator( ... rules = rules ) estimator.fit(wait=False)

Pour créer plusieurs objets d'action intégrée et affecter différentes actions à une seule règle

Si vous souhaitez affecter les actions intégrées à déclencher à différentes valeurs de seuil d'une seule règle, vous pouvez créer plusieurs objets d'action intégrée comme indiqué dans le script suivant. Pour éviter une erreur de conflit en exécutant la même règle, vous devez envoyer des noms de tâche de règle différents (spécifiez des chaînes différentes pour l'attribut name des règles) comme illustré dans l'exemple de modèle de script suivant. Cet exemple vous montre comment configurer StalledTrainingRule pour effectuer deux actions différentes : envoyer un e-mail à abc@abc.com lorsqu'une tâche d'entraînement se bloque pendant 60 secondes, et arrêter la tâche d'entraînement en cas de blocage pendant 120 secondes.

from sagemaker.debugger import Rule, rule_configs import time base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) # Configure an action object for StopTraining action_stop_training = rule_configs.ActionList( rule_configs.StopTraining() ) # Configure an action object for Email action_email = rule_configs.ActionList( rule_configs.Email("abc@abc.com") ) # Configure a rule with the Email built-in action to trigger if a training job stalls for 60 seconds stalled_training_job_rule_email = Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "60", "training_job_name_prefix": base_job_name_prefix }, actions=action_email ) stalled_training_job_rule_text.name="StalledTrainingJobRuleEmail" # Configure a rule with the StopTraining built-in action to trigger if a training job stalls for 120 seconds stalled_training_job_rule = Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "120", "training_job_name_prefix": base_job_name_prefix }, actions=action_stop_training ) stalled_training_job_rule.name="StalledTrainingJobRuleStopTraining" estimator = Estimator( ... rules = [stalled_training_job_rule_email, stalled_training_job_rule] ) estimator.fit(wait=False)

Lorsque la tâche d'entraînement est en cours d'exécution, l'action intégrée Debugger envoie des notifications par e-mail et SMS chaque fois que la règle détecte des problèmes avec votre tâche d'entraînement. La capture d'écran suivante montre un exemple de notification par e-mail pour une tâche d'entraînement qui présente un problème de blocage de tâche d'entraînement.

Exemple de notification par e-mail envoyée par Debugger lorsqu'il détecte un StalledTraining problème.

La capture d'écran suivante montre un exemple de notification texte que Debugger envoie lorsque la règle détecte un StalledTraining problème.

Exemple de notification texte envoyée par Debugger lorsqu'il détecte un StalledTraining problème.

Considérations relatives à l'utilisation des actions intégrées du Debugger

  • Pour utiliser les actions intégrées Debugger, une connexion Internet est requise. Cette fonctionnalité n'est pas prise en charge dans le mode d'isolation réseau fourni par Amazon SageMaker ou AmazonVPC.

  • Les actions intégrées ne peuvent pas être utilisées pour Règles du profileur.

  • Les actions intégrées ne peuvent pas être utilisées sur les tâches d'entraînement avec des interruptions d'entraînement ponctuelles.

  • Dans les notifications par e-mail ou par SMS, None apparaît à la fin des messages. Cela n'a aucune signification, vous pouvez donc ignorer le texte None.