Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Richten Sie den Debugger für die automatische Beendigung von Trainingsjobs mithilfe von Lambda CloudWatch ein

Fokusmodus
Richten Sie den Debugger für die automatische Beendigung von Trainingsjobs mithilfe von Lambda CloudWatch ein - Amazon SageMaker KI

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.

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.

Die Debugger-Regeln überwachen den Status des Trainingsauftrags, und eine CloudWatch Ereignisregel überwacht den Bewertungsstatus des Trainingsauftrags der Debugger-Regel. In den folgenden Abschnitten wird der Prozess beschrieben, der zur Automatisierung der Beendigung von Schulungsjobs mithilfe von Using CloudWatch und Lambda erforderlich ist.

Schritt 1: Erstellen einer Lambda-Funktion

Eine Lambda-Funktion erstellen
  1. Öffnen Sie die AWS Lambda Konsole unter. https://console.aws.amazon.com/lambda/

  2. Wählen Sie im linken Navigationsbereich Funktionen und dann Funktion anlegen.

  3. Wählen Sie auf der Seite Funktion erstellen die Option Autor von Grund auf neu.

  4. Geben Sie im Abschnitt Grundinformationen einen Funktionsnamen ein (z. B. debugger-rule-stop-training-job).

  5. Wählen Sie für Runtime (Laufzeit) die Option Python 3.7 aus.

  6. Erweitern Sie für Berechtigungen die Dropdownoption und wählen Sie Standardausführungsrolle ändern aus.

  7. Wählen Sie für Ausführungsrolle die Option Bestehende Rolle verwenden und wählen Sie die IAM-Rolle aus, die Sie für Schulungsaufgaben auf SageMaker KI verwenden.

    Anmerkung

    Stellen Sie sicher, dass Sie die Ausführungsrolle zusammen mit AmazonSageMakerFullAccess und AWSLambdaBasicExecutionRole angehängt verwenden. Andernfalls reagiert die Lambda-Funktion nicht richtig auf die Statusänderungen der Debugger-Regel des Trainingsjobs. Wenn Sie sich nicht sicher sind, welche Ausführungsrolle verwendet wird, führen Sie den folgenden Code in einer Jupyter-Notebook-Zelle aus, um die Ausgabe der Ausführungsrolle abzurufen:

    import sagemaker sagemaker.get_execution_role()
  8. Klicken Sie unten auf der Seite auf Create function.

Die folgende Abbildung zeigt ein Beispiel für die Seite Funktion erstellen, auf der die Eingabefelder und Auswahlen abgeschlossen sind.

Seite Funktion erstellen.

Schritt 2: Konfigurieren der Lambda-Funktion

Um die Lambda-Funktion zu konfigurieren
  1. Fügen Sie im Abschnitt Funktionscode der Konfigurationsseite das folgende Python-Skript in den Bereich des Lambda-Code-Editors ein. Die lambda_handler Funktion überwacht den Evaluierungsstatus der Debugger-Regel, der von der API-Operation erfasst wurde, CloudWatch und löst den StopTrainingJob API-Vorgang aus. Die AWS SDK for Python (Boto3) client for SageMaker AI bietet eine Methode auf hoher Ebenestop_training_job, die den StopTrainingJob API-Vorgang auslöst.

    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

    Weitere Informationen zur Lambda-Code-Editor-Oberfläche finden Sie unter Funktionen mit dem AWS Lambda-Konsoleneditor erstellen.

  2. Überspringen Sie alle anderen Einstellungen und wählen Sie oben auf der Konfigurationsseite Speichern.

Schritt 3: Erstellen Sie eine CloudWatch Ereignisregel und verknüpfen Sie sie mit der Lambda-Funktion für den Debugger

Um eine CloudWatch Ereignisregel und einen Link zur Lambda-Funktion für Debugger zu erstellen
  1. Öffnen Sie die CloudWatch Konsole unter. https://console.aws.amazon.com/cloudwatch/

  2. Wählen Sie im linken Navigationsbereich unter dem Knoten Ereignisse die Option Regeln.

  3. Wählen Sie Regel erstellen aus.

  4. Wählen Sie auf der Seite „Schritt 1: Regel erstellen“ im Abschnitt „Ereignisquelle“ die Option SageMaker AI als Dienstname und als Ereignistyp die Option „SageMaker AI Training Job State Change“ aus. Die Event-Pattern-Vorschau sollte wie in den folgenden JSON-Beispielzeichenfolgen aussehen:

    { "source": [ "aws.sagemaker" ], "detail-type": [ "SageMaker Training Job State Change" ] }
  5. Wählen Sie im Abschnitt Ziele die Option Ziel hinzufügen* und wählen Sie die Lambda-Funktion debugger-rule-stop-training-job aus, die Sie erstellt haben. In diesem Schritt wird die CloudWatch Events-Regel mit der Lambda-Funktion verknüpft.

  6. Wählen Sie Details konfigurieren und gehen Sie zur Seite Schritt 2: Regeldetails konfigurieren.

  7. Geben Sie den Namen der CloudWatch Regeldefinition an. Beispiel, debugger-cw-event-rule.

  8. Wählen Sie Rolle erstellen aus, um den Vorgang abzuschließen.

  9. Gehen Sie zurück zur Konfigurationsseite der Lambda-Funktion und aktualisieren Sie die Seite. Vergewissern Sie sich, dass es im Designer-Bereich korrekt konfiguriert ist. Die CloudWatch Events-Regel sollte als Trigger für die Lambda-Funktion registriert werden. Das Konfigurationsdesign sollte wie das folgende Beispiel aussehen:

    Designer-Panel für die CloudWatch Konfiguration.
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.