Überwachen und analysieren Sie Schulungsjobs mithilfe von Amazon CloudWatch Metrics - 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.

Überwachen und analysieren Sie Schulungsjobs mithilfe von Amazon CloudWatch Metrics

Ein SageMaker Amazon-Schulungsjob ist ein iterativer Prozess, der einem Modell beibringt, Vorhersagen zu treffen, indem Beispiele aus einem Trainingsdatensatz präsentiert werden. In der Regel berechnet ein Trainingsalgorithmus mehrere Metriken, wie z. B. Trainingsfehler und Voraussagegenauigkeit. Diese Metriken helfen, zu diagnostizieren, ob das Modell gut lernt und bezüglich des Treffens von Voraussagen anhand von ungesehenen Daten eine gute Leistung bringen wird. Der Trainingsalgorithmus schreibt die Werte dieser Metriken in Logs, die dann CloudWatch in Echtzeit SageMaker überwacht und an Amazon gesendet werden. Um die Leistung Ihres Trainingsjobs zu analysieren, können Sie sich Diagramme dieser Kennzahlen in ansehen CloudWatch. Wenn ein Trainingsauftrag abgeschlossen ist, können Sie eine Liste der Metrikwerte erhalten, die in seiner abschließenden Iteration berechnet werden, in dem Sie die Operation DescribeTrainingJob aufrufen.

Anmerkung

Amazon CloudWatch unterstützt hochauflösende benutzerdefinierte Metriken, und die beste Auflösung beträgt 1 Sekunde. Je feiner die Auflösung ist, desto kürzer ist jedoch die Lebensdauer der Messwerte. CloudWatch Für die Frequenzauflösung von 1 Sekunde sind die CloudWatch Metriken 3 Stunden lang verfügbar. Weitere Informationen zur Auflösung und Lebensdauer der CloudWatch Metriken finden Sie GetMetricStatisticsin der Amazon CloudWatch API-Referenz.

Tipp

Wenn Sie Ihr Trainingsjob mit einer feineren Auflösung bis zu einer Granularität von 100 Millisekunden (0,1 Sekunden) profilieren und die Trainingsmetriken unbegrenzt in Amazon S3 speichern möchten, um jederzeit benutzerdefinierte Analysen durchführen zu können, sollten Sie die Verwendung von Amazon Debugger in Betracht ziehen. SageMaker SageMaker Der Debugger bietet integrierte Regeln zur automatischen Erkennung häufiger Trainingsprobleme. Er erkennt Probleme mit der Nutzung von Hardwareressourcen (wie CPU-, GPU- und I/O-Engpässe) und Probleme mit nicht konvergierenden Modellen (wie Überanpassung, verschwindende Gradienten und explodierende Tensoren). SageMaker Der Debugger bietet auch Visualisierungen über Studio Classic und seinen Profilerstellungsbericht. Weitere Informationen zu den Debugger-Visualisierungen finden Sie unter Exemplarische Vorgehensweise zum SageMaker Debugger Insights-Dashboard, Exemplarische Vorgehensweise zum Debugger-Profilerstellungsbericht und Analysieren von Daten mithilfeder SMDebug-Clientbibliothek.

Definieren von Trainingsmetriken

SageMaker analysiert automatisch die Protokolle von Trainingsaufträgen und sendet Trainingsmetriken an. CloudWatch SageMaker Sendet standardmäßig Messwerte zur Systemressourcenauslastung, die unter SageMaker Jobs und Endpunktmetriken aufgeführt sind. Wenn Sie Logs analysieren und benutzerdefinierte Metriken aus einem Trainingsjob Ihres eigenen Algorithmus an diese senden möchten SageMaker CloudWatch, müssen Sie bei der Konfiguration einer SageMaker Trainingsjobanfrage Metrikdefinitionen angeben, indem Sie die Namen der Metriken und reguläre Ausdrücke übergeben.

Sie können die Metriken, die Sie verfolgen möchten, mithilfe der SageMaker Konsole, des SageMaker Python-SDK oder der SageMaker Low-Level-API angeben.

Wenn Sie Ihren eigenen Algorithmus verwenden, gehen Sie wie folgt vor:

  • Vergewissern Sie sich, dass der Algorithmus die Metriken, die Sie erfassen möchten, in Protokolle schreibt.

  • Definieren Sie einen regulären Ausdruck, der die Protokolle genau durchsucht, um die Werte der Metriken zu erfassen, an die Sie senden möchten CloudWatch.

Nehmen wir zum Beispiel an, dass Ihr Algorithmus die folgenden Metriken für Trainingsfehler und Validierungsfehler ausgibt:

Train_error=0.138318; Valid_error=0.324557;

Wenn Sie diese beiden Metriken überwachen möchten CloudWatch, sollte das Wörterbuch für die Metrikdefinitionen wie das folgende Beispiel aussehen:

[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]

In der Regex für die train:error -Metrik, die im vorangegangenen Beispiel definiert wurde, findet der erste Teil der Regex den genauen Text "Train_error=", und der Ausdruck (.*?); erfasst alle Zeichen bis zum ersten Semikolonzeichen. In diesem Ausdruck sagt die Klammer dem Regex, dass er das, was sich in ihr befindet, erfassen soll, . bedeutet jedes beliebige Zeichen, * bedeutet kein oder mehr Zeichen und ? bedeutet die Erfassung nur bis zur ersten Abfolge des ;-Zeichens.

Metriken mit dem SageMaker Python-SDK definieren

Definieren Sie die Metriken, an die Sie senden möchten, CloudWatch indem Sie bei der Initialisierung eines Estimator Objekts eine Liste von Metriknamen und regulären Ausdrücken als metric_definitions Argument angeben. Wenn Sie beispielsweise sowohl die als auch die train:error validation:error Metriken in überwachen möchten CloudWatch, würde Ihre Estimator Initialisierung wie folgt aussehen:

import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )

Weitere Informationen zum Training mithilfe von Amazon SageMaker Python SDK-Schätzern finden Sie unter Sagemaker Python SDK on. GitHub

Definieren Sie Metriken mithilfe der Konsole SageMaker

Wenn Sie bei der Erstellung eines Trainingsjobs die Option Ihr eigener Algorithmuscontainer in ECR als Algorithmusquelle in der SageMaker Konsole wählen, fügen Sie die Metrikdefinitionen im Abschnitt Metriken hinzu. Der folgende Screenshot zeigt, wie es aussehen sollte, nachdem Sie die Namen der Beispielmetriken und die entsprechenden regulären Ausdrücke hinzugefügt haben.

Definieren Sie Metriken mithilfe der Low-Level-API SageMaker

Definieren Sie die Metriken, an die Sie senden möchten, CloudWatch indem Sie im MetricDefinitions Feld des AlgorithmSpecificationEingabeparameters, den Sie an den CreateTrainingJobVorgang übergeben, eine Liste mit Metriknamen und regulären Ausdrücken angeben. Wenn Sie beispielsweise sowohl die als auch die train:error validation:error Metriken in überwachen möchten CloudWatch, AlgorithmSpecification würden Sie wie folgt aussehen:

"AlgorithmSpecification": { "TrainingImage": your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }

Weitere Informationen zum Definieren und Ausführen eines Trainingsjobs mithilfe der SageMaker Low-Level-API finden Sie unter CreateTrainingJob.

Überwachen von Trainingsjob-Metriken (CloudWatch Konsole)

Sie können die Messwerte, die ein Trainingsjob ausgibt, in Echtzeit in der CloudWatch Konsole überwachen.

Um die Messwerte für Trainingsjobs zu überwachen (CloudWatch Konsole)
  1. Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch.

  2. Wählen Sie Metrics und dann /aws/sagemaker/ TrainingJobs.

  3. Wählen Sie. TrainingJobName

  4. Wählen Sie auf der Registerkarte All metrics (Alle Metriken) die Namen der Trainingsmetriken aus, die Sie überwachen möchten.

  5. Konfigurieren Sie auf der Registerkarte Graphed metrics (Grafisch dargestellte Metriken) die Diagrammoptionen. Weitere Informationen zur Verwendung von CloudWatch Diagrammen finden Sie unter Graph Metrics im CloudWatch Amazon-Benutzerhandbuch.

Überwachen von Metriken für Trainingsaufträge (SageMaker-Konsole)

Mithilfe der SageMaker Konsole können Sie die Messwerte, die ein Trainingsjob ausgibt, in Echtzeit überwachen.

Um die Messwerte für Trainingsjobs zu überwachen (SageMaker Konsole)
  1. Öffnen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker.

  2. Wählen Sie die Option Training jobs (Trainingsaufträge) und anschließend den Trainingsauftrag aus, dessen Metriken Sie sich anzeigen lassen möchten.

  3. Wählen Sie TrainingJobName.

  4. Im Abschnitt Monitor (Überwachen) können Sie die Diagramme zur Instance-Nutzung und zu den Algorithmusmetriken einsehen.

Beispiel: Anzeigen einer Trainings- und Validierungskurve

Normalerweise teilen Sie die Daten, auf denen Sie Ihr Modell trainieren, in Trainings- und Validierungsdatensätze auf. Sie verwenden das Trainingsset zum Training der Modellparameter, die verwendet werden, um Voraussagen zum Trainingsdatensatz zu treffen. Anschließend testen Sie, wie gut die Voraussagen des Modells sind, indem Sie Voraussagen für das Validierungsset berechnen. Um die Leistung eines Trainingsauftrags zu analysieren, zeichnen Sie in der Regel eine Trainingskurve neben einer Validierungskurve ein.

Ein Diagramm, das die Genauigkeit für das Trainings- und das Validierungset über einen Zeitraum hinweg anzeigt, kann Ihnen dabei helfen, die Leistung Ihres Modells zu verbessern. Wenn die Trainingsgenauigkeit beispielsweise im Laufe der Zeit immer besser wird, aber ab einem bestimmten Punkt die Validierungsgenauigkeit sich zu verschlechtern beginnt, haben Sie Ihr Modell vermutlich übermäßig angepasst. Um dieses Problem zu beheben, können Sie Anpassungen an Ihrem Modell vornehmen, wie zum Beispiel die Regularisierung erhöhen.

Für dieses Beispiel können Sie das mage-classification-full-training Beispiel I im Abschnitt Beispiel-Notizbücher Ihrer SageMaker Notebook-Instanz verwenden. Wenn Sie keine SageMaker Notebook-Instanz haben, erstellen Sie eine, indem Sie den Anweisungen unter folgenSchritt 1: Erstellen Sie eine Amazon SageMaker Notebook-Instance. Wenn Sie möchten, können Sie sich auch an das Beispiel für die End-to-End-Bildklassifizierung in mehreren Klassen halten, das Sie im Beispiel-Notizbuch finden. GitHub Sie benötigen außerdem ein Amazon-S3-Bucket zum Speichern der Trainingsdaten und der Modellausgabe.

So lassen Sie sich Trainings- und Validierungsfehlerkurven anzeigen
  1. Öffnen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker.

  2. Wählen Sie Notebooks und dann Notebook-Instances aus.

  3. Wählen Sie die Notebook-Instance aus, die Sie verwenden möchten, und klicken Sie dann auf Open (Öffnen).

  4. Wählen Sie im Dashboard für Ihre Notebook-Instanz die Option SageMakerBeispiele aus.

  5. Erweitern Sie den Abschnitt Einführung in Amazon-Algorithmen und wählen Sie dann Use neben I mage-classification-fulltraining .ipynb aus.

  6. Wählen Sie Kopie erstellen. SageMaker erstellt eine bearbeitbare Kopie des I mage-classification-fulltraining .ipynb-Notebooks in Ihrer Notebook-Instanz.

  7. Führen Sie alle Zellen im Notebook bis zum Abschnitt Inferenz aus. Sie müssen für dieses Beispiel keinen Endpunkt bereitstellen oder Inferenzen abrufen.

  8. Öffnen Sie nach dem Start des Trainingsjobs die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch.

  9. Wählen Sie Metrics und anschließend /aws/sagemaker/ TrainingJobs.

  10. Wählen Sie. TrainingJobName

  11. Wählen Sie in der Registerkarte All metrics (Alle Metriken) die Metriken train:accuracy und validation:accuracy für den von Ihnen im Notebook angelegten Trainingsauftrag aus.

  12. Wählen Sie im Diagramm einen Bereich aus, in dem die Werte der Metrik vergrößert werden sollen. Dies sollte etwa wie folgt aussehen.