

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.

# Schätzerkonfiguration für Framework-Profiling
<a name="debugger-configure-framework-profiling"></a>

**Warnung**  
Der SageMaker AI Debugger lehnt die [ SageMaker Framework-Profilerstellungsfunktion ab Version 2.11 und 2.0 zugunsten von Amazon Profiler](train-use-sagemaker-profiler.md) 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](debugger-release-notes.md#debugger-release-notes-20230315).

Um die Debugger-Framework-Profilerstellung zu aktivieren, konfigurieren Sie den `framework_profile_params` Parameter, wenn Sie einen Schätzer erstellen. Das Debugger-Framework-Profiling sammelt Framework-Metriken, wie z. B. Daten aus der Initialisierungsphase, Datenladeprozesse, Python-Operatoren von Deep-Learning-Frameworks und Trainingsskripten, detailliertes Profiling innerhalb und zwischen den Schritten, mit den Optionen cProfile oder Pyinstrument. Mithilfe der `FrameworkProfile` Klasse können Sie benutzerdefinierte Framework-Profiling-Optionen konfigurieren. 

**Anmerkung**  
Bevor Sie mit der Debugger-Framework-Profilerstellung beginnen, stellen Sie sicher, dass das Framework, das zur Erstellung Ihres Modells verwendet wurde, von Debugger für die Framework-Profilerstellung unterstützt wird. Weitere Informationen finden Sie unter [Unterstützte Frameworks und Algorithmen](debugger-supported-frameworks.md).   
Der Debugger speichert die Framework-Metriken in einem Standard-S3-Bucket. Das Format der standardmäßigen S3-Bucket-URI ist `s3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/profiler-output/`.

**Topics**
+ [Standard-Framework-Profiling](debugger-configure-framework-profiling-basic.md)
+ [Standardsystemüberwachung und benutzerdefinierte Framework-Profilerstellung für Zielschritte oder einen Zielzeitraum](debugger-configure-framework-profiling-range.md)
+ [Standardsystemüberwachung und benutzerdefinierte Framework-Profilerstellung mit verschiedenen Profilerstellungsoptionen](debugger-configure-framework-profiling-options.md)

# Standard-Framework-Profiling
<a name="debugger-configure-framework-profiling-basic"></a>

Die standardmäßige Profilerstellung des Debugger-Frameworks umfasst die folgenden Optionen: detaillierte Profilerstellung, Profilerstellung für den Datenlader und Python-Profilierung. Der folgende Beispielcode ist die einfachste `profiler_config` Parametereinstellung, um die Standardsystemüberwachung und die Standard-Framework-Profilerstellung zu starten. Die `FrameworkProfile` Klasse im folgenden Beispielcode initiiert die standardmäßige Framework-Profilerstellung, wenn ein Trainingsauftrag gestartet wird. 

```
from sagemaker.debugger import ProfilerConfig, FrameworkProfile
    
profiler_config=ProfilerConfig(
    framework_profile_params=FrameworkProfile()
)
```

Mit dieser `profiler_config` Parameterkonfiguration ruft Debugger die Standardeinstellungen für Überwachung und Profilerstellung auf. Der Debugger überwacht Systemmetriken alle 500 Millisekunden, erstellt Profile für den fünften Schritt mit der Option für die detaillierte Profilerstellung, für den siebten Schritt mit der Option für die Profilerstellung des Dataloaders und für den neunten, zehnten und elften Schritt mit der Python-Profilerstellungsoption. 

Verfügbare Konfigurationsoptionen für die Profilerstellung, die Standardparametereinstellungen und Beispiele für deren Konfiguration finden Sie unter [Standardsystemüberwachung und benutzerdefinierte Framework-Profilerstellung mit verschiedenen Profilerstellungsoptionen](debugger-configure-framework-profiling-options.md) und [SageMaker Debugger APIs — FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

Wenn Sie das Systemüberwachungsintervall ändern und die standardmäßige Framework-Profilerstellung aktivieren möchten, können Sie den `system_monitor_interval_millis` Parameter explizit mit dem `framework_profile_params` Parameter angeben. Um beispielsweise alle 1000 Millisekunden zu überwachen und das Standard-Framework-Profiling zu aktivieren, verwenden Sie den folgenden Beispielcode.

```
from sagemaker.debugger import ProfilerConfig, FrameworkProfile
    
profiler_config=ProfilerConfig(
    system_monitor_interval_millis=1000,
    framework_profile_params=FrameworkProfile()
)
```

Weitere Informationen zur `FrameworkProfile` Klasse finden Sie unter [SageMaker Debugger APIs — FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

# Standardsystemüberwachung und benutzerdefinierte Framework-Profilerstellung für Zielschritte oder einen Zielzeitraum
<a name="debugger-configure-framework-profiling-range"></a>

Wenn Sie Zielschritte oder Zielzeitintervalle angeben möchten, um ein Profil für Ihren Trainingsauftrag zu erstellen, müssen Sie Parameter für die `FrameworkProfile` Klasse angeben. In den folgenden Codebeispielen wird gezeigt, wie Sie die Zielbereiche für die Profilerstellung zusammen mit der Systemüberwachung angeben.
+ **Für einen Zielschrittbereich**

  Bei der folgenden Beispielkonfiguration überwacht der Debugger den gesamten Trainingsauftrag alle 500 Millisekunden (Standardüberwachung) und erstellt Profile für einen Zielschrittbereich von Schritt 5 bis Schritt 15 (für 10 Schritte).

  ```
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
      
  profiler_config=ProfilerConfig(
      framework_profile_params=FrameworkProfile(start_step=5, num_steps=10)
  )
  ```

  Mit der folgenden Beispielkonfiguration überwacht Debugger den gesamten Trainingsauftrag alle 1000 Millisekunden und erstellt Profile für einen Zielschrittbereich von Schritt 5 bis Schritt 15 (für 10 Schritte).

  ```
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
      
  profiler_config=ProfilerConfig(
      system_monitor_interval_millis=1000,
      framework_profile_params=FrameworkProfile(start_step=5, num_steps=10)
  )
  ```
+ **Für einen Zielzeitraum**

  Bei der folgenden Beispielkonfiguration überwacht Debugger den gesamten Trainingsauftrag alle 500 Millisekunden (Standardüberwachung) und erstellt ein Profil für einen Zielzeitraum von der aktuellen Unix-Zeit für 600 Sekunden.

  ```
  import time
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
  
  profiler_config=ProfilerConfig(
      framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600)
  )
  ```

  Mit der folgenden Beispielkonfiguration überwacht Debugger den gesamten Trainingsauftrag alle 1000 Millisekunden und erstellt ein Profil für einen Zielzeitraum von der aktuellen Unix-Zeit für 600 Sekunden.

  ```
  import time
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
  
  profiler_config=ProfilerConfig(
      system_monitor_interval_millis=1000,
      framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600)
  )
  ```

  Die Framework-Profilerstellung wird für alle Profilerstellungsoptionen im Zielschritt oder Zeitraum durchgeführt. 

  Weitere Informationen zu verfügbaren Profilerstellungsoptionen finden Sie unter [SageMaker Debugger APIs — FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

  Im nächsten Abschnitt erfahren Sie, wie Sie die verfügbaren Profiling-Optionen per Skript erstellen.

# Standardsystemüberwachung und benutzerdefinierte Framework-Profilerstellung mit verschiedenen Profilerstellungsoptionen
<a name="debugger-configure-framework-profiling-options"></a>

Dieser Abschnitt enthält Informationen zu den unterstützten Konfigurationsklassen für das Profiling sowie eine Beispielkonfiguration. Sie können die folgenden Profilkonfigurationsklassen verwenden, um die Framework-Profilerstellungsoptionen zu verwalten:
+ [DetailedProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DetailedProfilingConfig)— Geben Sie einen Zielschritt oder einen Zeitraum an, um Framework-Operationen mithilfe der nativen Framework-Profiler (Profiler und TensorFlow Profiler) zu profilieren. PyTorch Wenn Sie beispielsweise die Debugger-Hooks verwenden TensorFlow, ermöglichen sie es dem TensorFlow Profiler, spezifische Framework-Metriken zu sammeln. TensorFlow Mit der detaillierten Profilerstellung können Sie alle Framework-Operatoren in einem Vorschritt (vor dem ersten Schritt), innerhalb von Schritten und zwischen den Schritten eines Trainingsauftrages profilieren.
**Anmerkung**  
Eine detaillierte Profilerstellung kann den GPU-Speicherverbrauch erheblich erhöhen. Es wird nicht empfohlen, die detaillierte Profilerstellung für mehr als ein paar Schritte zu aktivieren.
+ [DataloaderProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DataloaderProfilingConfig)— Geben Sie einen Zielschritt oder einen Zeitraum für die Profilierung von Deep-Learning-Framework-Dataloader-Prozessen an. Der Debugger erfasst jedes Dataloader-Ereignis der Frameworks.
**Anmerkung**  
Die Profilerstellung von Dataloadern kann das Trainingsleistung beim Sammeln von Informationen von Datenladeprogrammen beeinträchtigen. Wir empfehlen, die Profilerstellung für Data Loader nicht länger als ein paar Schritte zu aktivieren.  
Der Debugger ist so vorkonfiguriert, dass er Dataloader-Prozesse nur für die AWS Deep-Learning-Container annotiert. Der Debugger kann keine Profile für Dataloader-Prozesse aus anderen benutzerdefinierten oder externen Trainingscontainern erstellen.
+ [PythonProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.PythonProfilingConfig)— Geben Sie einen Zielschritt oder einen Zeitbereich an, um Python-Funktionen zu profilieren. Sie können auch zwischen zwei Python-Profilern wählen: CProfile und Pyinstrument.
  + *cProfile* – Der Standard-Python-Profiler. cProfile sammelt Informationen für jeden Python-Operator, der während des Trainings aufgerufen wird. Mit CProfile spart Debugger kumulative Zeit und Anmerkungen für jeden Funktionsaufruf und liefert vollständige Details zu Python-Funktionen. Beim Deep Learning könnten die am häufigsten aufgerufenen Funktionen beispielsweise die Faltungsfilter und Backward-Pass-Operatoren sein, und CProfile erstellt für jede einzelne Funktion ein Profil. Für die Option CProfile können Sie außerdem eine Timer-Option auswählen: Gesamtzeit, CPU-Zeit und CPU-freie Zeit. Sie können zwar jeden Funktionsaufruf, der auf Prozessoren (sowohl CPU als auch GPU) ausgeführt wird, in CPU-Zeit profilieren. Mit der Option „Zeit außerhalb der CPU“ können Sie aber auch Engpässe im Netzwerk identifizieren I/O . Die Standardeinstellung ist die Gesamtzeit, und der Debugger berechnet sowohl die CPU-Zeit als auch die Zeit außerhalb der CPU. Mit CProfile können Sie bei der Analyse der Profildaten auf alle Funktionen zugreifen.
  + *Pyinstrument* – Pyinstrument ist ein Python-Profiler mit geringem Overhead, der auf Sampling basiert. Mit der Option Pyinstrument tastet der Debugger jede Millisekunde Profiling-Ereignisse ab. Da Pyinstrument die verstrichene Wanduhrzeit anstelle der CPU-Zeit misst, kann die Pyinstrument-Option eine bessere Wahl als die cProfile-Option sein, um das Profiling-Rauschen zu reduzieren (indem irrelevante Funktionsaufrufe herausgefiltert werden, die kumulativ schnell sind) und Operatoren zu erfassen, die tatsächlich rechenintensiv (kumulativ langsam) für das Training Ihres Modells sind. Mit Pyinstrument können Sie sich einen Baum von Funktionsaufrufen anzeigen lassen und so die Struktur und die Ursache der Langsamkeit besser verstehen.
**Anmerkung**  
Die Aktivierung der Python-Profilerstellung kann die gesamte Trainingszeit verlangsamen. cProfile erstellt bei jedem Aufruf ein Profil der am häufigsten aufgerufenen Python-Operatoren, sodass die Verarbeitungszeit bei der Profilerstellung mit der Anzahl der Aufrufe zunimmt. Bei Pyinstrument nimmt die kumulative Zeit für die Profilerstellung aufgrund des Sampling-Mechanismus mit der Zeit zu.

Die folgende Beispielkonfiguration zeigt die vollständige Struktur, wenn Sie die verschiedenen Profilerstellungsoptionen mit angegebenen Werten verwenden.

```
import time
from sagemaker.debugger import (ProfilerConfig, 
                                FrameworkProfile, 
                                DetailedProfilingConfig, 
                                DataloaderProfilingConfig, 
                                PythonProfilingConfig,
                                PythonProfiler, cProfileTimer)

profiler_config=ProfilerConfig(
    system_monitor_interval_millis=500,
    framework_profile_params=FrameworkProfile(
        detailed_profiling_config=DetailedProfilingConfig(
            start_step=5, 
            num_steps=1
        ),
        dataloader_profiling_config=DataloaderProfilingConfig(
            start_step=7, 
            num_steps=1
        ),
        python_profiling_config=PythonProfilingConfig(
            start_step=9, 
            num_steps=1, 
            python_profiler=PythonProfiler.CPROFILE, 
            cprofile_timer=cProfileTimer.TOTAL_TIME
        )
    )
)
```

Weitere Informationen zu den verfügbaren Profilerstellungsoptionen finden Sie unter [DetailedProfilingConfig[DataloaderProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DataloaderProfilingConfig)](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DetailedProfilingConfig), und [PythonProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.PythonProfilingConfig)im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).