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 in den Debugger integrierten Profiler-Regeln, die von Amazon SageMaker Debugger bereitgestellt werden, und analysieren Sie Metriken, die beim Training Ihrer Modelle gesammelt wurden. 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 mithilfe des Amazon SageMaker Python SDK
Anmerkung
Die maximale Anzahl integrierter Profiler-Regeln, die Sie einem Trainingsjob zuordnen können, beträgt 20. Der SageMaker Debugger verwaltet die integrierten Regeln vollständig und analysiert Ihren Trainingsauftrag synchron.
Wichtig
Um die neuen Debugger-Features nutzen zu können, müssen Sie das SageMaker Python SDK und die SMDebug-Client-Bibliothek erweitern. Führen Sie in Ihrer IPython-Kernel-, Jupyter-Notebook- oder 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 |
|---|---|
| Profilerstellungsbericht für jeden SageMaker-Trainingsauftrag |
In den Debugger integrierte Regeln für die Erstellung von Profilen der Hardware-Systemressourcennutzung (Systemmetriken)
| Gültigkeitsbereich | Integrierte Regeln |
|---|---|
| Allgemeine Systemüberwachungsregeln für jeden SageMaker-Trainingsauftrag |
Integrierte Debugging-Regeln für die Profilerstellung von Framework-Metriken
| Gültigkeitsbereich | Integrierte Regeln |
|---|---|
| Profiling-Regeln für Deep-Learning-Frameworks (TensorFlow und PyTorch) |
Warnung
Zugunsten von Amazon SageMaker Profiler lehnt SageMaker AI Debugger die Framework-Profilerstellungsfunktion ab TensorFlow 2.11 und PyTorch 2.0 ab. Sie können die Funktion in den vorherigen Versionen der Frameworks und SDKs weiterhin wie folgt verwenden.
-
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.
-
Eine vollständige Anleitung und Beispiele für die Verwendung der in den Debugger integrierten Regeln finden Sie unter Beispielcode für integrierte Debugger-Regeln.
-
Eine vollständige Anleitung zur Verwendung der integrierten Regeln mit den SageMaker API Operationen auf niedriger Ebene finden Sie unter Debugger mithilfe der SageMaker-API konfigurieren.
Profiler-Bericht
Die ProfilerReport-Regel ruft alle integrierten Regeln für Ü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 für die 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 die Parameter der CPUBottleneck-Regel cpu_threshold und die Parameter der IOBottleneck-Regel threshold angeben und anpassen.
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 Report. Da diese Regel alle Profilerstellungsregeln aktiviert, können Sie den Status der Regelanalyse auch mithilfe der SageMaker Debugger-Benutzeroberfläche in SageMaker Studio Experiments überprüfen.
Parameterbeschreibungen für die OverallSystemUsage-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
<BuiltInRuleName>_<parameter_name> |
Anpassbarer Parameter zur Anpassung der Schwellenwerte anderer integrierter Überwachungs- und Profilerstellungsregeln. Optional Standardwert: |
BatchSize
Die BatchSize-Regel hilft zu erkennen, ob die GPU aufgrund einer geringen Batchgröße nicht ausgelastet ist. Um dieses Problem zu erkennen, überwacht diese Regel die durchschnittliche CPU-Auslastung, GPU-Auslastung und GPU-Speicherauslastung. Wenn die Auslastung von CPU-, GPU- und GPU-Speicher im Durchschnitt gering ist, kann dies darauf hindeuten, dass der Trainingsauftrag 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 vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job 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: |
gpu_threshold_p95 |
Definiert den Schwellenwert für das 95. Quantil der GPU-Auslastung in Prozent. Optional Gültige Werte: Ganzzahl Standardwert: |
gpu_memory_threshold_p95 |
Definiert den Schwellenwert für das 95. Quantil der GPU-Speicherauslastung in Prozent. Optional Gültige Werte: Ganzzahl Standardwerte: |
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: |
window |
Fenstergröße für die Berechnung von Quantilen. Optional Gültige Werte: Ganzzahl Standardwerte: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
CPU-Engpass
Die CPUBottleneck-Regel hilft zu erkennen, ob die GPU aufgrund von CPU-Engpässen nicht ausgelastet ist. Die Regel gibt True zurück, wenn die Anzahl der CPU-Engpässe einen vordefinierten Schwellenwert überschreitet.
Parameterbeschreibungen für die CPUBottleneck-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job 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: |
gpu_threshold |
Ein Schwellenwert, der eine geringe GPU-Auslastung definiert. Optional Gültige Werte: Ganzzahl Standardwert: |
cpu_threshold |
Ein Schwellenwert, der eine hohe CPU-Auslastung definiert. Optional Gültige Werte: Ganzzahl Standardwerte: |
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: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
Erhöhung des GPU-Speichers
Die GPUMemoryIncrease-Regel hilft dabei, einen starken Anstieg der Speichernutzung auf GPUs zu erkennen.
Parameterbeschreibungen für die GPUMemoryIncrease-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
increase |
Definiert den Schwellenwert für die absolute Speicherzunahme. Optional Gültige Werte: Ganzzahl Standardwert: |
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: |
window |
Fenstergröße für die Berechnung von Quantilen. Optional Gültige Werte: Ganzzahl Standardwerte: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
IOBottleneck
Diese Regel hilft zu erkennen, ob die GPU aufgrund von Daten-IO-Engpässen nicht ausreichend ausgelastet ist. Die Regel gibt True zurück, wenn die Anzahl der IO-Engpässe einen vordefinierten Schwellenwert überschreitet.
Parameterbeschreibungen für die IOBottleneck-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
threshold |
Definiert den Schwellenwert, ab dem Rule True zurückgibt. Optional Gültige Werte: Ganzzahl Standardwert: |
gpu_threshold |
Ein Schwellenwert, der definiert, wann die GPU als nicht ausgelastet gilt. Optional Gültige Werte: Ganzzahl Standardwert: |
io_threshold |
Ein Schwellenwert, der eine hohe IO-Wartezeit definiert. Optional Gültige Werte: Ganzzahl Standardwerte: |
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: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
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 vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
threshold |
Definiert den Prozentsatz der Arbeitslast. Optional Gültige Werte: Ganzzahl Standardwert: |
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: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
Niedrige GPU-Auslastung
Die Regel LowGpuUtilization hilft zu erkennen, ob die GPU-Auslastung gering ist oder Schwankungen unterliegt. Dies wird für jede GPU auf jedem Worker ü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 LowGPUUtilization-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
threshold_p95 |
Ein Schwellenwert für das 95. Quantil, bei dessen Unterschreitung die GPU als nicht ausgelastet gilt. Optional Gültige Werte: Ganzzahl Standardwert: |
threshold_p5 |
Ein Schwellenwert für das 5. Quantil. Der Standardwert ist 10 Prozent. Optional Gültige Werte: Ganzzahl Standardwerte: |
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: |
window |
Fenstergröße für die Berechnung von Quantilen. Optional Gültige Werte: Ganzzahl Standardwerte: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
OverallSystemUsage
Die Regel OverallSystemUsage 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 vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
scan_interval_us |
Zeitintervall zum Scannen von Timeline-Dateien. Optional Gültige Werte: Ganzzahl Standardwerte: |
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 MaxInitializationTime-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job 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: |
scan_interval_us |
Zeitintervall, mit dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |
OverallFrameworkMetrics
Die OverallFrameworkMetrics-Regel fasst die Zeit zusammen, die für Framework-Metriken wie Vorwärts- und Rückwärtsdurchlauf sowie das Laden von Daten aufgewendet wurde.
Parameterbeschreibungen für die OverallFrameworkMetrics-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job gesetzt. Erforderlich Zulässige Werte: String |
scan_interval_us |
Zeitintervall zum Scannen von Timeline-Dateien. Optional Gültige Werte: Ganzzahl Standardwerte: |
StepOutlier
Die StepOutlier-Regel hilft dabei, Ausreißer in 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 StepOutlier-Regel
| Name des Parameters | Beschreibung |
|---|---|
base_trial |
Der Name des Basis-Probe-Training-Jobs. Dieser Parameter wird vom Amazon SageMaker Debugger automatisch auf den aktuellen Training-Job 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: |
mode |
Modus, in dem die Schritte gespeichert wurden und in dem die Regel ausgeführt werden soll. Standardmäßig wird die Regel für Schritte aus der EVAL- und TRAIN-Phase ausgeführt Optional Gültige Werte: Ganzzahl Standardwert: |
n_outliers |
Wie viele Ausreißer müssen ignoriert werden, bevor die Regel True zurückgibt Optional Gültige Werte: Ganzzahl Standardwert: |
scan_interval_us |
Zeitintervall, in dem Timeline-Dateien gescannt werden. Optional Gültige Werte: Ganzzahl Standardwerte: |