Integrierte Debugger-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.

Integrierte Debugger-Aktionen für Regeln

Verwenden Sie integrierte Debugger-Aktionen, um auf Probleme zu reagieren, die vonDebugger-Regelaus. Der Debuggerrule_configsclass bietet Tools zum Konfigurieren einer Liste von Aktionen, einschließlich des automatischen Stoppens von Schulungsaufträgen und dem Senden von Benachrichtigungen über den Amazon Simple Notification Service (Amazon SNS), wenn die Debugger-Regeln Schulungsprobleme finden.

Schritt 1: So richten Sie Amazon SNS ein, erstellen Sie ein SMDEBUGules-Thema und Abonnieren eines -Themas

In diesem Abschnitt werden Sie erläutert, wie Sie ein Amazon SNS einrichtenSMDebugRulesThema, abonnieren Sie es und bestätigen Sie das Abonnement, um Benachrichtigungen von den Debugger-Regeln zu erhalten.

Anmerkung

Weitere Informationen zur Fakturierung von Amazon SNS finden Sie unterAmazon SNS SN-PreisgestaltungundHäufig gestellte Fragen zu Amazon SNSaus.

So erstellen Sie ein SmDebuGrules-Thema

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

  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. FürTyp, wählenStandard-für Thementyp.

    2. Geben Sie unter Name SMDebugRules ein.

  5. Überspringen Sie alle anderen optionalen Einstellungen und wählen SieErstellen eines Themasaus. Informationen dazu, dass Sie mehr über die optionalen Einstellungen nutzen, finden Sie unterErstellen Sie ein Amazon SNS-Themaaus.

So abonnieren Sie das Thema SMDEBUGRULES

  1. Öffnen Sie die Amazon SNS-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. Für-Thema-ARN, wähle dassmdebugrules-Thema ARN. Der ARN sollte im Format vonarn:aws:sns:<region-id>:111122223333:SMDebugRulesaus.

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

    3. Für-Endpunkt, geben Sie den Endpunktwert ein, z. B. eine E-Mail-Adresse oder eine Telefonnummer, die Sie erhalten möchten.

      Anmerkung

      Geben Sie sicher, dass Sie die richtige E-Mail-Adresse und Telefonnummer eingeben. Telefonnummern müssen enthalten+, eine Landesvorwahl und Telefonnummer ohne Sonderzeichen oder Leerzeichen. Zum Beispiel ist die Telefonnummer +1 (222) 333-4444 als formatiert+12223334444aus.

  5. Überspringen Sie alle anderen optionalen Einstellungen und wählen SieErstellen eines Abonnementsaus. Informationen dazu, dass Sie mehr über die optionalen Einstellungen nutzen, finden Sie unterAbonnieren eines Amazon-SNS-Themasaus.

Nachdem Sie den Eintrag abonniert habensmdebugrules-Thema erhalten Sie die folgende Bestätigungsnachricht per E-Mail oder Telefon:


                    Eine E-Mail zur Bestätigung des Abonnements für das Amazon SNSsmdebugrules-Thema.

Weitere Informationen zu Amazon SNS finden Sie unterText-Messaging (SMS)undE-Mail-BenachrichtigungenimEntwicklerhandbuch von Amazon SNSaus.

Schritt 2: Richten Sie Ihre IAM-Rolle ein, um erforderliche Richtlinien anzuhängen

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

So fügen Sie die erforderlichen Richtlinien zu Ihrer IAM-Rolle hinzu

  1. Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich die OptionRichtlinien, und wählen SieRichtlinie erstellenaus.

  3. Auf derRichtlinie erstellenGehen Sie wie folgt vor, um eine neue SNS-Zugriffsrichtlinie zu erstellen:

    1. Wählen Sie den Tab JSON.

    2. Fügen Sie die im folgenden Code fett formatierten JSON-Zeichenfolgen in die"Statement", ersetzt die 12-stelligeAWSIhre -Konto-IDAWS-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 ausReview policyaus.

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

    5. Wählen Sie unten auf der Seite ausRichtlinie erstellenaus.

  4. Wechseln Sie zurück zur IAM-Konsole und wählen SieRollenim linken Navigationsbereich.

  5. Schauen Sie sich die IAM-Rolle an, die Sie für das SageMaker-Modelltraining verwenden, und wählen Sie diese IAM-Rolle.

  6. Auf derBerechtigungenRegisterkartedesÜbersicht-Seite wählenRichtlinien anfügenaus.

  7. Suchen Sie nach demsns-ZugriffAktivieren Sie das Kontrollkästchen neben der Richtlinie, und wählen Sie dannRichtlinie anfügenaus.

Weitere Beispiele zum Einrichten von IAM-Richtlinien für Amazon SNS finden Sie unterBeispiele für die Zugriffskontrolle in Amazon SNSaus.

Schritt 3: Konfigurieren Sie Debuggerregeln 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 auswählen, welche integrierten Aktionen beim Erstellen desactionslisten-Objekt. Dierule_configsist ein Hilfsmodul, das hochrangige Tools zum Konfigurieren integrierter Regeln und Aktionen im Debugger bereitstellt. Für Debugger stehen folgende integrierte Aktionen zur Verfügung:

  • rule_configs.StopTraining()— Stoppt einen Schulungsauftrag, wenn die Debugger-Regel ein Problem findet.

  • rule_configs.Email("abc@abc.com")— Sendet eine Benachrichtigung per E-Mail, wenn die Debugger-Regel ein Problem findet. Verwenden Sie die E-Mail-Adresse, die Sie beim Einrichten Ihres SNS-Themas verwendet haben.

  • rule_configs.SMS("+1234567890")— Sendet eine Benachrichtigung per SMS, wenn die Debugger-Regel ein Problem findet. Verwenden Sie die Telefonnummer, die Sie beim Einrichten Ihres SNS-Themen-Abonnements verwendet haben.

    Anmerkung

    Geben Sie sicher, dass Sie die richtige E-Mail-Adresse und Telefonnummer eingeben. Telefonnummern müssen enthalten+, eine Landesvorwahl und eine Telefonnummer ohne Sonderzeichen oder Leerzeichen. Zum Beispiel ist die Telefonnummer +1 (222) 333-4444 als formatiert+12223334444aus.

Sie können alle integrierten Aktionen oder eine Teilmenge von Aktionen verwenden, indem Sie dierule_configs.ActionList()-Methode, die die integrierten Aktionen durchführt und eine Liste von Aktionen konfiguriert.

So fügen Sie alle drei integrierten Aktionen einer einzigen Regel hinzu

Wenn Sie alle drei integrierten Aktionen einer einzigen Regel zuweisen möchten, konfigurieren Sie eine integrierte Aktionsliste für Debugger, während Sie einen Schätzer erstellen. Verwenden Sie die folgende Vorlage, um den Schätzer zu erstellen, und Debugger stoppt die Schulungsaufträge und sendet Benachrichtigungen per E-Mail und Text für alle Regeln, die Sie verwenden, um den Fortschritt Ihres Schulungsauftrags zu überwachen.

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)

So erstellen Sie mehrere integrierte Aktionsobjekte, um einer einzelnen Regel verschiedene Aktionen zuzuweisen

Wenn Sie die integrierten Aktionen zuweisen möchten, die bei verschiedenen Schwellenwerten einer einzelnen Regel ausgelöst werden sollen, können Sie mehrere integrierte Aktionsobjekte erstellen, wie im folgenden Skript gezeigt. Um einen Konfliktfehler durch Ausführen derselben Regel zu vermeiden, müssen Sie verschiedene Regelauftragsnamen angeben (geben Sie verschiedene Zeichenfolgen für die Regeln an“name-Attribut) wie in der folgenden Beispiel-Skriptvorlage gezeigt. Dieses Beispiel veranschaulicht, wie man einrichtetStalledTrainingRuleum zwei verschiedene Aktionen zu ergreifen: Senden Sie eine E-Mail anabc@abc.comwenn ein Trainingsjob 60 Sekunden lang zum Stillstand kommt und den Trainingsjob stoppt, wenn er 120 Sekunden lang ins Stocken gerät.

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 Schulungsauftrag läuft, sendet die integrierte Debugger-Aktion Benachrichtigungs-E-Mails und Textnachrichten, wenn die Regel Probleme mit Ihrem Trainingsjob findet. Der folgende Screenshot zeigt ein Beispiel für eine E-Mail-Benachrichtigung für einen Schulungsjob, bei dem ein Problem mit dem Schulungsauftrag ins Stocken geraten ist.


                    Eine Beispiel-E-Mail-Benachrichtigung, die von Debugger gesendet wurde, wenn ein StalledTraining-Problem erkannt wird.

Der folgende Screenshot zeigt eine Beispieltext-Benachrichtigung, die Debugger sendet, wenn die Regel ein StalledTraining-Problem findet.


                    Eine Beispieltext-Benachrichtigung, die von Debugger gesendet wird, wenn ein StalledTraining-Problem erkannt wird.

Überlegungen zur Verwendung der integrierten Debugger-Aktionen

  • Um die integrierten Debugger-Aktionen verwenden zu können, ist eine Internetverbindung erforderlich. Diese Funktion wird im von Amazon SageMaker oder Amazon VPC bereitgestellten Netzwerkisolierungsmodus nicht unterstützt.

  • Die integrierten Aktionen können nicht verwendet werdenDebugger-ProfilerRuleaus.

  • Die integrierten Aktionen können nicht für Ausbildungsjobs mit Unterbrechungen im Spot-Training verwendet werden.

  • In E-Mail- oder TextbenachrichtigungenNoneerscheint am Ende von Nachrichten. Dies hat keine Bedeutung, also können Sie den Text ignorierenNoneaus.