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 mit Parametern für die grundlegende Profilerstellung unter Verwendung der Amazon SageMaker Debugger Python-Module
Standardmäßig ist die grundlegende Profilerstellung von SageMaker Debugger aktiviert und überwacht Metriken zur Ressourcenauslastung, wie CPU-Auslastung, GPU-Auslastung, GPU-Speicherauslastung, Netzwerk und E/A-Wartezeit, aller SageMaker-Trainingsaufträge, die mit dem Amazon SageMaker Python SDK abgesendet werden. SageMaker Debugger sammelt diese Metriken zur Ressourcenauslastung alle 500 Millisekunden. Sie müssen keine zusätzlichen Änderungen an Ihrem Code, Trainingsskript oder dem Job Launcher vornehmen, um die grundlegende Ressourcenauslastung zu verfolgen. Wenn Sie das Erfassungsintervall von Metriken für die grundlegende Profilerstellung ändern möchten, können Sie Debugger-spezifische Parameter angeben, während Sie einen SageMaker-Trainingsjob-Launcher mit dem SageMaker Python-SDK, AWS SDK für Python (Boto3), oder AWS Command Line Interface (CLI) erstellen. In diesem Handbuch konzentrieren wir uns darauf, wie Sie die Profilerstellungsoptionen mithilfe des Amazon SageMaker Python SDK ändern können. Diese Seite enthält Referenzvorlagen für die Konfiguration dieses Schätzobjekts.
Wenn Sie in SageMaker Studio auf das Dashboard mit den Kennzahlen zur Ressourcennutzung Ihres Trainingsjobs zugreifen möchten, können Sie auf Benutzeroberfläche von Amazon SageMaker Debugger in Amazon SageMaker Studio Classic Experiments zugreifen.
Wenn Sie die Regeln aktivieren möchten, die Probleme mit der Systemressourcenauslastung automatisch erkennen, können Sie den rules Parameter zum Aktivieren der Regeln im Estimator-Objekt hinzufügen.
Um die neuesten SageMaker Debugger-Funktionen nutzen zu können, müssen Sie das SageMaker Python SDK und die SMDebug Client-Bibliothek aktualisieren. Führen Sie in Ihrer iPython-Kernel-, Jupyter-Notebook- oder JupyterLab-Umgebung den folgenden Code aus, um die aktuellsten 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)
Code-Vorlage für die Konfiguration eines SageMaker-AI-Schätzerobjekts mit den SageMaker Debugger Python-Modulen im SageMaker AI Python-SDK
Um die grundlegende Profilerstellungskonfiguration anzupassen (profiler_config) oder die Profiler-Regeln hinzuzufügen (rules), wählen Sie eine der Registerkarten, um die Vorlage für die Einrichtung eines SageMaker-AI-Schätzers abzurufen. Auf den nachfolgenden Seiten finden Sie mehr Informationen darüber, wie Sie die beiden Parameter konfigurieren.
Die folgenden Codebeispiele sind nicht direkt ausführbar. Fahren Sie mit den nächsten Abschnitten fort, um zu erfahren, wie Sie die einzelnen Parameter konfigurieren.
- PyTorch
-
# An example of constructing a SageMaker AI PyTorch estimator
import boto3
import sagemaker
from sagemaker.pytorch import PyTorch
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs
session=boto3.session.Session()
region=session.region_name
profiler_config=ProfilerConfig(...)
rules=[
ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]
estimator=PyTorch(
entry_point="directory/to/your_training_script.py",
role=sagemaker.get_execution_role(),
base_job_name="debugger-profiling-demo",
instance_count=1,
instance_type="ml.p3.2xlarge",
framework_version="1.12.0",
py_version="py37",
# SageMaker Debugger parameters
profiler_config=profiler_config,
rules=rules
)
estimator.fit(wait=False)
- TensorFlow
-
# An example of constructing a SageMaker AI TensorFlow estimator
import boto3
import sagemaker
from sagemaker.tensorflow import TensorFlow
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs
session=boto3.session.Session()
region=session.region_name
profiler_config=ProfilerConfig(...)
rules=[
ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]
estimator=TensorFlow(
entry_point="directory/to/your_training_script.py",
role=sagemaker.get_execution_role(),
base_job_name="debugger-profiling-demo",
instance_count=1,
instance_type="ml.p3.2xlarge",
framework_version="2.8.0",
py_version="py37",
# SageMaker Debugger parameters
profiler_config=profiler_config,
rules=rules
)
estimator.fit(wait=False)
- MXNet
-
# An example of constructing a SageMaker AI MXNet estimator
import sagemaker
from sagemaker.mxnet import MXNet
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs
profiler_config=ProfilerConfig(...)
rules=[
ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]
estimator=MXNet(
entry_point="directory/to/your_training_script.py",
role=sagemaker.get_execution_role(),
base_job_name="debugger-profiling-demo",
instance_count=1,
instance_type="ml.p3.2xlarge",
framework_version="1.7.0",
py_version="py37",
# SageMaker Debugger parameters
profiler_config=profiler_config,
rules=rules
)
estimator.fit(wait=False)
Für MXNet können Sie bei der Konfiguration des profiler_config Parameters nur die Systemüberwachung konfigurieren. Profiling-Framework-Metriken werden für MXNet nicht unterstützt.
- XGBoost
-
# An example of constructing a SageMaker AI XGBoost estimator
import sagemaker
from sagemaker.xgboost.estimator import XGBoost
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs
profiler_config=ProfilerConfig(...)
rules=[
ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]
estimator=XGBoost(
entry_point="directory/to/your_training_script.py",
role=sagemaker.get_execution_role(),
base_job_name="debugger-profiling-demo",
instance_count=1,
instance_type="ml.p3.2xlarge",
framework_version="1.5-1",
# Debugger-specific parameters
profiler_config=profiler_config,
rules=rules
)
estimator.fit(wait=False)
Für XGBoost können Sie bei der Konfiguration des profiler_config Parameters nur die Systemüberwachung konfigurieren. Profiling-Framework-Metriken werden für XGBoost nicht unterstützt.
- Generic estimator
-
# An example of constructing a SageMaker AI generic estimator using the XGBoost algorithm base image
import boto3
import sagemaker
from sagemaker.estimator import Estimator
from sagemaker import image_uris
from sagemaker.debugger import ProfilerConfig, DebuggerHookConfig, Rule, ProfilerRule, rule_configs
profiler_config=ProfilerConfig(...)
rules=[
ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]
region=boto3.Session().region_name
xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1")
estimator=Estimator(
role=sagemaker.get_execution_role()
image_uri=xgboost_container,
base_job_name="debugger-demo",
instance_count=1,
instance_type="ml.m5.2xlarge",
# Debugger-specific parameters
profiler_config=profiler_config,
rules=rules
)
estimator.fit(wait=False)
Im Folgenden finden Sie eine kurze Beschreibung der Parameter.
-
profiler_config – Konfigurieren Sie den Debugger so, dass er System- und Framework-Metriken aus Ihrem Trainingsauftrag sammelt und in Ihrem gesicherten S3-Bucket-URI oder auf Ihrem lokalen Computer speichert. Sie können festlegen, wie oft oder wie oft die Systemmetriken erfasst werden. Informationen zur Konfiguration des profiler_config Parameters finden Sie unter Konfigurieren Sie Einstellungen für die grundlegende Profilerstellung der Systemressourcenauslastung und Schätzerkonfiguration für Framework-Profiling.
-
rules – Konfigurieren Sie diesen Parameter, um die in SageMaker Debugger integrierten Regeln zu aktivieren, die Sie parallel ausführen möchten. Stellen Sie sicher, dass Ihr Trainingsjob Zugriff auf diesen S3-Bucket hat. Die Regeln laufen auf Verarbeitungscontainern und analysieren automatisch Ihren Trainingsauftrag, um Probleme bei der Berechnung und der betrieblichen Leistung zu erkennen. Die Profiler-Bericht Regel ist die am besten integrierte Regel, die alle integrierten Profilerstellungsregeln ausführt und die Ergebnisse der Profilerstellung als Bericht in Ihrem gesicherten S3-Bucket speichert. Wie Sie den rules Parameter konfigurieren können, erfahren Sie unter Integrierte Profiler-Regeln verwenden, die vom Amazon SageMaker Debugger verwaltet werden.
Der Debugger speichert Ausgabedaten sicher in Unterordnern Ihres Standard-S3-Buckets. Das Format des Standard-S3-Bucket-URI ist zum Beispiel s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Es gibt drei Unterordner, die von Debugger erstellt wurden: debug-output, profiler-output und rule-output. Sie können die standardmäßigen S3-Bucket-URIs auch mithilfe der Klassenmethoden des SageMaker-AI-Schätzers abrufen.
In den folgenden Themen erfahren Sie, wie Sie die Debugger-spezifischen Parameter im Detail konfigurieren.