Estimator-Konfiguration mit Parametern für die grundlegende Profilerstellung mithilfe der Python-Module von Amazon SageMaker Debugger - 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.

Estimator-Konfiguration mit Parametern für die grundlegende Profilerstellung mithilfe der Python-Module von Amazon SageMaker Debugger

Standardmäßig ist die grundlegende Profilerstellung von SageMaker Debugger aktiviert und überwacht die Metriken zur Ressourcennutzung, wie CPU Auslastung, GPU Auslastung, GPU Speicherauslastung, Netzwerk und I/O-Wartezeit, aller SageMaker Trainingsjobs, die mit Amazon SageMaker Python eingereicht wurden. SDK 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 SageMaker PythonSDK, AWS SDK for Python (Boto3), oder AWS Command Line Interface () erstellen. CLI In diesem Handbuch konzentrieren wir uns darauf, wie Sie die Profilerstellungsoptionen mithilfe von Amazon SageMaker Python SDK ändern können. Diese Seite enthält Referenzvorlagen für die Konfiguration dieses Estimator-Objekts.

Wenn Sie in SageMaker Studio auf das Dashboard mit den Kennzahlen zur Ressourcennutzung Ihres Schulungsjobs 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.

Wichtig

Um die neuesten SageMaker 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)

Codevorlage für die Konfiguration eines SageMaker Estimator-Objekts mit den SageMaker Debugger-Python-Modulen in Python SageMaker 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 Schätzers aufzurufen. SageMaker Auf den nachfolgenden Seiten finden Sie mehr Informationen darüber, wie Sie die beiden Parameter konfigurieren.

Anmerkung

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 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 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 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)
Anmerkung

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ürMXNet.

XGBoost
# An example of constructing a SageMaker 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)
Anmerkung

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ürXGBoost.

Generic estimator
# An example of constructing a SageMaker 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.

Anmerkung

Der Debugger speichert Ausgabedaten sicher in Unterordnern Ihres Standard-S3-Buckets. Das Format des Standard-S3-Buckets URI lautet s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/ beispielsweise. 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 Estimator-Klassenmethoden abrufen.

In den folgenden Themen erfahren Sie, wie Sie die Debugger-spezifischen Parameter im Detail konfigurieren.