Lance trabajos de formación con Debugger utilizando el SDK de SageMaker Python - Amazon SageMaker AI

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.

Lance trabajos de formación con Debugger utilizando el SDK de SageMaker Python

Para configurar un estimador de SageMaker IA con SageMaker Debugger, utilice el SDK de Amazon SageMaker Python 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 Adaptación del script de entrenamiento para registrar un enlace.

Creación de un estimador de IA con parámetros específicos del depurador SageMaker

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

nota

Los siguientes ejemplos de código son plantillas para construir los estimadores del marco de SageMaker IA y no se pueden ejecutar 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 SageMaker Debugger:

  • debugger_hook_config(un objeto de DebuggerHookConfig): necesario para activar el gancho en el guion de entrenamiento adaptado durante el entrenamientoAdaptación del 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 Configurar SageMaker Debugger 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 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 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 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>/. SageMaker Debugger creó dos subcarpetas:, y. debug-output 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.