Actions intégrées Debugger pour les règles - Amazon SageMaker

Actions intégrées Debugger pour les règles

Utilisez les actions intégrées Debugger pour réagir aux problèmes détectés par Règle Debugger. La classe rule_configs Debugger fournit des outils pour configurer une liste d'actions, y compris l'arrêt automatique des tâches d'entraînement et l'envoi de notifications à l'aide d'Amazon Simple Notification Service (Amazon SNS) lorsque les règles Debugger détectent des problèmes d'entraînement.

Étape 1 : Configurer Amazon SNS, créer une rubrique SMDebugRules et s'abonner à la rubrique

Cette section explique comment configurer une rubrique SMDebugRules Amazon SNS, vous abonner à celle-ci et confirmer l'abonnement pour recevoir les notifications des règles Debugger.

Note

Pour plus d'informations sur la facturation d'Amazon SNS, consultez Tarification Amazon SNS et FAQ sur Amazon SNS.

Pour créer une rubrique SMDebugRules

  1. Connectez-vous à AWS Management Console et ouvrez la console Amazon SNS à l'adresse 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 Création d'une rubrique Amazon SNS.

Pour vous abonner à la rubrique SMDebugRules

  1. Ouvrez la console Amazon SNS à partir de l'adresse https://console.aws.amazon.com/sns/v3/home.

  2. Dans le volet de navigation de gauche, choisissez Subscriptions (Abonnements).

  3. Sur la page Subscriptions (Abonnements), choisissez Create subscription (Créer un abonnement).

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

    1. Pour Topic ARN (ARN de rubrique), choisissez l'ARN de rubrique SMDebugRules. L'ARN doit avoir le format arn:aws:sns:<region-id>:111122223333:SMDebugRules.

    2. Pour Protocol (Protocole), choisissez Email (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 Abonnement à une rubrique Amazon SNS.

Une fois que vous vous êtes abonné à la rubrique SMDeBugRules, vous recevez le message de confirmation suivant par e-mail ou par téléphone :


                    E-mail de confirmation d'abonnement à la rubrique Amazon SNS SMDebugRules.

Pour de plus amples informations sur Amazon SNS, veuillez consulter Mobile text messaging (SMS) et Email notifications dans le Guide du développeur Amazon SNS.

Étape 2 : Configurer votre rôle IAM pour attacher les stratégies requises

Dans cette étape, vous ajoutez les stratégies requises à votre rôle IAM.

Pour ajouter les stratégies requises à votre rôle IAM

  1. Connectez-vous à la AWS Management Console et ouvrez la console IAM à 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'onglet JSON.

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

      { "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. Accédez à la console IAM et choisissez Roles (Rôles) dans le panneau de navigation de gauche.

  5. Recherchez le rôle IAM que vous utilisez pour l'entraînement du modèle SageMaker et 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 voir d'autres exemples de configuration de stratégies IAM pour Amazon SNS, consultez Exemples de cas pour le contrôle d'accès Amazon SNS.

Étape 3 : Configurer les règles Debugger 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 à rubrique SNS.

  • 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 à la rubrique SNS.

    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 problème StalledTraining.

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


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

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

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

  • Les actions intégrées ne peuvent pas être utilisées pour Règle de profilage Debugger.

  • 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.