Paso 2: Lanzar y depurar trabajos de entrenamiento con Python SageMaker SDK - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 2: Lanzar y depurar trabajos de entrenamiento con Python SageMaker SDK

Para configurar un SageMaker estimador con SageMaker Debugger, utilice Amazon SageMaker Python SDK y especifique los parámetros específicos del Debugger. Para aprovechar al máximo la funcionalidad de depuración, debe configurar tres parámetros debugger_hook_config, tensorboard_output_config y rules.

importante

Antes de crear y ejecutar el método de ajuste del estimador para lanzar un trabajo de entrenamiento, asegúrese de adaptar el script de entrenamiento siguiendo las instrucciones que se indican en Paso 1: Adapte su script de entrenamiento para registrar un enlace.

Construya SageMaker un estimador con parámetros específicos del depurador

Los ejemplos de código de esta sección muestran cómo construir un SageMaker estimador con los parámetros específicos del Debugger.

nota

Los siguientes ejemplos de código son plantillas para construir los estimadores del SageMaker marco y no son ejecutables directamente. Debe continuar con las siguientes secciones y configurar los parámetros específicos del depurador.

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)

Configure los siguientes parámetros para activar SageMaker Debugger:

  • debugger_hook_config(un objeto de DebuggerHookConfig): necesario para activar el gancho en el guion de entrenamiento adaptado durante el entrenamientoPaso 1: Adapte su script de entrenamiento para registrar un enlace, configurar el lanzador de SageMaker entrenamiento (estimador) para recopilar los tensores de salida del trabajo de entrenamiento y guardar los tensores en un depósito S3 protegido o en una máquina local. Si quiere aprender a configurar el parámetro debugger_hook_config, consulte Configure el SageMaker depurador para guardar los tensores.

  • rules(una lista de Ruleobjetos): configure este parámetro para activar las reglas integradas del SageMaker Debugger que desee ejecutar en tiempo real. Las reglas integradas son lógicas que depuran automáticamente el progreso del entrenamiento del modelo y detectan los problemas de entrenamiento mediante el análisis de los tensores de salida guardados en el depósito protegido de S3. Si quiere aprender a configurar el parámetro rules, consulte Configurar reglas integradas del depurador. Para obtener una lista completa de las reglas integradas para depurar los tensores de salida, consulte Regla de depurador. Si quiere crear su propia lógica para detectar cualquier problema de entrenamiento, consulte Cree reglas personalizadas del depurador para análisis de trabajos de entrenamiento.

    nota

    Las reglas integradas solo están disponibles a través de instancias SageMaker de entrenamiento. No puede utilizarlas en modo local.

  • tensorboard_output_config(un objeto de TensorBoardOutputConfig): configure SageMaker Debugger para que recopile los tensores de salida en un formato TensorBoard compatible y los guarde en la ruta de salida de S3 especificada en el objeto. TensorBoardOutputConfig Para obtener más información, consulte Visualice los tensores de salida de Amazon SageMaker Debugger en TensorBoard.

    nota

    El tensorboard_output_config debe configurarse con el parámetro debugger_hook_config, que también requiere que adapte el script de entrenamiento añadiendo el enlace sagemaker-debugger.

nota

SageMaker El depurador guarda de forma segura los tensores de salida en las subcarpetas del bucket de S3. Por ejemplo, el formato del depósito de S3 URI predeterminado de su cuenta es. s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/ SageMaker Debugger crea dos subcarpetas:debug-output, y. rule-output Si añade el parámetro tensorboard_output_config, también encontrará la carpeta tensorboard-output.

Consulte los siguientes temas para encontrar más ejemplos de cómo configurar en detalle los parámetros específicos del depurador.