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.
Estimator-Konfiguration mit Parametern für die grundlegende Profilerstellung mithilfe der Python-Module von Amazon SageMaker Debugger
Standardmäßig ist die SageMaker Debugger-Basisprofilerstellung standardmäßig aktiviert und überwacht die Metriken zur Ressourcennutzung, wie CPU-Auslastung, GPU-Auslastung, GPU-Speicherauslastung, Netzwerk und I/O-Wartezeit, aller SageMaker Trainingsjobs, die mit dem Amazon SageMaker Python SDK eingereicht wurden. SageMaker Der Debugger erfasst diese Kennzahlen zur Ressourcennutzung 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 Intervall zur Erfassung 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 Ausbildungsjobs zugreifen möchten, können Sie auf das Amazon SageMaker Debugger-Benutzeroberfläche 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 verwenden zu können, müssen Sie das 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)
Codevorlage für die Konfiguration eines SageMaker AI-Estimator-Objekts 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 aus, um die Vorlage für die Einrichtung eines AI-Schätzers abzurufen. SageMaker 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)
Denn MXNet bei der Konfiguration des profiler_config Parameters können Sie nur die Systemüberwachung konfigurieren. Profiling-Framework-Metriken werden nicht unterstützt für MXNet.
- 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)
Denn XGBoost wenn Sie den profiler_config Parameter konfigurieren, können Sie ihn nur für die Systemüberwachung konfigurieren. Profiling-Framework-Metriken werden nicht unterstützt für XGBoost.
- 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 integrierten SageMaker Debuger-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 ProfilerReport 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 Verwenden Sie integrierte Profiler-Regeln, die von 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 den Standard-S3-Bucket auch URIs mithilfe der SageMaker AI-Estimator-Klassenmethoden abrufen.
In den folgenden Themen erfahren Sie, wie Sie die Debugger-spezifischen Parameter im Detail konfigurieren.