Schritt 2: Trainingsjobs mit dem SageMaker Python-SDK starten und debuggen - 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.

Schritt 2: Trainingsjobs mit dem SageMaker Python-SDK starten und debuggen

Um einen SageMaker Estimator mit SageMaker Debugger zu konfigurieren, verwenden Sie das Amazon SageMaker Python SDK und geben Sie Debugger-spezifische Parameter an. Um die Debugging-Funktionalität vollständig nutzen zu können, müssen Sie drei Parameter konfigurieren: debugger_hook_config, tensorboard_output_config, und rules.

Wichtig

Bevor Sie die Schätzer-Fit-Methode erstellen und ausführen, um einen Trainingsauftrag zu starten, stellen Sie sicher, dass Sie Ihr Trainingsskript entsprechend den Anweisungen unter Schritt 1: Passen Sie Ihr Trainingsskript an, um einen Hook zu registrieren anpassen.

Konstruieren Sie einen Estimator mit Debugger-spezifischen Parametern SageMaker

Die Codebeispiele in diesem Abschnitt zeigen, wie ein SageMaker Schätzer mit Debugger-spezifischen Parametern erstellt wird.

Anmerkung

Die folgenden Codebeispiele sind Vorlagen für die Erstellung der SageMaker Framework-Schätzer und nicht direkt ausführbar. Sie müssen mit den nächsten Abschnitten fortfahren und die Debugger-spezifischen Parameter konfigurieren.

PyTorch
# An example of constructing a SageMaker PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs session=boto3.session.Session() region=session.region_name debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # Debugger-specific parameters debugger_hook_config=debugger_hook_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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs session=boto3.session.Session() region=session.region_name debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()), ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # Debugger-specific parameters debugger_hook_config=debugger_hook_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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # Debugger-specific parameters debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)
XGBoost
# An example of constructing a SageMaker XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)
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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] 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 debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)

Konfigurieren Sie die folgenden Parameter, um den Debugger zu aktivieren SageMaker :

  • debugger_hook_config(ein Objekt von DebuggerHookConfig) — Erforderlich, um währenddessen den Hook im angepassten Trainingsskript zu aktivierenSchritt 1: Passen Sie Ihr Trainingsskript an, um einen Hook zu registrieren, den SageMaker Trainingsstarter (Estimator) so zu konfigurieren, dass er Ausgabetensoren aus Ihrem Trainingsjob sammelt, und die Tensoren in Ihrem gesicherten S3-Bucket oder auf Ihrem lokalen Computer zu speichern. Wie Sie den debugger_hook_config Parameter konfigurieren können, erfahren Sie unter Konfigurieren Sie den SageMaker Debugger zum Speichern von Tensoren.

  • rules(eine Liste von RuleObjekten) — Konfigurieren Sie diesen Parameter, um die integrierten SageMaker Debuger-Regeln zu aktivieren, die Sie in Echtzeit ausführen möchten. Bei den integrierten Regeln handelt es sich um Logiken, die den Trainingsfortschritt Ihres Modells automatisch debuggen und Trainingsprobleme finden, indem sie die in Ihrem gesicherten S3-Bucket gespeicherten Ausgabetensoren analysieren. Wie Sie den rules Parameter konfigurieren können, erfahren Sie unter Integrierte Debuger-Regeln konfigurieren. Eine vollständige Liste der integrierten Regeln für das Debuggen von Ausgabetensoren finden Sie unter Debugger-Regel. Wenn Sie Ihre eigene Logik zur Erkennung von Ausbildungsproblemen erstellen möchten, siehe Erstellen Sie benutzerdefinierte Debugger-Regeln für die Analyse von Trainingsaufträgen.

    Anmerkung

    Die integrierten Regeln sind nur in SageMaker Trainingsinstanzen verfügbar. Sie können sie nicht im lokalen Modus verwenden.

  • tensorboard_output_config(ein Objekt von TensorBoardOutputConfig) — Konfigurieren Sie den SageMaker Debugger so, dass er Ausgabetensoren im TensorBoard -kompatiblen Format sammelt und in Ihrem im Objekt angegebenen S3-Ausgabepfad speichert. TensorBoardOutputConfig Weitere Informationen hierzu finden Sie unter Visualisieren Sie Amazon SageMaker Debugger-Ausgabetensoren in TensorBoard.

    Anmerkung

    Der tensorboard_output_config muss mit dem debugger_hook_config Parameter konfiguriert werden. Dazu müssen Sie auch Ihr Trainingsskript anpassen, indem Sie den sagemaker-debugger Hook hinzufügen.

Anmerkung

SageMaker Der Debugger speichert Ausgabetensoren sicher in Unterordnern Ihres S3-Buckets. Das Format der standardmäßigen S3-Bucket-URI in Ihrem Konto lautet beispielsweise s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Es gibt zwei Unterordner, die von SageMaker Debugger erstellt wurden:, und. debug-output rule-output Wenn Sie den tensorboard_output_config Parameter hinzufügen, finden Sie auch den tensorboard-output Ordner.

In den folgenden Themen finden Sie weitere Beispiele für die detaillierte Konfiguration der Debugger-spezifischen Parameter.