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

Configure un estimador con parámetros para la creación de perfiles básicos mediante los módulos Python de Amazon Debugger SageMaker

De forma predeterminada, la creación de perfiles básicos de SageMaker Debugger 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 SageMaker formación enviados con el SDK de Amazon Python SageMaker . SageMaker Debugger recopila estas métricas de uso 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 quieres acceder al panel de métricas de uso de los recursos de tu trabajo de formación en SageMaker Studio, puedes ir directamente alInterfaz de usuario de Amazon SageMaker Debugger en Amazon SageMaker Studio Classic Experiments.

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 Debugger al crear un iniciador de tareas de SageMaker entrenamiento mediante el SDK de SageMaker Python o (CLI). AWS SDK for Python (Boto3) AWS Command Line Interface En esta guía, nos centramos en cómo cambiar las opciones de creación de perfiles mediante el SDK de Amazon SageMaker Python.

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 funciones más recientes del SageMaker Debugger, debe actualizar el SDK de SageMaker Python y la biblioteca SMDebug cliente. En su núcleo de iPython, Jupyter Notebook o JupyterLab entorno, ejecute el siguiente código para instalar las últimas versiones de las bibliotecas y reiniciar el núcleo.

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 SageMaker estimador con los módulos Python SageMaker Debugger del SageMaker SDK de Python

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. SageMaker 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 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 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 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 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 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 métodos de la clase SageMaker estimador.

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