Interaktiver Bericht über SageMaker Debugger - 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.

Interaktiver Bericht über SageMaker Debugger

Erhalten Sie vom Debugger automatisch generierte Profiling-Berichte. Der Debugger-Bericht bietet Einblicke in Ihre Schulungsaufträge und gibt Empfehlungen zur Verbesserung der Modellleistung. Der folgende Screenshot zeigt eine Collage des Debugger-Profilerstellungsberichts. Weitere Informationen hierzu finden Sie unter Bericht zur Profilerstellung im SageMaker Debugger.

Anmerkung

Sie können Debugger-Berichte herunterladen, während Ihr Schulungsauftrag läuft oder nachdem der Job abgeschlossen ist. Während der Schulung aktualisiert der Debugger gleichzeitig den Bericht, der den Auswertungsstatus der aktuellen Regeln wiedergibt. Sie können einen vollständigen Debugger-Bericht erst herunterladen, wenn der Schulungsauftrag abgeschlossen ist.

Wichtig

Die Berichte, Diagramme und Empfehlungen dienen zu Informationszwecken und sind nicht endgültig. Sie übernehmen die Verantwortung dafür, die Informationen unabhängig zu bewerten.


            Ein Beispiel für einen zusammenfassenden Bericht zum Debugger-Schulungsauftrag

Bericht zur Profilerstellung im SageMaker Debugger

Für alle SageMaker-Trainingsjobs ruft die Profiler-Bericht SageMaker-Debugger-Regel alle Überwachungs- und Profilerstellungsregeln auf und fasst die Regelanalyse in einem umfassenden Bericht zusammen. Folgen Sie dieser Anleitung, laden Sie den Bericht mit dem Amazon SageMaker Python SDK oder der S3-Konsole herunter und erfahren Sie, was Sie aus den Profilerstellungsergebnissen interpretieren können.

Wichtig

In dem Bericht werden die Diagramme und Empfehlungen zu Informationszwecken bereitgestellt und sind nicht endgültig. Sie übernehmen die Verantwortung dafür, die Informationen unabhängig zu bewerten.

Laden Sie den SageMaker Debugger-Profiling-Bericht herunter

Laden Sie den SageMaker Debugger-Profilerstellungsbericht herunter, während Ihr Schulungsauftrag läuft oder nachdem der Auftrag mit dem Amazon SageMaker Python SDK und AWS Command Line Interface (CLI) abgeschlossen wurde.

Anmerkung

Um den vom SageMaker Debugger generierten Profilerstellungsbericht abzurufen, müssen Sie die integrierte ProfilerReport-Regel verwenden, die von SageMaker Debugger angeboten wird. Informationen zur Aktivierung der Regel bei Ihrem Schulungsauftrag finden Sie unter Integrierte Profiler-Regeln konfigurieren.

Tipp

Sie können den Bericht auch mit einem einzigen Klick im SageMaker Studio Debugger Insights Dashboard herunterladen. Dies erfordert kein zusätzliches Scripting, um den Bericht herunterzuladen. Informationen zum Herunterladen des Berichts aus Studio finden Sie unter Öffnen Sie das Dashboard von Amazon SageMaker Debugger Insights.

Download using SageMaker Python SDK and AWS CLI
  1. Überprüfen Sie den standardmäßigen S3-Ausgabe-Basis-URI des aktuellen Jobs.

    estimator.output_path
  2. Überprüfen Sie den aktuellen Namen des Auftrags.

    estimator.latest_training_job.job_name
  3. Der Debugger-Profilerstellungsbericht ist gespeichert unter <default-s3-output-base-uri>/<training-job-name>/rule-output. Konfigurieren Sie den Regelausgabepfad wie folgt:

    rule_output_path = estimator.output_path + estimator.latest_training_job.job_name + "/rule-output"
  4. Um zu überprüfen, ob der Bericht erstellt wird, listen Sie Verzeichnisse und Dateien rekursiv unter der rule_output_path mit aws s3 ls und der Option --recursive auf.

    ! aws s3 ls {rule_output_path} --recursive

    Dadurch sollte eine vollständige Liste der Dateien in einem automatisch generierten Ordner mit dem Namen ProfilerReport-1234567890 zurückgegeben werden. Der Ordnername ist eine Kombination aus Zeichenfolgen: ProfilerReport und einem eindeutigen 10-stelligen Tag, der auf dem Unix-Zeitstempel basiert, als die ProfilerReport-Regel initiiert wurde.

    
                                        Ein Beispiel für die Regelausgabe

    Das profiler-report.html ist ein automatisch generierter Profilerstellungsbericht von Debugger. Bei den verbleibenden Dateien handelt es sich um die integrierten Regelanalysekomponenten, die in JSON und einem Jupyter Notebook gespeichert sind und verwendet werden, um sie im Bericht zusammenzufassen.

  5. Laden Sie die Dateien rekursiv herunter mit aws s3 cp. Mit dem folgenden Befehl werden alle Regelausgabedateien in dem ProfilerReport-1234567890 Ordner unter dem aktuellen Arbeitsverzeichnis gespeichert.

    ! aws s3 cp {rule_output_path} ./ --recursive
    Tipp

    Wenn Sie einen Jupyter Notebook-Server verwenden, führen Sie den Befehl !pwd aus, um das aktuelle Arbeitsverzeichnis zu überprüfen.

  6. Öffnen Sie unter dem /ProfilerReport-1234567890/profiler-output Verzeichnis profiler-report.html. Wenn Sie JupyterLab verwenden, wählen Sie Trust HTML, um den automatisch generierten Debugger-Profiling-Bericht zu sehen.

    
                                        Ein Beispiel für die Regelausgabe
  7. Öffnen Sie die profiler-report.ipynb Datei, um zu erfahren, wie der Bericht generiert wird. Sie können den Profilerstellungsbericht auch mithilfe der Jupyter Notebook-Datei anpassen und erweitern.

Download using Amazon S3 Console
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Suchen Sie nach dem S3-Bucket. Wenn Sie beispielsweise keinen Basisauftragnamen angegeben haben, sollte der Basis-S3-Bucket-Name das folgende Format haben: sagemaker-<region>-111122223333. Suchen Sie im Feld Bucket nach Namen suchen nach dem Basis-S3-Bucket.

    
                                        Ein Beispiel für die Regelausgabe des S3-Bucket-URI
  3. Suchen Sie im Basis-S3-Bucket nach dem Schulungsauftragsnamen, indem Sie Ihr Jobnamen-Präfix in das Eingabefeld Objekte nach Präfix suchen eingeben. Wählen Sie den Schulungsauftragsnamen.

    
                                        Ein Beispiel für die S3-Bucket-URI der Regelausgabe
  4. Im S3-Bucket des Schulungsauftrags müssen drei Unterordner für die vom Debugger gesammelten Schulungsdaten vorhanden sein: debug-output/, profiler-output/ und rule-output/. Wählen Sie rule-output/.

    
                                        Ein Beispiel für die S3-Bucket-URI der Regelausgabe
  5. Wählen Sie im Ordner rule-output/ die Option ProfilerReport-1234567890 und anschließend den Ordner profiler-output/ aus. Der Ordner profiler-output/ enthält profiler-report.html (den automatisch generierten Profilerstellungsbericht in HTML), profiler-report.ipynb (ein Jupyter Notizbuch mit Skripten, die zum Generieren des Berichts verwendet werden) und einen Ordner profiler-report/ (enthält JSON-Dateien zur Regelanalyse, die als Komponenten des Berichts verwendet werden).

  6. Wählen Sie die Datei profiler-report.html aus, klicken Sie auf Aktionen und dann auf Herunterladen.

    
                                        Ein Beispiel für die Regelausgabe des S3-Bucket-URI
  7. Öffnen Sie die heruntergeladene Datei profiler-report.html in einem Web-Browser.

Anmerkung

Wenn Sie Ihren Schulungsauftrag gestartet haben, ohne die Debugger-spezifischen Parameter zu konfigurieren, generiert Debugger den Bericht nur auf der Grundlage der Systemüberwachungsregeln, da die Debugger-Parameter nicht zum Speichern von Framework-Metriken konfiguriert sind. Um die Profilerstellung von Framework-Metriken zu aktivieren und einen erweiterten Debugger-Profilerstellungsbericht zu erhalten, konfigurieren Sie den profiler_config Parameter, wenn Sie SageMaker-Schätzer erstellen oder aktualisieren.

Informationen zur Konfiguration des profiler_config Parameters vor Beginn eines Schulungsauftrags finden Sie unter Konfigurieren für Framework-Profiling.

Informationen zum Aktualisieren des aktuellen Schulungsauftrags und zum Aktivieren der Profilerstellung für Framework-Metriken finden Sie unter Aktualisieren der Konfiguration der Debugger-Framework-Profilkonfiguration.

Exemplarische Vorgehensweise für den Bericht zur Debugger-Profilerstellung

In diesem Abschnitt wird der Debugger-Profilerstellungsbericht beschrieben. Der Profilerstellungsbericht wird auf der Grundlage der integrierten Regeln für Überwachung und Profilerstellung generiert. Der Bericht zeigt nur Ergebnisdiagramme für die Regeln, bei denen Probleme festgestellt wurden.

Wichtig

In dem Bericht werden die Diagramme und Empfehlungen zu Informationszwecken bereitgestellt und sind nicht endgültig. Sie übernehmen die Verantwortung dafür, die Informationen unabhängig zu bewerten.

Zusammenfassung der Ausbildungsberufe

Zu Beginn des Berichts bietet Debugger eine Zusammenfassung Ihres Schulungsauftrags. In diesem Abschnitt können Sie sich einen Überblick über die Dauer und die Zeitstempel der verschiedenen Schulungsphasen verschaffen.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

Die Übersichtstabelle enthält die folgenden Informationen:

  • start_time — Die genaue Uhrzeit, zu der der Schulungsauftrag gestartet wurde.

  • end_time — Die genaue Uhrzeit, zu der der Schulungsauftrag beendet wurde.

  • job_duration_in_seconds — Die gesamte Schulungszeit von der start_time bis zur end_time.

  • training_loop_start — Der genaue Zeitpunkt, zu dem der erste Schritt der ersten Epoche begonnen hat.

  • training_loop_end — Der genaue Zeitpunkt, zu dem der letzte Schritt der letzten Epoche abgeschlossen ist.

  • training_loop_duration_in_seconds — Die Gesamtzeit zwischen der Startzeit der Schulungsschleife und der Endzeit der Schulungsschleife.

  • initialization_in_seconds — Zeit, die für die Initialisierung des Schulungsauftrags aufgewendet wurde. Die Initialisierungsphase umfasst den Zeitraum von der start_time bis zur training_loop_start. Die Initialisierungszeit wird für das Kompilieren des Schulungsskripts, das Starten des Schulungsskripts, das Erstellen und Initialisieren des Modells, das Initiieren von EC2-Instances und das Herunterladen von Trainingsdaten aufgewendet.

  • finalization_in_seconds — Zeit, die für den Abschluss des Schulungsauftrags aufgewendet wird, z. B. für den Abschluss des Modelltrainings, die Aktualisierung der Modellartefakte und das Schließen der EC2-Instances. Die Finalisierungsphase umfasst den Zeitraum von der Zeit training_loop_end bis end_time.

  • initialization (%) — Der Prozentsatz der für die Initialisierung aufgewendeten Zeit über die gesamte Dauer von job_duration_in_seconds.

  • Trainingsschleife (%) — Der Prozentsatz der für training loop aufgewendeten Zeit über die gesamte Dauer von job_duration_in_seconds.

  • Abschluss (%) — Der Prozentsatz der für die Finalisierung aufgewendeten Zeit an der gesamten Dauer von job_duration_in_seconds.

Statistiken der Systemnutzung

In diesem Abschnitt finden Sie einen Überblick über die Statistiken zur Systemauslastung.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

Der Debugger-Profiling-Bericht enthält die folgenden Informationen:

  • node — Listet die Namen der Knoten auf. Wenn Sie verteilte Schulung auf mehreren Knoten (mehrere EC2-Instances) verwenden, haben die Knotennamen das Format von algo-n.

  • Metrik — Die vom Debugger gesammelten Systemmetriken: CPU, GPU, CPU-Speicher, GPU-Speicher, I/O und Netzwerkmetriken.

  • unit - Die Einheit der Systemmetrik.

  • max — Der Maximalwert jeder Systemmetrik.

  • p99 — Das 99. Perzentil jeder Systemauslastung.

  • p95 — Das 95. Perzentil jeder Systemauslastung.

  • p50 — Das 50. Perzentil (Median) jeder Systemauslastung.

  • min — Der Mindestwert jeder Systemmetrik.

Übersicht der Framework-Metriken

In diesem Abschnitt zeigen die folgenden Kreisdiagramme die Aufschlüsselung der Framework-Operationen auf CPUs und GPUs.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

In jedem der Kreisdiagramme werden die gesammelten Framework-Metriken unter verschiedenen Aspekten wie folgt analysiert:

  • Verhältnis zwischen TRAIN/EVAL-Phasen und anderen — Zeigt das Verhältnis zwischen der Zeit, die für verschiedene Schulungsphasen aufgewendet wurde.

  • Verhältnis zwischen Vorwärts- und Rückwärtsdurchgang — Zeigt das Verhältnis zwischen der Zeit, die in der Schulungsschleife für das Vorwärts- und Rückwärtsspiel aufgewendet wurde.

  • Verhältnis zwischen CPU/GPU-Operatoren — Zeigt das Verhältnis zwischen der Zeit an, die für Operatoren aufgewendet wurde, die auf einer CPU oder GPU laufen, wie z. B. Faltungsoperatoren.

  • Im Framework aufgezeichnete allgemeine Metriken — Zeigt das Verhältnis zwischen der Zeit an, die für wichtige Framework-Metriken wie das Laden von Daten, Vorwärts- und Rückwärtsdurchlauf aufgewendet wurde.

Überblick: CPU-Operatoren

Dieser Abschnitt enthält detaillierte Informationen zu den CPU-Operatoren. Die Tabelle zeigt den Prozentsatz der Zeit und die absolute Gesamtzeit, die für die am häufigsten aufgerufenen CPU-Operatoren aufgewendet wurde.


                            Ein Beispiel für einen Debugger-Profiling-Bericht
Überblick: GPU-Operatoren

Dieser Abschnitt enthält detaillierte Informationen zu den GPU-Operatoren. Die Tabelle zeigt den Prozentsatz der Zeit und die absolute Gesamtzeit, die für die am häufigsten aufgerufenen GPU-Operatoren aufgewendet wurde.


                            Ein Beispiel für einen Debugger-Profiling-Bericht

Übersicht der Regeln

In diesem Abschnitt fasst der Debugger alle Ergebnisse, Analysen, Regelbeschreibungen und Vorschläge der Regelauswertung zusammen.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

Analyse der Schulungsschleife — Schrittdauer

In diesem Abschnitt finden Sie eine detaillierte Statistik der Schrittdauer auf jedem GPU-Kern jedes Knotens. Der Debugger wertet Mittel-, Maximal-, P99-, P95-, P50- und Mindestwert der Schrittdauer aus und wertet Schrittausreißer aus. Das folgende Histogramm zeigt die Schrittdauer, die auf verschiedenen Worker-Knoten und GPUs erfasst wurde. Sie können das Histogramm jedes Workers aktivieren oder deaktivieren, indem Sie die Legenden auf der rechten Seite auswählen. Sie können überprüfen, ob es eine bestimmte GPU gibt, die Ausreißer bei der Schrittdauer verursacht.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

Analyse der GPU-Auslastung

In diesem Abschnitt werden detaillierte Statistiken zur GPU-Kernauslastung basierend auf der LowGPUUtilization-Regel angezeigt. Außerdem werden die Statistiken zur GPU-Auslastung (Mittelwert, P95 und P5) zusammengefasst, um festzustellen, ob bei dem Schulungsauftrag die GPUs nicht ausreichend genutzt werden.

Batch-Größe

In diesem Abschnitt werden detaillierte Statistiken zur gesamten CPU-Auslastung, zur individuellen GPU-Auslastung und zur GPU-Speicherbelegung angezeigt. Die BatchSize-Regel bestimmt, ob Sie die Batch-Größe ändern müssen, um die GPUs besser nutzen zu können. Sie können überprüfen, ob die Batch-Größe zu klein ist, was zu einer Unterauslastung führt, oder ob sie zu groß ist, was zu Überauslastung und Speichermangel führt. Im Diagramm zeigen die Felder die Perzentilbereiche p25 und p75 (jeweils dunkelviolett bzw. hellgelb gefüllt) vom Median (p50), und die Fehlerbalken zeigen das 5. Perzentil für die untere Grenze und das 95. Perzentil für die obere Grenze.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

CPU-Engpässe

In diesem Abschnitt können Sie sich detailliert mit den CPU-Engpässen befassen, die die CPUBottleneck-Regel bei Ihrem Schulungsauftrag erkannt hat. Die Regel prüft, ob die CPU-Auslastung über cpu_threshold (standardmäßig 90%) und ob die GPU-Auslastung unter gpu_threshold liegt (standardmäßig 10%).


                        Ein Beispiel für einen Debugger-Profiling-Bericht

Die Kreisdiagramme enthalten die folgenden Informationen:

  • Niedrige GPU-Auslastung aufgrund von CPU-Engpässen — Zeigt das Verhältnis der Datenpunkte zwischen den Datenpunkten mit einer GPU-Auslastung über und unter dem Schwellenwert und denen, die den CPU-Engpasskriterien entsprechen.

  • Verhältnis zwischen TRAIN/EVAL-Phasen und anderen — Zeigt das Verhältnis zwischen den Zeitdauern, die für verschiedene Schulungsphasen aufgewendet wurden.

  • Verhältnis zwischen Vorwärts- und Rückwärtsdurchgang — Zeigt das Verhältnis zwischen der Zeit, die in der Schulungsschleife für das Vorwärts- und Rückwärtsspiel aufgewendet wurde.

  • Verhältnis zwischen CPU/GPU-Operatoren — Zeigt das Verhältnis zwischen der Zeitdauer, die Python-Operatoren wie Dataloader-Prozesse und Vorwärts- und Rückwärts-Pass-Operatoren für GPUs und CPUs aufgewendet haben.

  • Im Framework aufgezeichnete allgemeine Metriken — Zeigt die wichtigsten Framework-Metriken und das Verhältnis zwischen der für die Metriken aufgewendeten Zeitdauer an.

E/A-Engpässe

In diesem Abschnitt finden Sie eine Zusammenfassung der I/O-Engpässe. Die Regel bewertet die I/O-Wartezeit und die GPU-Auslastung und überwacht, ob die für die I/O-Anfragen aufgewendete Zeit einen prozentualen Schwellenwert der gesamten Schulungszeit überschreitet. Dies kann auf I/O-Engpässe hinweisen, wenn GPUs darauf warten, dass Daten aus dem Speicher eintreffen.

Load Balancer bei der Multi-GPU-Schulung

In diesem Abschnitt können Sie Probleme mit dem Workload-Balancing zwischen GPUs identifizieren.


                        Ein Beispiel für einen Debugger-Profiling-Bericht

GPU-Speicheranalyse

In diesem Abschnitt können Sie die GPU-Speicherauslastung analysieren, die mit der GPUMemoryIncrease-Regel erfasst wurde. Im Diagramm zeigen die Felder die Perzentilbereiche p25 und p75 (jeweils dunkelviolett bzw. hellgelb gefüllt) vom Median (p50), und die Fehlerbalken zeigen das 5. Perzentil für die untere Grenze und das 95. Perzentil für die obere Grenze.


                        Ein Beispiel für einen Debugger-Profiling-Bericht