Configuración de estimador con parámetros para la creación de perfiles básicos mediante módulos de Python del depurador de Amazon SageMaker - 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.

Configuración de estimador con parámetros para la creación de perfiles básicos mediante módulos de Python del depurador de Amazon SageMaker

Por defecto, la creación de perfiles básicos del depurador de SageMaker está activada de forma predeterminada y supervisa las métricas de utilización de los recursos, como la utilización de la CPU, la utilización de la GPU, la utilización de la memoria de la GPU, la red y el tiempo de espera de E/S, de todos los trabajos de entrenamiento de SageMaker enviados con el Amazon SageMaker Python SDK. El depurador de SageMaker recopila estas métricas de utilización de recursos cada 500 milisegundos. No necesita realizar ningún cambio adicional en el código, el script de entrenamiento o el iniciador de tareas para realizar un seguimiento del uso de los recursos básicos. Si desea cambiar el intervalo de recopilación de métricas para la creación de perfiles básicos, puede especificar los parámetros específicos del depurador al crear un lanzador de tareas de entrenamiento de SageMaker mediante el SageMaker Python SDK, AWS SDK para Python (Boto3) o AWS Command Line Interface (CLI). En esta guía, nos centramos en cómo cambiar las opciones de creación de perfiles mediante el Amazon SageMaker Python SDK. Esta página proporciona plantillas de referencia para configurar este objeto estimador.

Si desea acceder al panel de métricas de utilización de recursos de su trabajo de entrenamiento en SageMaker Studio, puede ir directamente al Interfaz de usuario del depurador de Amazon SageMaker en experimentos de Amazon SageMaker Studio Classic.

Si desea activar las reglas que detectan automáticamente los problemas de utilización de los recursos del sistema, puede añadir el parámetro rules en el objeto estimador para activar las reglas.

importante

Para utilizar las características más recientes del depurador de SageMaker, debe actualizar el SageMaker Python SDK y la biblioteca cliente SMDebug. En su kernel de iPython, cuaderno de Jupyter o entorno de JupyterLab, ejecute el siguiente código para instalar las últimas versiones de las bibliotecas y reiniciar el kernel.

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

Plantilla de código para configurar un objeto estimador de SageMaker AI con los módulos de Python del depurador de SageMaker en el SageMaker AI Python SDK.

Para ajustar la configuración básica de creación de perfiles (profiler_config) o añadir las reglas del generador de perfiles (rules), seleccione una de las pestañas para obtener la plantilla para configurar un estimador de SageMaker AI. En las siguientes páginas encontrará más información acerca de cómo configurar los dos parámetros.

nota

Los siguientes ejemplos de código no se pueden ejecutar directamente. Continúe con las siguientes secciones para aprender a configurar cada parámetro.

PyTorch
# An example of constructing a SageMaker AI PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_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 ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.8.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_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 ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
nota

En el caso de MXNet, al configurar el parámetro profiler_config, solo puede configurarlo para la monitorización del sistema. Las métricas del marco de perfiles no son compatibles con MXNet.

XGBoost
# An example of constructing a SageMaker AI XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
nota

En el caso de XGBoost, al configurar el parámetro profiler_config, solo puede configurarlo para monitorizar el sistema. Las métricas del marco de creación de perfiles no son compatibles con XGBoost.

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 ProfilerConfig, DebuggerHookConfig, Rule, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] 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 profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)

A continuación, se proporcionan breves descripciones de los parámetros.

nota

El depurador guarda de forma segura los datos de salida en subcarpetas del bucket de S3 predeterminado. Por ejemplo, el formato del URI predeterminado del bucket de S3 es s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. El creador crea tres subcarpetas: debug-output, profiler-output y rule-output. También puede recuperar los URI predeterminados del bucket de S3 mediante los classmethods del estimador de SageMaker AI.

Consulte los siguientes temas para obtener información detallada sobre cómo configurar los parámetros específicos del depurador.