Liste der im Debugger integrierten Profiler-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.

Liste der im Debugger integrierten Profiler-Regeln

Verwenden Sie die integrierten Debuger-Profiler-Regeln, die von Amazon SageMaker Debugger bereitgestellt werden, und analysieren Sie die beim Training Ihrer Modelle gesammelten Metriken. Die in den Debugger integrierten Regeln überwachen verschiedene allgemeine Bedingungen, die für die erfolgreiche Durchführung eines performanten Trainingsauftrags entscheidend sind. Sie können die integrierten Profiler-Regeln mit Amazon SageMaker Python SDK oder den SageMaker API Low-Level-Operationen aufrufen. Für die Nutzung der integrierten Regeln fallen keine zusätzlichen Kosten an. Weitere Informationen zur Abrechnung finden Sie auf der Seite mit den SageMaker Amazon-Preisen.

Anmerkung

Die maximale Anzahl integrierter Profiler-Regeln, die Sie einem Schulungsjob zuordnen können, beträgt 20. SageMaker Der Debugger verwaltet die integrierten Regeln vollständig und analysiert Ihren Trainingsjob synchron.

Wichtig

Um die neuen Debugger-Funktionen verwenden zu können, müssen Sie SageMaker Python SDK und die SMDebug Client-Bibliothek aktualisieren. Führen Sie in Ihrem iPython Kernel, Jupyter-Notebook oder Ihrer JupyterLab Umgebung den folgenden Code aus, um die neuesten Versionen der Bibliotheken zu installieren und den Kernel neu zu starten.

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

Profiler-Regeln

Die folgenden Regeln sind die integrierten Debuger-Regeln, die mit der ProfilerRule.sagemaker Klassenmethode aufgerufen werden können.

Integrierte Debuger-Regel für die Generierung des Profilerstellungsberichts

Gültigkeitsbereich Integrierte Regeln
Bericht zur Profilerstellung für jeden beliebigen Trainingsjob SageMaker

In den Debugger integrierte Regeln für die Erstellung von Profilen der Hardware-Systemressourcennutzung (Systemmetriken)

Gültigkeitsbereich Integrierte Regeln
Generische Regeln zur Systemüberwachung für jeden SageMaker Schulungsjob

Integrierte Debugging-Regeln für die Profilerstellung von Framework-Metriken

Gültigkeitsbereich Integrierte Regeln
Regeln zur Profilerstellung für Deep-Learning-Frameworks (TensorFlow und PyTorch)
Warnung

Der SageMaker Debugger lehnt die SageMaker Framework-Profilerstellungsfunktion ab Version 2.11 und 2.0 zugunsten von Amazon Profiler ab. TensorFlow PyTorch Sie können die Funktion weiterhin in den vorherigen Versionen der Frameworks und wie folgt verwenden. SDKs

  • SageMaker Python SDK <= v2.130.0

  • PyTorch >= v1.6.0, < v2.0

  • TensorFlow >= v2.3.1, < v2.11

Siehe auch 16. März 2023.

Verwenden Sie das folgende Konfigurationsformat, um die integrierten Regeln mit Standardparameterwerten zu verwenden:

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n()) ]

Um die integrierten Regeln mit individuellen Parameterwerten zu verwenden, verwenden Sie das folgende Konfigurationsformat:

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) ]

Die verfügbaren Schlüssel für den Parameter rule_parameters finden Sie in den Tabellen mit den Parameterbeschreibungen.

Unter den Tabellen mit den Parameterbeschreibungen finden Sie für jede integrierte Regel Beispielkonfigurationscodes.

ProfilerReport

Die ProfilerReport Regel ruft alle integrierten Regeln für die Überwachung und Profilerstellung auf. Sie erstellt einen Profilerstellungsbericht und aktualisiert, wenn die einzelnen Regeln ausgelöst werden. Sie können einen umfassenden Profilerstellungsbericht herunterladen, während ein Trainingsauftrag ausgeführt wird oder nachdem der Trainingsauftrag abgeschlossen ist. Sie können die Werte der Regelparameter anpassen, um die Sensitivität der integrierten Überwachungs- und Profilerstellungsregeln anzupassen. Der folgende Beispielcode zeigt das grundlegende Format zur Anpassung der integrierten Regelparameter mithilfe der ProfilerReport Regel.

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( <BuiltInRuleName>_<parameter_name> = value ) ) ]

Wenn Sie diese ProfilerReport Regel ohne benutzerdefinierte Parameter auslösen, wie im folgenden Beispielcode gezeigt, löst die ProfilerReport Regel alle integrierten Regeln für die Überwachung und Profilerstellung mit ihren Standardparameterwerten aus.

rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]

Der folgende Beispielcode zeigt, wie Sie den Parameter der CPUBottleneck Regel und den cpu_threshold IOBottleneck Regelparameter angeben und anpassen. threshold

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( CPUBottleneck_cpu_threshold = 90, IOBottleneck_threshold = 90 ) ) ]

Informationen zum Inhalt des Profiler-Berichts finden Sie unter SageMaker Debugger-Profiling-Bericht. Da diese Regel alle Profilerstellungsregeln aktiviert, können Sie den Status der Regelanalyse auch mithilfe der SageMaker Debugger-Benutzeroberfläche in Studio Experiments überprüfen. SageMaker

Parameterbeschreibungen für die Regel OverallSystemUsage

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

<BuiltInRuleName>_<parameter_name>

Anpassbarer Parameter zur Anpassung der Schwellenwerte anderer integrierter Überwachungs- und Profilerstellungsregeln.

Optional

Standardwert: None

BatchSize

Die BatchSize Regel hilft zu erkennen, ob sie aufgrund einer geringen Batchgröße nicht ausgelastet GPU ist. Um dieses Problem zu erkennen, überwacht diese Regel die durchschnittliche CPU Auslastung, GPU Auslastung und GPU Speicherauslastung. Wenn die Auslastung bei CPUGPU, und der GPU Arbeitsspeicher im Durchschnitt gering ist, kann dies darauf hindeuten, dass der Trainingsjob entweder auf einem kleineren Instance-Typ oder mit einer größeren Batchgröße ausgeführt werden kann. Diese Analyse funktioniert nicht für Frameworks, die Speicherplatz stark überlasten. Eine Erhöhung der Batchgröße kann jedoch zu Engpässen bei der Verarbeitung oder beim Laden von Daten führen, da bei jeder Iteration mehr Zeit für die Datenvorverarbeitung erforderlich ist.

Parameterbeschreibungen für die BatchSize Regel

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

cpu_threshold_p95

Definiert den Schwellenwert für das 95. Quantil der CPU Auslastung in Prozent.

Optional

Gültige Werte: Ganzzahl

Standardwert: 70 (in Prozent)

gpu_threshold_p95

Definiert den Schwellenwert für das 95. Quantil der GPU Auslastung in Prozent.

Optional

Gültige Werte: Ganzzahl

Standardwert: 70 (in Prozent)

gpu_memory_threshold_p95

Definiert den Schwellenwert für das 95. Quantil der GPU Speicherauslastung in Prozent.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 70 (in Prozent)

patience

Definiert die Anzahl der Datenpunkte, mit denen übersprungen werden soll, bis die Regel mit der Auswertung beginnt. In den ersten Schritten von Trainingsauftrages ist in der Regel ein hohes Volumen an Datenprozessen zu verzeichnen. Halten Sie die Regel also geduldig und verhindern Sie, dass sie mit einer bestimmten Anzahl von Profilerstellungsdaten, die Sie mit diesem Parameter angeben, zu früh aufgerufen wird.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 100

window

Fenstergröße für die Berechnung von Quantilen.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 500

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

CPUBottleneck

Die CPUBottleneck Regel hilft zu erkennen, ob aufgrund von Engpässen nicht ausreichend ausgelastet GPU ist. CPU Die Regel gibt True zurück, wenn die Anzahl der CPU Engpässe einen vordefinierten Schwellenwert überschreitet.

Parameterbeschreibungen für die Regel CPUBottleneck

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

threshold

Definiert den Schwellenwert für das Verhältnis der Engpasszeit zur gesamten Trainingszeit. Wenn der Anteil den für den Schwellenwertparameter angegebenen Prozentsatz übersteigt, setzt die Regel den Status der Regel auf True.

Optional

Gültige Werte: Ganzzahl

Standardwert: 50 (in Prozent)

gpu_threshold

Ein Schwellenwert, der eine geringe GPU Auslastung definiert.

Optional

Gültige Werte: Ganzzahl

Standardwert: 10 (in Prozent)

cpu_threshold

Ein Schwellenwert, der eine hohe CPU Auslastung definiert.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 90 (in Prozent)

patience

Definiert die Anzahl der Datenpunkte, mit denen übersprungen werden soll, bis die Regel mit der Auswertung beginnt. In den ersten Schritten von Trainingsauftrages ist in der Regel ein hohes Volumen an Datenprozessen zu verzeichnen. Halten Sie die Regel also geduldig und verhindern Sie, dass sie mit einer bestimmten Anzahl von Profilerstellungsdaten, die Sie mit diesem Parameter angeben, zu früh aufgerufen wird.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 100

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

GPUMemoryIncrease

Die GPUMemoryIncrease Regel hilft dabei, einen starken Anstieg der Speichernutzung am zu erkennenGPUs.

Parameterbeschreibungen für die GPUMemoryIncrease Regel

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

increase

Definiert den Schwellenwert für die absolute Speicherzunahme.

Optional

Gültige Werte: Ganzzahl

Standardwert: 10 (in Prozent)

patience

Definiert die Anzahl der Datenpunkte, mit denen übersprungen werden soll, bis die Regel mit der Auswertung beginnt. In den ersten Schritten von Trainingsauftrages ist in der Regel ein hohes Volumen an Datenprozessen zu verzeichnen. Halten Sie die Regel also geduldig und verhindern Sie, dass sie mit einer bestimmten Anzahl von Profilerstellungsdaten, die Sie mit diesem Parameter angeben, zu früh aufgerufen wird.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 100

window

Fenstergröße für die Berechnung von Quantilen.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 500

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

IOBottleneck

Diese Regel hilft zu erkennen, ob sie GPU aufgrund von Daten-IO-Engpässen nicht ausreichend genutzt wird. Die Regel gibt True zurück, wenn die Anzahl der IO-Engpässe einen vordefinierten Schwellenwert überschreitet.

Parameterbeschreibungen für die Regel IOBottleneck

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

threshold Definiert den Schwellenwert, ab dem Rule True zurückgibt.

Optional

Gültige Werte: Ganzzahl

Standardwert: 50 (in Prozent)

gpu_threshold

Ein Schwellenwert, der definiert, wann er als nicht GPU ausgelastet gilt.

Optional

Gültige Werte: Ganzzahl

Standardwert: 70 (in Prozent)

io_threshold Ein Schwellenwert, der eine hohe IO-Wartezeit definiert.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 50 (in Prozent)

patience Definiert die Anzahl der Datenpunkte, mit denen übersprungen werden soll, bis die Regel mit der Auswertung beginnt. In den ersten Schritten von Trainingsauftrages ist in der Regel ein hohes Volumen an Datenprozessen zu verzeichnen. Halten Sie die Regel also geduldig und verhindern Sie, dass sie mit einer bestimmten Anzahl von Profilerstellungsdaten, die Sie mit diesem Parameter angeben, zu früh aufgerufen wird.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 1000

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

LoadBalancing

Die LoadBalancing Regel hilft dabei, Probleme beim Workload-Balancing zwischen mehreren GPUs zu erkennen.

Parameterbeschreibungen für die LoadBalancing Regel

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

threshold

Definiert den Prozentsatz der Arbeitslast.

Optional

Gültige Werte: Ganzzahl

Standardwert: 0.5 (Anteil ohne Einheit)

patience

Definiert die Anzahl der Datenpunkte, mit denen übersprungen werden soll, bis die Regel mit der Auswertung beginnt. In den ersten Schritten von Trainingsauftrages ist in der Regel ein hohes Volumen an Datenprozessen zu verzeichnen. Halten Sie die Regel also geduldig und verhindern Sie, dass sie mit einer bestimmten Anzahl von Profilerstellungsdaten, die Sie mit diesem Parameter angeben, zu früh aufgerufen wird.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 10

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

L owGPUUtilization

Die owGPUUtilization L-Regel hilft zu erkennen, ob die GPU Auslastung gering ist oder Schwankungen unterliegt. Dies wird für jeden GPU einzelnen Mitarbeiter überprüft. Die Regel gibt True zurück, wenn das 95. Quantil unter threshold_p95 liegt, was auf eine Unterauslastung hinweist. Die Regel gibt true zurück, wenn das 95. Quantil über Threshold_p95 und das 5. Quantil unter Threshold_p5 liegt, was auf Schwankungen hinweist.

Parameterbeschreibungen für die owGPUUtilization L-Regel

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

threshold_p95

Ein Schwellenwert, unter dem das 95. Quantil GPU liegt, gilt als nicht ausreichend genutzt.

Optional

Gültige Werte: Ganzzahl

Standardwert: 70 (in Prozent)

threshold_p5 Ein Schwellenwert für das 5. Quantil. Der Standardwert ist 10 Prozent.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 10 (in Prozent)

patience

Definiert die Anzahl der Datenpunkte, mit denen übersprungen werden soll, bis die Regel mit der Auswertung beginnt. In den ersten Schritten von Trainingsauftrages ist in der Regel ein hohes Volumen an Datenprozessen zu verzeichnen. Halten Sie die Regel also geduldig und verhindern Sie, dass sie mit einer bestimmten Anzahl von Profilerstellungsdaten, die Sie mit diesem Parameter angeben, zu früh aufgerufen wird.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 1000

window

Fenstergröße für die Berechnung von Quantilen.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 500

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

OverallSystemUsage

Die OverallSystemUsage Regel misst die Gesamtsystemnutzung pro Worker-Knoten. Die Regel aggregiert derzeit nur Werte pro Knoten und berechnet deren Perzentile.

Parameterbeschreibungen für die OverallSystemUsage Regel

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

scan_interval_us

Zeitintervall zum Scannen von Timeline-Dateien.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

MaxInitializationTime

Die MaxInitializationTime Regel hilft zu erkennen, ob die Trainingsinitialisierung zu viel Zeit in Anspruch nimmt. Die Regel wartet, bis der erste Schritt verfügbar ist.

Parameterbeschreibungen für die Regel MaxInitializationTime

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

threshold

Definiert den Schwellenwert in Minuten, bis der erste Schritt verfügbar ist.

Optional

Gültige Werte: Ganzzahl

Standardwert: 20 (in Minuten)

scan_interval_us

Zeitintervall, mit dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

OverallFrameworkMetrics

Die OverallFrameworkMetrics Regel fasst die Zeit zusammen, die für Framework-Metriken wie Vorwärts- und Rückwärtsdurchläufe und das Laden von Daten aufgewendet wurde.

Parameterbeschreibungen für die Regel OverallFrameworkMetrics

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

scan_interval_us

Zeitintervall zum Scannen von Timeline-Dateien.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)

StepOutlier

Die StepOutlier Regel hilft dabei, Ausreißer bei der Schrittdauer zu erkennen. Diese Regel gibt zurück True wenn es Ausreißer gibt, deren Schrittdauer größer als stddev Sigmas der gesamten Schrittdauer in einem Zeitraum ist.

Parameterbeschreibungen für die Regel StepOutlier

Name des Parameters Beschreibung
base_trial

Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird von Amazon SageMaker Debugger automatisch auf den aktuellen Trainingsjob gesetzt.

Erforderlich

Zulässige Werte: String

stddev

Definiert einen Faktor, mit dem die Standardabweichung multipliziert werden soll. Die Regel wird beispielsweise standardmäßig aufgerufen, wenn eine Schrittdauer größer oder kleiner als das Fünffache der Standardabweichung ist.

Optional

Gültige Werte: Ganzzahl

Standardwert: 5 (in Minuten)

mode Modus, in dem die Schritte gespeichert wurden und in dem die Regel ausgeführt werden soll. Standardmäßig wird die Regel in Schritten von EVAL und TRAIN nach der Phase ausgeführt

Optional

Gültige Werte: Ganzzahl

Standardwert: 5 (in Minuten)

n_outliers Wie viele Ausreißer müssen ignoriert werden, bevor die Regel True zurückgibt

Optional

Gültige Werte: Ganzzahl

Standardwert: 10

scan_interval_us

Zeitintervall, in dem Timeline-Dateien gescannt werden.

Optional

Gültige Werte: Ganzzahl

Standardwerte: 60000000 (in Mikrosekunden)