Verwenden Sie die im Debugger integrierten Aktionen für Regeln - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie die im Debugger integrierten Aktionen für Regeln

Verwenden Sie die integrierten Debuger-Aktionen, um auf Probleme zu reagieren, die von Debugger-Regel gefunden wurden. Die rule_configs Debugger-Klasse bietet Tools zum Konfigurieren einer Liste von Aktionen, darunter das automatische Stoppen von Trainingsaufträgen und das Senden von Benachrichtigungen mithilfe von Amazon Simple Notification Service (AmazonSNS), wenn die Debugger-Regeln Trainingsprobleme feststellen. Die folgenden Themen führen Sie durch die Schritte zur Ausführung dieser Aufgaben.

Amazon einrichtenSNS, ein SMDebugRules Thema erstellen und das Thema abonnieren

In diesem Abschnitt erfahren Sie, wie Sie ein SNS SMDebugRules Amazon-Thema einrichten, es abonnieren und das Abonnement bestätigen, um Benachrichtigungen von den Debugger-Regeln zu erhalten.

Anmerkung

Weitere Informationen zur Abrechnung für Amazon finden Sie SNS unter SNSAmazon-Preise und Amazon SNS FAQs.

So erstellen Sie ein SMDebugRules-Thema
  1. Melden Sie sich bei https://console.aws.amazon.com/sns/v3/home an AWS Management Console und öffnen Sie die SNS Amazon-Konsole.

  2. Wählen Sie im linken Navigationsbereich Topics (Themen).

  3. Wählen Sie auf der Seite Topics (Themen) Create New Topic (Neues Thema erstellen) aus.

  4. Führen Sie auf der Seite Create subscription (Abonnement erstellen) im Abschnitt Details die folgenden Schritte aus:

    1. Wählen Sie als Typ die Option Standard als Thementyp aus.

    2. Geben Sie unter Name SMDebugRules ein.

  5. Überspringen Sie alle anderen optionalen Einstellungen und wählen Sie Thema erstellen. Weitere Informationen zu den optionalen Einstellungen finden Sie unter Ein SNS Amazon-Thema erstellen.

Um das SMDebugRules Thema zu abonnieren

  1. Öffnen Sie die SNS Amazon-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie im linken Navigationsbereich Subscriptions (Abonnements).

  3. Wählen Sie auf der Seite Subscriptions (Abonnements) die Option Create subscription (Abonnement erstellen)aus.

  4. Führen Sie auf der Seite Create subscription (Abonnement erstellen) im Abschnitt Details die folgenden Schritte aus:

    1. Wählen Sie unter Thema ARN das Thema aus. SMDebugRulesARN Das ARN sollte das Format von habenarn:aws:sns:<region-id>:111122223333:SMDebugRules.

    2. Wählen Sie für Protokoll die Option E-Mail oder SMS.

    3. Für Endpunkt, geben Sie den Endpunktwert ein, wie z. B. eine E-Mail-Adresse oder eine Telefonnummer, über die Benachrichtigungen erhalten sollen.

      Anmerkung

      Vergewissern Sie sich, dass Sie die richtige E-Mail-Adresse und Telefonnummer eingeben. Telefonnummern müssen +, eine Landesvorwahl und eine Telefonnummer ohne Sonderzeichen oder Leerzeichen enthalten. Die Telefonnummer +1 (222) 333-4444 ist beispielsweise formatiert als +12223334444.

  5. Überspringen Sie alle anderen optionalen Einstellungen und wählen Sie Abonnement erstellen. Weitere Informationen zu den optionalen Einstellungen finden Sie unter Abonnieren eines SNS Amazon-Themas.

Nachdem Sie das SMDebugRulesThema abonniert haben, erhalten Sie die folgende Bestätigungsnachricht per E-Mail oder Telefon:

Eine E-Mail-Nachricht zur Bestätigung des Abonnements für das SNS SMDebugRulesAmazon-Thema.

Weitere Informationen zu Amazon SNS finden Sie unter SMS-Nachrichten für Mobilgeräte (SMS) und E-Mail-Benachrichtigungen im Amazon SNS Developer Guide.

Richten Sie Ihre IAM Rolle so ein, dass die erforderlichen Richtlinien angehängt werden

In diesem Schritt fügen Sie Ihrer IAM Rolle die erforderlichen Richtlinien hinzu.

Um die erforderlichen Richtlinien zu Ihrer IAM Rolle hinzuzufügen
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Policies (Richtlinien) und anschließend Create Policy (Richtlinie erstellen) aus.

  3. Gehen Sie auf der Seite Richtlinie erstellen wie folgt vor, um eine neue SNS-Zugriffsrichtlinie zu erstellen:

    1. Wählen Sie die JSONRegisterkarte.

    2. Fügen Sie die im folgenden Code fett formatierten JSON Zeichenketten in die ein und ersetzen Sie dabei die "Statement" 12-stellige AWS Konto-ID durch Ihre AWS Konto-ID.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sns:Publish", "sns:CreateTopic", "sns:Subscribe" ], "Resource": "arn:aws:sns:*:111122223333:SMDebugRules" } ] }
    3. Wählen Sie unten auf der Seite die Option Richtlinie überprüfen.

    4. Geben Sie auf der Seite Create policy (Richtlinie erstellen) für Name sns-access ein.

    5. Wählen Sie unten auf der Seite Create policy (Richtlinie erstellen) aus.

  4. Kehren Sie zur IAM Konsole zurück und wählen Sie im linken Navigationsbereich Rollen aus.

  5. Suchen Sie nach der IAM Rolle, die Sie für das SageMaker Modelltraining verwenden, und wählen Sie diese IAM Rolle aus.

  6. Wählen Sie auf der Übersichtsseite auf der Registerkarte Berechtigungen die Option Richtlinien anhängen aus.

  7. Suchen Sie nach der sns-Zugriffsrichtlinie, aktivieren Sie das Kontrollkästchen neben der Richtlinie, und wählen Sie dann Richtlinie anhängen.

Weitere Beispiele für die Einrichtung von IAM Richtlinien für Amazon SNS finden Sie unter Beispielfälle für Amazon SNS Access Control.

Konfigurieren Sie Debugger-Regeln mit den integrierten Aktionen

Nachdem Sie die erforderlichen Einstellungen in den vorherigen Schritten erfolgreich abgeschlossen haben, können Sie die integrierten Debugger-Aktionen für Debugging-Regeln konfigurieren, wie im folgenden Beispielskript gezeigt. Sie können wählen, welche integrierten Aktionen beim Erstellen des actions Listenobjekts verwendet werden sollen. Das rule_configs ist ein Hilfsmodul, das Tools auf hoher Ebene zur Konfiguration der im Debugger integrierten Regeln und Aktionen bereitstellt. Die folgenden integrierten Aktionen sind für Debugger verfügbar:

  • rule_configs.StopTraining()– Stoppt einen Trainingsjob, wenn die Debugger-Regel ein Problem feststellt.

  • rule_configs.Email("abc@abc.com")– Sendet eine Benachrichtigung per E-Mail, wenn die Debugger-Regel ein Problem feststellt. Verwenden Sie die E-Mail-Adresse, die Sie bei der Einrichtung Ihres SNS Themenabonnements verwendet haben.

  • rule_configs.SMS("+1234567890")– Sendet eine Benachrichtigung per Textnachricht, wenn die Debugger-Regel ein Problem feststellt. Verwenden Sie die Telefonnummer, die Sie bei der Einrichtung Ihres SNS Themenabonnements verwendet haben.

    Anmerkung

    Vergewissern Sie sich, dass Sie die richtige E-Mail-Adresse und Telefonnummer eingeben. Telefonnummern müssen +, eine Landesvorwahl und eine Telefonnummer ohne Sonderzeichen oder Leerzeichen enthalten. Die Telefonnummer +1 (222) 333-4444 ist beispielsweise formatiert als +12223334444.

Sie können alle integrierten Aktionen oder eine Teilmenge von Aktionen verwenden, indem Sie zum Abschluss die rule_configs.ActionList() Methode verwenden, die die integrierten Aktionen übernimmt und eine Liste von Aktionen konfiguriert.

Um alle drei integrierten Aktionen zu einer einzigen Regel hinzuzufügen

Wenn Sie alle drei integrierten Aktionen einer einzigen Regel zuweisen möchten, konfigurieren Sie bei der Erstellung eines Schätzers eine Liste der integrierten Debuger-Aktionen. Verwenden Sie die folgende Vorlage, um den Schätzer zu erstellen, und der Debugger beendet die Trainingsjobs und sendet Benachrichtigungen per E-Mail und Text für alle Regeln, die Sie zur Überwachung des Fortschritts Ihrer Trainingsaufgabe verwenden.

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)

Um mehrere integrierte Aktionsobjekte zu erstellen, um einer einzelnen Regel verschiedene Aktionen zuzuweisen

Wenn Sie die integrierten Aktionen so zuweisen möchten, dass sie bei unterschiedlichen Schwellenwerten einer einzelnen Regel ausgelöst werden, können Sie mehrere integrierte Aktionsobjekte erstellen, wie im folgenden Skript gezeigt. Um einen Konfliktfehler durch die Ausführung derselben Regel zu vermeiden, müssen Sie unterschiedliche Regelauftragsnamen einreichen (geben Sie unterschiedliche Zeichenfolgen für das name Regelattribut an), wie in der folgenden Beispielskriptvorlage gezeigt. Dieses Beispiel zeigt, wie man StalledTrainingRule so einrichtet, dass es zwei verschiedene Aktionen durchführt: eine E-Mail an abc@abc.com senden, wenn ein Trainingsauftrag 60 Sekunden lang blockiert, und den Trainingsauftrag stoppen, wenn er 120 Sekunden lang blockiert.

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)

Während der Trainingsjob ausgeführt wird, sendet die integrierte Debuger-Aktion Benachrichtigungs-E-Mails und Textnachrichten, wenn die Regel Probleme mit Ihrem Trainingsjob feststellt. Der folgende Screenshot zeigt ein Beispiel für eine E-Mail-Benachrichtigung für einen Trainingsjob, bei dem das Problem mit der Trainingsaufgabe blockiert wurde.

Ein Beispiel für eine E-Mail-Benachrichtigung, die vom Debugger gesendet wird, wenn ein StalledTraining Problem erkannt wird.

Der folgende Screenshot zeigt ein Beispiel für eine Textbenachrichtigung, die der Debugger sendet, wenn die Regel ein StalledTraining Problem feststellt.

Ein Beispiel für eine Textbenachrichtigung, die vom Debugger gesendet wird, wenn ein StalledTraining Problem erkannt wird.

Überlegungen zur Verwendung der integrierten Debuger-Aktionen

  • Um die integrierten Debuger-Aktionen verwenden zu können, ist eine Internetverbindung erforderlich. Diese Funktion wird im Netzwerkisolationsmodus von Amazon SageMaker oder Amazon nicht unterstütztVPC.

  • Die integrierten Aktionen können nicht für Profiler-Regeln verwendet werden.

  • Die integrierten Aktionen können nicht für Trainingsaufgaben mit punktuellen Trainingsunterbrechungen verwendet werden.

  • In den E-Mail- oder Textbenachrichtigungen erscheint None am Ende der Nachrichten. Dies hat keine Bedeutung, sodass Sie den Text None ignorieren können.