Trainingsjobs mit dem Debugger und SageMaker Python SDK starten - Amazon SageMaker AI

Trainingsjobs mit dem Debugger und SageMaker Python SDK starten

Um einen SageMaker-AI-Schätzer 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 Ihr Trainingsskript anpassen, um einen Hook zu registrieren anpassen.

Konstruieren Sie einen SageMaker-AI-Schätzer mit Debugger-spezifischen Parametern

Die Codebeispiele in diesem Abschnitt zeigen, wie Sie einen SageMaker-AI-Schätzer mit Debugger-spezifischen Parametern erstellen.

Anmerkung

Die folgenden Codebeispiele sind Vorlagen für die Erstellung der Framework-Schätzer von SageMaker AI 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 AI 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 AI 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 AI 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 AI 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 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 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 SageMaker Debugger zu aktivieren:

  • debugger_hook_config(ein Objekt von DebuggerHookConfig) – Erforderlich, um den Hook im angepassten Trainingsskript während Ihr Trainingsskript anpassen, um einen Hook zu registrieren zu aktivieren, den SageMaker-Trainingslauncher (Schätzer) so zu konfigurieren, dass er Ausgabetensoren von Ihrem Trainingsauftrag sammelt, und die Tensoren in Ihrem gesicherten S3-Bucket oder auf Ihrem lokalen Rechner zu speichern. Wie Sie den debugger_hook_config Parameter konfigurieren können, erfahren Sie unter SageMaker Debugger zum Speichern von Tensoren konfigurieren.

  • rules(eine Liste von RuleObjekten) – Konfigurieren Sie diesen Parameter, um die in SageMaker Debugger integrierten 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 So konfigurieren Sie integrierte Debugger-Regeln. 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 Benutzerdefinierte Regeln mithilfe der Debugger-Clientbibliothek erstellen.

    Anmerkung

    Die integrierten Regeln sind nur in SageMaker-Trainings-Instances 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 TensorBoardOutputConfig Objekt angegebenen S3-Ausgabepfad speichert. Weitere Informationen hierzu finden Sie unter Ausgabetensoren des Amazon SageMaker Debugger in TensorBoard visualisieren.

    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 Debugger speichert Ausgabetensoren sicher in Unterordnern Ihres S3-Buckets. Das Format der standardmäßigen S3-Bucket-URI in Ihrem Konto lautet beispielsweise s3://amzn-s3-demo-bucket-sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Es gibt zwei Unterordner, die von SageMaker Debugger erstellt wurden: debug-output und 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.