Inicio de trabajos de entrenamiento con el depurador mediante SageMaker Python SDK - Amazon SageMaker AI

Inicio de trabajos de entrenamiento con el depurador mediante SageMaker Python SDK

Para configurar un estimador de SageMaker AI con el depurador de SageMaker, utilice el Amazon SageMaker Python SDK y especifique los parámetros específicos del depurador. 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 Adaptación del script de entrenamiento para registrar un enlace.

Construcción de un estimador de SageMaker AI con parámetros específicos del depurador

En los ejemplos de código de esta sección, se muestra cómo construir un estimador de SageMaker AI con parámetros específicos del depurador.

nota

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

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)

Configure los siguientes parámetros para activar el depurador de SageMaker.

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

  • rules(una lista de objetos Rule): configure este parámetro para activar las reglas integradas del depurador de SageMaker que quiera 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 Cómo 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 Creación de reglas personalizadas mediante la biblioteca cliente del depurador.

    nota

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

  • tensorboard_output_config(un objeto de TensorBoardOutputConfig): configure el depurador de SageMaker para recopilar los tensores de salida en un formato compatible con TensorBoard y guardarlos en la ruta de salida de S3 especificada en el objeto TensorBoardOutputConfig. Para obtener más información, consulte Visualización de los tensores de salida del depurador de Amazon SageMaker 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

El depurador de SageMaker guarda de forma segura los tensores de salida en las subcarpetas del bucket de S3. Por ejemplo, el formato del URI del bucket de S3 predeterminado de su cuenta es s3://amzn-s3-demo-bucket-sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Existen dos subcarpetas creadas por el depurador de SageMaker: 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.