

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.

# Supervisión del uso de recursos de computación de AWS en Amazon SageMaker Studio Classic
<a name="debugger-profile-training-jobs"></a>

Para realizar un seguimiento del uso de los recursos informáticos de su trabajo de entrenamiento, utilice las herramientas de monitorización que ofrece el depurador de Amazon SageMaker. 

Para cualquier trabajo de entrenamiento que ejecute en SageMaker AI con el SageMaker Python SDK, el depurador recopila métricas básicas de utilización de 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 cada 500 milisegundos. Para ver el panel de control de las métricas de utilización de los recursos de su trabajo de entrenamiento, simplemente utilice la [interfaz de usuario del depurador de SageMaker en Experimentos de SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html).

Las operaciones y los pasos del aprendizaje profundo pueden funcionar en intervalos de milisegundos. En comparación con las métricas de Amazon CloudWatch, que recopilan las métricas a intervalos de 1 segundo, el depurador proporciona una granularidad más precisa de las métricas de utilización de los recursos en intervalos de 100 milisegundos (0,1 segundos) para que pueda profundizar en las métricas a nivel de una operación o un paso. 

Si desea cambiar el intervalo de tiempo de recopilación de métricas, puede añadir un parámetro para la configuración de la creación de perfiles a su lanzador de trabajos de entrenamiento. Por ejemplo, si utiliza el SageMaker AI Python SDK, tendrá que pasar el parámetro `profiler_config` al crear un objeto estimador. Para obtener información sobre cómo ajustar el intervalo de recopilación de métricas de utilización de los recursos, consulte [Plantilla de código para configurar un objeto estimador de SageMaker IA con los módulos SageMaker Debugger Python del SDK de SageMaker AI Python](debugger-configuration-for-profiling.md#debugger-configuration-structure-profiler) y, a continuación, [Configurar los ajustes para la creación de perfiles básicos de la utilización de los recursos del sistema](debugger-configure-system-monitoring.md).

Además, puede añadir herramientas de detección de problemas denominadas *reglas de creación de perfiles integradas* que proporciona el depurador de SageMaker. Las reglas de creación de perfiles integradas analizan las métricas de utilización de los recursos y detectan problemas de rendimiento computacional. Para obtener más información, consulte [Utilice reglas de creación de perfiles integradas administradas por Amazon Debugger SageMaker](use-debugger-built-in-profiler-rules.md). Puede recibir los resultados del análisis de reglas a través de la [interfaz de usuario del depurador de SageMaker en Experimentos de SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html) o en el [informe de creación de perfiles del de depurador de SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html). También puede crear reglas de creación de perfiles personalizadas mediante el SageMaker Python SDK. 

Para obtener más información sobre las funciones de monitorización del depurador de SageMaker, consulte los siguientes temas.

**Topics**
+ [Configuración del estimador con parámetros para la creación de perfiles básicos mediante los módulos Python de Amazon Debugger SageMaker](debugger-configuration-for-profiling.md)
+ [Utilice reglas de creación de perfiles integradas administradas por Amazon Debugger SageMaker](use-debugger-built-in-profiler-rules.md)
+ [Lista de reglas integradas del generador de perfiles del depurador](debugger-built-in-profiler-rules.md)
+ [Interfaz de usuario de Amazon SageMaker Debugger en Amazon SageMaker Studio Classic Experiments](debugger-on-studio.md)
+ [SageMaker Informe interactivo sobre el depurador](debugger-profiling-report.md)
+ [Análisis de datos mediante la biblioteca cliente de Python del depurador](debugger-analyze-data.md)

# Configuración del estimador con parámetros para la creación de perfiles básicos mediante los módulos Python de Amazon Debugger SageMaker
<a name="debugger-configuration-for-profiling"></a>

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 ](https://sagemaker.readthedocs.io/en/stable). 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 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 para 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](https://sagemaker.readthedocs.io/en/stable). Esta página proporciona plantillas de referencia para configurar este objeto estimador.

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 al[Interfaz de usuario de Amazon SageMaker Debugger en Amazon SageMaker Studio Classic Experiments](debugger-on-studio.md).

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 estimador de SageMaker IA con los módulos SageMaker Debugger Python del SDK de SageMaker AI Python
<a name="debugger-configuration-structure-profiler"></a>

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 IA. 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 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**  
Pues MXNet, al configurar el `profiler_config` parámetro, solo puede configurarlo para la supervisión del sistema. No se admiten las métricas del marco de creación de perfiles. 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**  
Pues XGBoost, al configurar el `profiler_config` parámetro, solo puede configurarlo para la supervisión del sistema. No se admiten las métricas del marco de creación de perfiles. 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.
+ `profiler_config`: configure el depurador para recopilar las métricas del sistema y las métricas del marco de su trabajo de entrenamiento y guardarlas en el URI de su bucket de S3 protegido o en su máquina local. Puede establecer con qué frecuencia o con qué flexibilidad se recopilan las métricas del sistema. Para obtener información sobre cómo configurar el parámetro `profiler_config`, consulte [Configurar los ajustes para la creación de perfiles básicos de la utilización de los recursos del sistema](debugger-configure-system-monitoring.md) y [Configuración del estimador para la creación de perfiles del marco](debugger-configure-framework-profiling.md).
+ `rules`— Configure este parámetro para activar las reglas integradas del SageMaker Debugger que desee ejecutar en paralelo. Asegúrese de que su trabajo de entrenamiento tenga acceso a este bucket de S3. Las reglas se basan en contenedores de procesamiento y analizan automáticamente su trabajo de entrenamiento para detectar problemas de rendimiento computacional y operativo. La regla [ProfilerReport](debugger-built-in-profiler-rules.md#profiler-report) es la regla más integrada que ejecuta todas las reglas de creación de perfiles integradas y guarda los resultados de la creación de perfiles como un informe en su bucket protegido de S3. Si quiere aprender a configurar el parámetro `rules`, consulte [Utilice reglas de creación de perfiles integradas administradas por Amazon Debugger SageMaker](use-debugger-built-in-profiler-rules.md).

**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 el depósito S3 predeterminado URIs mediante los métodos de la clase [SageMaker AI Estimator](debugger-estimator-classmethods.md).

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

**Topics**
+ [Plantilla de código para configurar un objeto estimador de SageMaker IA con los módulos SageMaker Debugger Python del SDK de SageMaker AI Python](#debugger-configuration-structure-profiler)
+ [Configurar los ajustes para la creación de perfiles básicos de la utilización de los recursos del sistema](debugger-configure-system-monitoring.md)
+ [Configuración del estimador para la creación de perfiles del marco](debugger-configure-framework-profiling.md)
+ [Actualización de la configuración de monitorización del sistema del depurador y creación de perfiles del marco mientras se ejecuta un trabajo de entrenamiento](debugger-update-monitoring-profiling.md)
+ [Desactivar el depurador](debugger-turn-off-profiling.md)

# Configurar los ajustes para la creación de perfiles básicos de la utilización de los recursos del sistema
<a name="debugger-configure-system-monitoring"></a>

Para ajustar el intervalo de tiempo para recopilar las métricas de uso, utilice la operación de `ProfilerConfig` API para crear un objeto paramétrico y, al mismo tiempo, cree un marco de SageMaker IA o un estimador genérico, según sus preferencias.

**nota**  
De forma predeterminada, para todos los trabajos de SageMaker formación, Debugger recopila métricas de uso de recursos de las instancias de Amazon EC2 cada 500 milisegundos para la supervisión del sistema, sin ningún parámetro específico de Debugger especificado en los estimadores de IA. SageMaker   
El depurador guarda las métricas del sistema en el bucket de S3 predeterminado. El formato del URI predeterminado del bucket de S3 es `s3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/profiler-output/`.

El siguiente ejemplo de código muestra cómo configurar el parámetro `profiler_config` con un intervalo de tiempo de monitorización del sistema de 1000 milisegundos.

```
from sagemaker.debugger import ProfilerConfig

profiler_config=ProfilerConfig(
    system_monitor_interval_millis=1000
)
```
+  `system_monitor_interval_millis`(int): especifique los intervalos de monitorización en milisegundos para registrar las métricas del sistema. Los valores disponibles son 100, 200, 500, 1000 (1 segundo), 5000 (5 segundos) y 60 000 (1 minuto) milisegundos. El valor predeterminado es de 500 milisegundos.

Para ver el progreso de la monitorización del sistema, consulte [Abra el panel de Amazon SageMaker Debugger Insights](debugger-on-studio-insights.md).

# Configuración del estimador para la creación de perfiles del marco
<a name="debugger-configure-framework-profiling"></a>

**aviso**  
A favor de [Amazon SageMaker Profiler](train-use-sagemaker-profiler.md), SageMaker AI Debugger desaprueba la función de creación de perfiles del marco a partir de las versiones 2.11 y 2.0. TensorFlow PyTorch Puede seguir utilizando la función en las versiones anteriores de los marcos y de la siguiente manera. SDKs   
SageMaker SDK de Python <= v2.130.0
PyTorch >= v1.6.0, < v2.0
TensorFlow >= v2.3.1, < v2.11
Véase también [16 de marzo de 2023](debugger-release-notes.md#debugger-release-notes-20230315).

Para habilitar la creación de perfiles del marco del depurador, configure el parámetro `framework_profile_params` al construir un estimador. La creación de perfiles del marco del depurador recopila métricas del marco, como los datos de la etapa de inicialización, los procesos de carga de datos, los operadores en Python de los marcos de aprendizaje profundo y los scripts de entrenamiento, la creación de perfiles detallados dentro y entre los pasos, con las opciones de cProfile o Pyinstrument. Con esta clase `FrameworkProfile`, puede configurar opciones de creación de perfiles de marcos personalizados. 

**nota**  
Antes de empezar con la creación de perfiles del marco del depurador, compruebe que el marco utilizado para crear el modelo sea compatible con el depurador para la creación de perfiles del marco. Para obtener más información, consulte [Marcos y algoritmos compatibles](debugger-supported-frameworks.md).   
El depurador guarda las métricas del marco en un bucket de S3 predeterminado. El formato del URI del bucket de S3 predeterminado es `s3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/profiler-output/`.

**Topics**
+ [creación de perfiles de marco predeterminada](debugger-configure-framework-profiling-basic.md)
+ [Supervisión del sistema predeterminada y creación de perfiles de marco personalizada para pasos objetivo o un intervalo de tiempo objetivo](debugger-configure-framework-profiling-range.md)
+ [Supervisión del sistema predeterminada y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles](debugger-configure-framework-profiling-options.md)

# creación de perfiles de marco predeterminada
<a name="debugger-configure-framework-profiling-basic"></a>

La creación de perfiles de marco predeterminada del depurador incluye las siguientes opciones: creación de perfiles detallados, creación de perfiles del cargador de datos y creación de perfiles de Python. El siguiente código de ejemplo es la configuración del parámetro `profiler_config` más sencilla para iniciar la monitorización del sistema y la creación de perfiles del marco por defecto. La clase `FrameworkProfile` del siguiente código de ejemplo inicia la creación de perfiles del marco predeterminado cuando comienza un trabajo de entrenamiento. 

```
from sagemaker.debugger import ProfilerConfig, FrameworkProfile
    
profiler_config=ProfilerConfig(
    framework_profile_params=FrameworkProfile()
)
```

Con la configuración de este parámetro `profiler_config`, el depurador utiliza los ajustes predeterminados de monitorización y creación de perfiles. El depurador monitoriza las métricas del sistema cada 500 milisegundos; perfila el quinto paso con la opción de creación de perfiles detallados; el séptimo paso con la opción de creación de perfiles del cargador de datos; y los pasos noveno, décimo y undécimo con la opción de creación de perfiles de Python. 

Para encontrar las opciones de configuración de creación de perfiles disponibles, los ajustes de parámetros predeterminados y ejemplos de cómo configurarlos, consulte [Supervisión del sistema predeterminada y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles](debugger-configure-framework-profiling-options.md) y [SageMaker Debugger APIs , FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) en el SDK de Amazon [ SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

Si quiere cambiar el intervalo de monitorización del sistema y activar la creación de perfiles del marco por defecto, puede especificar el parámetro `system_monitor_interval_millis` de forma explícita con el parámetro `framework_profile_params`. Por ejemplo, para monitorizar cada 1000 milisegundos y habilitar la creación de perfiles del marco por defecto, utilice el siguiente código de ejemplo.

```
from sagemaker.debugger import ProfilerConfig, FrameworkProfile
    
profiler_config=ProfilerConfig(
    system_monitor_interval_millis=1000,
    framework_profile_params=FrameworkProfile()
)
```

Para obtener más información sobre la `FrameworkProfile` clase, consulte [SageMaker Debugger APIs , FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) en el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

# Supervisión del sistema predeterminada y creación de perfiles de marco personalizada para pasos objetivo o un intervalo de tiempo objetivo
<a name="debugger-configure-framework-profiling-range"></a>

Si quiere especificar los pasos o intervalos de tiempo objetivo para perfilar su trabajo de entrenamiento, debe especificar los parámetros de la clase `FrameworkProfile`. Los siguientes ejemplos de código, muestran cómo especificar los rangos de destino para la creación de perfiles junto con la monitorización del sistema.
+ **Para un rango de pasos objetivo**

  Con el siguiente ejemplo de configuración, el depurador monitoriza todo el trabajo de entrenamiento cada 500 milisegundos (la monitorización predeterminada) y perfila un rango de pasos objetivo desde el paso 5 al paso 15 (para 10 pasos).

  ```
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
      
  profiler_config=ProfilerConfig(
      framework_profile_params=FrameworkProfile(start_step=5, num_steps=10)
  )
  ```

  Con el siguiente ejemplo de configuración, el depurador monitoriza todo el trabajo de entrenamiento cada 1000 milisegundos y perfila un rango de pasos objetivo desde el paso 5 al paso 15 (para 10 pasos).

  ```
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
      
  profiler_config=ProfilerConfig(
      system_monitor_interval_millis=1000,
      framework_profile_params=FrameworkProfile(start_step=5, num_steps=10)
  )
  ```
+ **Para un intervalo de tiempo objetivo**

  Con el siguiente ejemplo de configuración, el depurador monitoriza todo el trabajo de entrenamiento cada 500 milisegundos (la monitorización predeterminada) y perfila un intervalo de tiempo objetivo a partir del tiempo actual de Unix durante 600 segundos.

  ```
  import time
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
  
  profiler_config=ProfilerConfig(
      framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600)
  )
  ```

  Con el siguiente ejemplo de configuración, el depurador monitoriza todo el trabajo de entrenamiento cada 1000 milisegundos y perfila un intervalo de tiempo objetivo a partir del tiempo actual de Unix durante 600 segundos.

  ```
  import time
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
  
  profiler_config=ProfilerConfig(
      system_monitor_interval_millis=1000,
      framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600)
  )
  ```

  La creación de perfiles del marco se realiza para todas las opciones de creación de perfiles en el paso o intervalo de tiempo objetivo. 

  Para obtener más información sobre las opciones de creación de perfiles disponibles, consulte [SageMaker Debugger APIs , FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) en el SDK de Amazon [ SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

  La siguiente sección describe cómo programar las opciones de creación de perfiles disponibles.

# Supervisión del sistema predeterminada y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles
<a name="debugger-configure-framework-profiling-options"></a>

En esta sección se proporciona información sobre las clases de configuración de perfiles compatibles, así como un ejemplo de configuración. Puede utilizar las siguientes clases de configuración de creación de perfiles para gestionar las opciones de creación de perfiles del marco:
+ [DetailedProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DetailedProfilingConfig)— Especifique un paso o intervalo de tiempo objetivo para perfilar las operaciones del marco utilizando los generadores de perfiles del marco nativos (generador de perfiles y generador de TensorFlow perfiles). PyTorch Por ejemplo, si se utilizan TensorFlow, los enlaces del depurador permiten al generador de TensorFlow perfiles recopilar métricas específicas del marco. TensorFlow La creación de perfiles detallados le permite crear un perfil de todos los operadores del marco en un paso previo (antes del primer paso), dentro de los pasos y entre los pasos de un trabajo de entrenamiento.
**nota**  
La creación de perfiles detallados puede aumentar considerablemente el consumo de memoria de la GPU. No recomendamos activar la creación de perfiles detallados durante más de un par de pasos.
+ [DataloaderProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DataloaderProfilingConfig)— Especifique un paso o intervalo de tiempo objetivo para perfilar los procesos del cargador de datos del marco de aprendizaje profundo. El depurador recopila todos los eventos de carga de datos de los marcos.
**nota**  
La creación de perfiles de los cargadores de datos puede reducir el rendimiento del entrenamiento al recopilar información de los cargadores de datos. No recomendamos activar la creación de perfiles del cargador de datos durante más de un par de pasos.  
El depurador está preconfigurado para anotar los procesos del cargador de datos solo para los contenedores de AWS del aprendizaje profundo. El depurador no puede perfilar los procesos del cargador de datos desde ningún otro contenedor de entrenamiento externo o personalizado.
+ [PythonProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.PythonProfilingConfig)— Especifique un paso o rango de tiempo objetivo para perfilar las funciones de Python. También puede elegir entre dos generadores de perfiles de Python: cProfile y Pyinstrument.
  + *cProfile*: el generador de perfiles de Python estándar. cProfile recopila información de cada operador de Python llamado durante el entrenamiento. Con cProfile, el depurador ahorra tiempo acumulado y anotaciones para cada llamada de función, proporcionando detalles completos sobre las funciones de Python. En el aprendizaje profundo, por ejemplo, las funciones llamadas con más frecuencia pueden ser los filtros convolucionales y los operadores de paso hacia atrás, y cProfile perfila cada una de ellas. Para la opción cProfile, también puede seleccionar una opción de temporizador: tiempo total, tiempo de la CPU y tiempo fuera de la CPU. Si bien puede perfilar todas las llamadas a funciones que se ejecutan en los procesadores (tanto de la CPU como de la GPU) en tiempo de CPU, también puede identificar los cuellos de botella I/O o los cuellos de botella de la red con la opción de tiempo fuera de la CPU. El valor predeterminado es el tiempo total y el depurador crea un perfil tanto del tiempo de la CPU como del tiempo fuera de la CPU. Con cProfile, puede desglosar cada una de las funciones al analizar los datos del perfil.
  + *Pyinstrument*: Pyinstrument es un generador de perfiles de Python de bajo costo que funciona en función del muestreo. Con la opción Pyinstrument, el depurador toma muestras de los eventos de creación de perfiles cada milisegundo. Como Pyinstrument mide el tiempo transcurrido como un reloj de pared en lugar del tiempo de la CPU, la opción Pyinstrument puede ser una mejor opción que la opción cProfile para reducir el ruido de la creación de perfiles (filtrando las llamadas de funciones irrelevantes que son acumulativamente rápidas) y capturar operadores que realmente requieren un uso intensivo de cómputo (lentitud acumulativa) para entrenar el modelo. Con Pyinstrument, puede ver un árbol de llamadas a funciones y comprender mejor la estructura y la causa raíz de la lentitud.
**nota**  
Habilitar la creación de perfiles de Python puede ralentizar el tiempo total de entrenamiento. cProfile perfila los operadores de Python llamados con más frecuencia en cada llamada, por lo que el tiempo de procesamiento de la creación de perfiles aumenta con respecto al número de llamadas. En el caso de Pyinstrument, el tiempo acumulado de creación de perfiles aumenta con respecto al tiempo debido a su mecanismo de muestreo.

El siguiente ejemplo de configuración muestra la estructura completa cuando se utilizan las diferentes opciones de creación de perfiles con valores específicos.

```
import time
from sagemaker.debugger import (ProfilerConfig, 
                                FrameworkProfile, 
                                DetailedProfilingConfig, 
                                DataloaderProfilingConfig, 
                                PythonProfilingConfig,
                                PythonProfiler, cProfileTimer)

profiler_config=ProfilerConfig(
    system_monitor_interval_millis=500,
    framework_profile_params=FrameworkProfile(
        detailed_profiling_config=DetailedProfilingConfig(
            start_step=5, 
            num_steps=1
        ),
        dataloader_profiling_config=DataloaderProfilingConfig(
            start_step=7, 
            num_steps=1
        ),
        python_profiling_config=PythonProfilingConfig(
            start_step=9, 
            num_steps=1, 
            python_profiler=PythonProfiler.CPROFILE, 
            cprofile_timer=cProfileTimer.TOTAL_TIME
        )
    )
)
```

Para obtener más información sobre las opciones de creación de perfiles disponibles [DetailedProfilingConfig[DataloaderProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DataloaderProfilingConfig)](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DetailedProfilingConfig), consulte y [PythonProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.PythonProfilingConfig)en el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

# Actualización de la configuración de monitorización del sistema del depurador y creación de perfiles del marco mientras se ejecuta un trabajo de entrenamiento
<a name="debugger-update-monitoring-profiling"></a>

Si desea activar o actualizar la configuración de supervisión del depurador para un trabajo de formación que se está ejecutando actualmente, utilice los siguientes métodos de extensión del estimador de SageMaker IA:
+ Para activar la monitorización del sistema del depurador para un trabajo de entrenamiento en ejecución y recibir un informe de creación de perfiles del depurador, utilice lo siguiente:

  ```
  estimator.enable_default_profiling()
  ```

  Al utilizar el método `enable_default_profiling`, el depurador inicia la monitorización predeterminada del sistema y la regla integrada `ProfileReport`, que genera un informe de creación de perfiles completo al final del trabajo de entrenamiento. Solo es posible invocar este método si el trabajo de entrenamiento actual se está ejecutando sin supervisión ni creación de perfiles por parte del depurador.

  [Para obtener más información, consulte [estimator.enable\$1default\$1profiling](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator.enable_default_profiling) en el SDK de Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)
+ Para actualizar la configuración de monitorización del sistema, utilice lo siguiente:

  ```
  estimator.update_profiler(
      system_monitor_interval_millis=500
  )
  ```

  [Para obtener más información, consulte [estimator.update\$1profiler](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator.update_profiler) en el SDK de Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)

# Desactivar el depurador
<a name="debugger-turn-off-profiling"></a>

Si quiere desactivar el depurador por completo, realice una de las siguientes acciones:
+ Antes de empezar un trabajo de entrenamiento, haga lo siguiente:

  Para desactivar la creación de perfiles, incluya el parámetro `disable_profiler` en su estimador y establézcalo en `True`.
**aviso**  
Si lo desactiva, no podrá ver todo el panel de información del depurador de Studio ni el informe de creación de perfiles generado automáticamente.

  Para desactivar la depuración, establezca el parámetro `debugger_hook_config` en `False`.
**aviso**  
Si lo desactiva, no podrá recopilar los tensores de salida y no podrá depurar los parámetros de su modelo.

  ```
  estimator=Estimator(
      ...
      disable_profiler=True
      debugger_hook_config=False
  )
  ```

  [Para obtener más información sobre los parámetros específicos del depurador, consulte [SageMaker AI Estimator en](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator) el SDK de Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)
+ Haga lo siguiente mientras se ejecuta un trabajo de entrenamiento.

  Para deshabilitar tanto la supervisión como la creación de perfiles mientras se está ejecutando el trabajo de entrenamiento, utilice el siguiente classmethod del estimador:

  ```
  estimator.disable_profiling()
  ```

  Para deshabilitar únicamente la creación de perfiles marco y mantener la monitorización del sistema, utilice el método `update_profiler`.

  ```
  estimator.update_profiler(disable_framework_metrics=true)
  ```

  [Para obtener más información sobre los métodos de extensión del estimador, consulte los métodos de clase [estimator.disable\$1profiling y [estimator.update\$1profiler](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator.update_profiler)](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator.disable_profiling) en la documentación del SDK de Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)

# Utilice reglas de creación de perfiles integradas administradas por Amazon Debugger SageMaker
<a name="use-debugger-built-in-profiler-rules"></a>

Las reglas del generador de perfiles integrado de Amazon SageMaker Debugger analizan las métricas del sistema y las operaciones del marco recopiladas durante el entrenamiento de un modelo. El depurador ofrece la operación de la API `ProfilerRule` que ayuda a configurar las reglas para monitorizar las operaciones y los recursos informáticos de entrenamiento y detectar anomalías. Por ejemplo, las reglas de creación de perfiles pueden ayudarlo a detectar si hay problemas computacionales, como cuellos de botella en la CPU, un tiempo de I/O espera excesivo, una carga de trabajo desequilibrada entre los trabajadores de la GPU o la infrautilización de los recursos informáticos. Para ver una lista completa de las reglas integradas de creación de perfiles disponibles, consulte [Lista de reglas integradas del generador de perfiles del depurador](debugger-built-in-profiler-rules.md). En los temas siguientes se muestra cómo utilizar las reglas integradas del depurador con ajustes de parámetros predeterminados y valores de parámetros personalizados.

**nota**  
Las reglas integradas se proporcionan a través de los contenedores SageMaker de procesamiento de Amazon y SageMaker Debugger las gestiona completamente sin coste adicional. Para obtener más información sobre la facturación, consulta la página de [ SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/).

**Topics**
+ [Utilice las reglas del generador de perfiles integrado en SageMaker Debugger con sus ajustes de parámetros predeterminados](#debugger-built-in-profiler-rules-configuration)
+ [Utilizar las reglas integradas del creador de perfiles del depurador con valores de parámetros personalizados](#debugger-built-in-profiler-rules-configuration-param-change)

## Utilice las reglas del generador de perfiles integrado en SageMaker Debugger con sus ajustes de parámetros predeterminados
<a name="debugger-built-in-profiler-rules-configuration"></a>

Para añadir las reglas integradas del SageMaker Debugger a su estimador, debe configurar un objeto de lista. `rules` El siguiente código de ejemplo muestra la estructura básica de la lista de las reglas integradas del SageMaker Debugger.

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules=[
    ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_1()),
    ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_2()),
    ...
    ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_n()),
    ... # You can also append more debugging rules in the Rule.sagemaker(rule_configs.*()) format.
]

estimator=Estimator(
    ...
    rules=rules
)
```

Para obtener una lista completa de las reglas integradas disponibles, consulte [Lista de reglas integradas del generador de perfiles del depurador](debugger-built-in-profiler-rules.md).

Para usar las reglas de creación de perfiles e inspeccionar el rendimiento computacional y el progreso de su trabajo de entrenamiento, añada la [https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#profiler-report](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#profiler-report)regla Debugger. SageMaker Esta regla activa todas las reglas integradas en la familia [ ProfilerRule`ProfilerRule`Debugger](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#debugger-built-in-profiler-rules-ProfilerRule). Además, esta regla genera un informe de creación de perfiles agregado. Para obtener más información, consulte [Informe de creación de perfiles generado mediante SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html) el depurador. Puede utilizar el siguiente código para añadir la regla del informe de creación de perfiles a su estimador de entrenamiento.

```
from sagemaker.debugger import Rule, rule_configs

rules=[
    ProfilerRule.sagemaker(rule_configs.ProfilerReport())
]
```

Al iniciar el trabajo de entrenamiento con la regla `ProfilerReport`, el depurador recopila los datos de utilización de los recursos cada 500 milisegundos. El depurador analiza la utilización de los recursos para identificar si su modelo tiene problemas de cuellos de botella. Si las reglas detectan anomalías en el entrenamiento, el estado de evaluación de la regla cambia a `IssueFound`. Puede configurar acciones automatizadas, como notificar problemas de formación y detener los trabajos de formación mediante Amazon CloudWatch Events y AWS Lambda. Para obtener más información, consulte [Reglas de Action on Amazon SageMaker Debugger](debugger-action-on-rules.md).

## Utilizar las reglas integradas del creador de perfiles del depurador con valores de parámetros personalizados
<a name="debugger-built-in-profiler-rules-configuration-param-change"></a>

Si desea ajustar los valores de los parámetros de las reglas integradas y personalizar la expresión regular de la colección de tensores, configure los parámetros `base_config` y `rule_parameters` para los métodos de las clases `ProfilerRule.sagemaker` y `Rule.sagemaker`. En el caso de los métodos de la clase `Rule.sagemaker`, también puede personalizar las colecciones de tensores mediante el parámetro `collections_to_save`. Para obtener instrucciones sobre cómo usar la clase `CollectionConfig`, consulte [Configuración de las colecciones de tensores mediante la API de `CollectionConfig`](debugger-configure-tensor-collections.md). 

Utilice la siguiente plantilla de configuración para que las reglas integradas personalicen los valores de los parámetros. Al cambiar los parámetros de la regla como desee, puede ajustar la sensibilidad de las reglas que vayan a iniciarse. 
+ El argumento `base_config` es desde donde se llaman a los métodos de reglas integrados.
+ El argumento `rule_parameters` consiste en ajustar los valores clave predeterminados de las reglas integradas que se enumeran en [Lista de reglas integradas del generador de perfiles del depurador](debugger-built-in-profiler-rules.md).

Para obtener más información sobre la clase de reglas, los métodos y los parámetros del depurador, consulte la [clase de reglas del depurador de SageMaker IA](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html) en el SDK de Amazon [ SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig

rules=[
    ProfilerRule.sagemaker(
        base_config=rule_configs.BuiltInProfilerRuleName(),
        rule_parameters={
                "key": "value"
        }
    )
]
```

Las descripciones de los parámetros y los ejemplos de personalización de valores vienen proporcionados para cada regla en [Lista de reglas integradas del generador de perfiles del depurador](debugger-built-in-profiler-rules.md).

Para obtener una configuración JSON de bajo nivel de las reglas integradas del depurador mediante la API `CreateTrainingJob`, consulte [Configurar el depurador mediante SageMaker la API](debugger-createtrainingjob-api.md).

# Lista de reglas integradas del generador de perfiles del depurador
<a name="debugger-built-in-profiler-rules"></a>

Utilice las reglas del generador de perfiles integrado en Debugger que proporciona Amazon SageMaker Debugger y analice las métricas recopiladas durante el entrenamiento de sus modelos. Estas reglas supervisan diversas condiciones comunes que son fundamentales para realizar un trabajo de entrenamiento correctamente. Puede invocar las reglas del generador de perfiles integrado mediante el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) o las operaciones de SageMaker API de bajo nivel. El uso de reglas integradas no conlleva ningún costo adicional. Para obtener más información sobre la facturación, consulta la página de [ SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/).

**nota**  
El número máximo de reglas de creación de perfiles integradas que puedes adjuntar a un trabajo de formación es de 20. SageMaker Debugger gestiona completamente las reglas integradas y analiza tu trabajo de formación de forma sincrónica.

**importante**  
Para utilizar las nuevas funciones del depurador, debe actualizar el SDK de SageMaker Python y la biblioteca SMDebug cliente. En su núcleo de iPython, bloc de notas de Jupyter 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)
```

## Reglas del generador de perfiles
<a name="debugger-built-in-profiler-rules-ProfilerRule"></a>

Las siguientes reglas son las reglas integradas del depurador que pueden invocarse con el classmethod `ProfilerRule.sagemaker`.

Regla integrada del depurador para crear el informe de generación de perfiles


| Ámbito de validez | Reglas integradas | 
| --- | --- | 
| Informe de creación de perfiles para cualquier trabajo de formación SageMaker  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-profiler-rules.html)  | 

Reglas integradas del depurador para perfilar la utilización de los recursos del sistema de hardware (métricas del sistema)


| Ámbito de validez | Reglas integradas | 
| --- | --- | 
| Reglas genéricas de monitoreo del sistema para cualquier trabajo SageMaker de formación |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-profiler-rules.html)  | 

Reglas integradas del depurador para las métricas del marco de generación de perfiles


| Ámbito de validez | Reglas integradas | 
| --- | --- | 
| Reglas de creación de perfiles para marcos de aprendizaje profundo (TensorFlow y PyTorch) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-profiler-rules.html)  | 

**aviso**  
A favor de [Amazon SageMaker Profiler](train-use-sagemaker-profiler.md), SageMaker AI Debugger desaprueba la función de creación de perfiles del marco a partir de las versiones 2.11 y 2.0. TensorFlow PyTorch Puede seguir utilizando la función en las versiones anteriores de los marcos y de la siguiente manera. SDKs   
SageMaker SDK de Python <= v2.130.0
PyTorch >= v1.6.0, < v2.0
TensorFlow >= v2.3.1, < v2.11
Véase también [16 de marzo de 2023](debugger-release-notes.md#debugger-release-notes-20230315).

**Para usar las reglas integradas con los valores de los parámetros predeterminados**, utilice el siguiente formato de configuración:

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules = [
    ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()),
    ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()),
    ...
    ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n())
]
```

**Para usar las reglas integradas con la personalización de los valores de los parámetros**, utilice el siguiente formato de configuración:

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules = [
    ProfilerRule.sagemaker(
        base_config=rule_configs.BuiltInRuleName(),
        rule_parameters={
                "key": "value"
        }
    )
]
```

Para encontrar las claves disponibles del parámetro `rule_parameters`, consulte las tablas de descripción de los parámetros.

Se proporcionan ejemplos de códigos de configuración de reglas para cada regla integrada a continuación de las tablas de descripción de parámetros.
+ Para obtener instrucciones completas y ejemplos del uso de las reglas integradas del depurador, consulte [Código de ejemplo de reglas integradas del depurador](debugger-built-in-rules-example.md#debugger-deploy-built-in-rules).
+ Para obtener instrucciones completas sobre el uso de las reglas integradas con las operaciones de la API de bajo nivel SageMaker , consulte. [Configurar el depurador mediante SageMaker la API](debugger-createtrainingjob-api.md)

## ProfilerReport
<a name="profiler-report"></a>

La ProfilerReport regla invoca todas las reglas integradas para la supervisión y la creación de perfiles. Crea un informe de generación de perfiles y se actualiza cuando se activan las reglas individuales. Puede descargar un informe completo de generación de perfiles mientras se está realizando un trabajo de entrenamiento o una vez finalizado el trabajo de entrenamiento. Puede ajustar los valores de los parámetros de la regla para personalizar la sensibilidad de las reglas integradas de supervisión y generación de perfiles. El siguiente código de ejemplo muestra el formato básico para ajustar los parámetros de la regla integrada a través de la ProfilerReport regla.

```
rules=[
    ProfilerRule.sagemaker(
        rule_configs.ProfilerReport(
            <BuiltInRuleName>_<parameter_name> = value
        )
    )  
]
```

Si activa esta ProfilerReport regla sin ningún parámetro personalizado, como se muestra en el siguiente código de ejemplo, la ProfilerReport regla activa todas las reglas integradas de supervisión y creación de perfiles con sus valores de parámetros predeterminados.

```
rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]
```

El siguiente código de ejemplo muestra cómo especificar y ajustar el `cpu_threshold` parámetro de la CPUBottleneck regla y el `threshold` parámetro de la IOBottleneck regla.

```
rules=[
    ProfilerRule.sagemaker(
        rule_configs.ProfilerReport(
            CPUBottleneck_cpu_threshold = 90,
            IOBottleneck_threshold = 90
        )
    )  
]
```

Para ver qué contiene el informe del generador de perfiles, consulte el informe de creación de [perfiles del SageMaker depurador](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html). Además, dado que esta regla activa todas las reglas de creación de perfiles, también puedes comprobar el estado del análisis de las reglas mediante la interfaz de usuario del [SageMaker depurador](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html) en Studio Experiments. SageMaker 

Descripciones de los parámetros de la regla OverallSystemUsage 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| <BuiltInRuleName>\$1<parameter\$1name> |  Parámetro personalizable para ajustar los umbrales de otras reglas integradas de supervisión y generación de perfiles.  **Opcional** Valor predeterminado: `None`  | 

## BatchSize
<a name="batch-size-rule"></a>

La BatchSize regla ayuda a detectar si la GPU está infrautilizada debido a un tamaño de lote pequeño. Para detectar este problema, esta regla supervisa el uso promedio de la CPU, el uso de la GPU y el uso de la memoria de la GPU. Si de media, el uso de la CPU, la GPU y la memoria de la GPU es bajo, esto puede indicar que el trabajo de entrenamiento puede ejecutarse en un tipo de instancia más pequeño o con un tamaño de lote mayor. Este análisis no funciona para marcos que asignan mucha más memoria. Sin embargo, aumentar el tamaño del lote puede provocar cuellos de botella en el procesamiento o la carga de datos, ya que se requiere más tiempo de preprocesamiento de los datos en cada iteración.

Descripciones de los parámetros de la regla BatchSize 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| cpu\$1threshold\$1p95 |  Define el umbral del 95.º cuantil de utilización de la CPU en porcentaje. **Opcional** Valores válidos: número entero Valor predeterminado: `70` (en porcentaje)  | 
| gpu\$1threshold\$1p95 |  Define el umbral del 95.º cuantil de utilización de la CPU en porcentaje. **Opcional** Valores válidos: número entero Valor predeterminado: `70` (en porcentaje)  | 
| gpu\$1memory\$1threshold\$1p95 | Define el umbral del 95.º cuantil de utilización de la CPU en porcentaje. **Opcional** Valores válidos: número entero Valores predeterminados: `70` (en porcentaje)  | 
| patience | Define el número de puntos de datos que se van a omitir hasta que la regla inicie la evaluación. Los primeros pasos de los trabajos de entrenamiento suelen mostrar un gran volumen de procesos de datos, así que tenga paciencia con la regla y evite que se invoque demasiado pronto con un número determinado de datos de generación de perfiles que especifique con este parámetro. **Opcional** Valores válidos: número entero Valores predeterminados: `100`  | 
| window |  Tamaño de ventana para calcular cuantiles. **Opcional** Valores válidos: número entero Valores predeterminados: `500`  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## CPUBottleneck
<a name="cpu-bottleneck"></a>

La CPUBottleneck regla ayuda a detectar si la GPU está infrautilizada debido a los cuellos de botella de la CPU. La regla devuelve el valor True si el número de cuellos de botella de la CPU supera un umbral predefinido.

Descripciones de los parámetros de la regla CPUBottleneck 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| threshold |  Define el umbral de proporción del tiempo de trabajo con cuellos de botella con respecto al tiempo total de entrenamiento. Si la proporción supera el porcentaje especificado en el parámetro de umbral, la regla cambia el estado de la regla a True. **Opcional** Valores válidos: número entero Valor predeterminado: `50` (en porcentaje)  | 
| gpu\$1threshold |  Un umbral que define un uso bajo de la GPU. **Opcional** Valores válidos: número entero Valor predeterminado: `10` (en porcentaje)  | 
| cpu\$1threshold | Un umbral que define un uso elevado de la CPU. **Opcional** Valores válidos: número entero Valores predeterminados: `90` (en porcentaje)  | 
| patience | Define el número de puntos de datos que se van a omitir hasta que la regla inicie la evaluación. Los primeros pasos de los trabajos de entrenamiento suelen mostrar un gran volumen de procesos de datos, así que tenga paciencia con la regla y evite que se invoque demasiado pronto con un número determinado de datos de generación de perfiles que especifique con este parámetro. **Opcional** Valores válidos: número entero Valores predeterminados: `100`  | 
| scan\$1interval\$1us | Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## GPUMemoryIncrementar
<a name="gpu-memory-increase"></a>

La regla de GPUMemory aumento ayuda a detectar un gran aumento en el uso de memoria en GPUs.

Descripciones de los parámetros de la regla de GPUMemory aumento


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| increase |  Define el umbral para el aumento absoluto de la memoria. **Opcional** Valores válidos: número entero Valor predeterminado: `10` (en porcentaje)  | 
| patience |  Define el número de puntos de datos que se van a omitir hasta que la regla inicie la evaluación. Los primeros pasos de los trabajos de entrenamiento suelen mostrar un gran volumen de procesos de datos, así que tenga paciencia con la regla y evite que se invoque demasiado pronto con un número determinado de datos de generación de perfiles que especifique con este parámetro. **Opcional** Valores válidos: número entero Valores predeterminados: `100`  | 
| window |  Tamaño de ventana para calcular cuantiles. **Opcional** Valores válidos: número entero Valores predeterminados: `500`  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## IOBottleneck
<a name="io-bottleneck"></a>

Esta regla ayuda a detectar si la GPU está siendo infrautilizada debido a cuellos de botella de E/S de datos. La regla devuelve el valor True si el número de cuellos de botella de E/S supera un umbral predefinido.

Descripciones de los parámetros de la regla IOBottleneck 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| threshold | Define el umbral para que la regla devuelva True.**Opcional**Valores válidos: número enteroValor predeterminado: `50` (en porcentaje) | 
| gpu\$1threshold |  Un umbral que define cuándo se considera que la GPU está siendo infrautilizada. **Opcional** Valores válidos: número entero Valor predeterminado: `70` (en porcentaje)  | 
| io\$1threshold | Un umbral que define un tiempo de espera de E/S elevado.**Opcional**Valores válidos: número enteroValores predeterminados: `50` (en porcentaje) | 
| patience | Define el número de puntos de datos que se van a omitir hasta que la regla inicie la evaluación. Los primeros pasos de los trabajos de entrenamiento suelen mostrar un gran volumen de procesos de datos, así que tenga paciencia con la regla y evite que se invoque demasiado pronto con un número determinado de datos de generación de perfiles que especifique con este parámetro.**Opcional**Valores válidos: número enteroValores predeterminados: `1000` | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## LoadBalancing
<a name="load-balancing"></a>

La LoadBalancing regla ayuda a detectar problemas en el equilibrio de la carga de trabajo entre varios GPUs.

Descripciones de los parámetros de la LoadBalancing regla


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| threshold |  Define el porcentaje de carga de trabajo. **Opcional** Valores válidos: número entero Valor predeterminado: `0.5` (proporción sin unidades)  | 
| patience |  Define el número de puntos de datos que se van a omitir hasta que la regla inicie la evaluación. Los primeros pasos de los trabajos de entrenamiento suelen mostrar un gran volumen de procesos de datos, así que tenga paciencia con la regla y evite que se invoque demasiado pronto con un número determinado de datos de generación de perfiles que especifique con este parámetro. **Opcional** Valores válidos: número entero Valores predeterminados: `10`  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## Bajo GPUUtilization
<a name="low-gpu-utilization"></a>

La GPUUtilization regla Low ayuda a detectar si el uso de la GPU es bajo o sufre fluctuaciones. Esto se comprueba para cada GPU de cada trabajador. La regla devuelve el valor True si el 95.º cuantil está por debajo del umbral\$1p95, lo que indica una infrautilización. La regla vuelve a ser verdadera si el 95.º cuantil está por encima del umbral\$1p95 y el 5.º cuantil está por debajo del umbral\$1p5, lo que indica fluctuaciones.

Descripciones de los parámetros de la GPUUtilization regla de nivel bajo


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| threshold\$1p95 |  Un umbral para el 95.º cuantil por debajo del cual se considera que la GPU está siendo infrautilizada. **Opcional** Valores válidos: número entero Valor predeterminado: `70` (en porcentaje)  | 
| threshold\$1p5 | Un umbral para el 5.º cuantil. El valor predeterminado es del 10 por ciento.**Opcional**Valores válidos: número enteroValores predeterminados: `10` (en porcentaje) | 
| patience |  Define el número de puntos de datos que se van a omitir hasta que la regla inicie la evaluación. Los primeros pasos de los trabajos de entrenamiento suelen mostrar un gran volumen de procesos de datos, así que tenga paciencia con la regla y evite que se invoque demasiado pronto con un número determinado de datos de generación de perfiles que especifique con este parámetro. **Opcional** Valores válidos: número entero Valores predeterminados: `1000`  | 
| window |  Tamaño de ventana para calcular cuantiles. **Opcional** Valores válidos: número entero Valores predeterminados: `500`  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## OverallSystemUsage
<a name="overall-system-usage"></a>

La OverallSystemUsage regla mide el uso general del sistema por nodo trabajador. Actualmente, la regla solo agrega valores por nodo y calcula sus percentiles.

Descripciones de los parámetros de la OverallSystemUsage regla


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## MaxInitializationTime
<a name="max-initialization-time"></a>

La MaxInitializationTime regla ayuda a detectar si la inicialización del entrenamiento está tardando demasiado. La regla espera hasta que el primer paso esté disponible.

Descripciones de los parámetros de la regla MaxInitializationTime 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| threshold |  Define el umbral en minutos para esperar a que el primer paso esté disponible. **Opcional** Valores válidos: número entero Valor predeterminado: `20` (en minutos)  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## OverallFrameworkMetrics
<a name="overall-framework-metrics"></a>

La OverallFrameworkMetrics regla resume el tiempo dedicado a las métricas del marco, como el avance y retroceso y la carga de datos.

Descripciones de los parámetros de la regla OverallFrameworkMetrics 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

## StepOutlier
<a name="step-outlier"></a>

La StepOutlier regla ayuda a detectar valores atípicos en la duración de los pasos. Esta regla devuelve `True` si hay valores atípicos con duraciones de paso superiores a los sigmas `stddev` de todas las duraciones de paso en un intervalo de tiempo.

Descripciones de los parámetros de la regla StepOutlier 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. **Obligatorio** Valores válidos: string  | 
| stddev |  Define un factor por el que se multiplica la desviación estándar. Por ejemplo, la regla se invoca de forma predeterminada cuando la duración de un paso es superior o inferior a 5 veces la desviación estándar.  **Opcional** Valores válidos: número entero Valor predeterminado: `5` (en minutos)  | 
| mode | Modo en el que se han guardado los pasos y en el que debe ejecutarse la regla. Por defecto, la regla se ejecutará en los pasos de las fases EVAL y TRAIN**Opcional**Valores válidos: número enteroValor predeterminado: `5` (en minutos) | 
| n\$1outliers | ¿Cuántos valores atípicos se deben ignorar antes de que la regla devuelva el valor True?**Opcional**Valores válidos: número enteroValor predeterminado: `10` | 
| scan\$1interval\$1us |  Intervalo de tiempo durante el que se escanean los archivos de cronología. **Opcional** Valores válidos: número entero Valores predeterminados: `60000000` (en microsegundos)  | 

# Interfaz de usuario de Amazon SageMaker Debugger en Amazon SageMaker Studio Classic Experiments
<a name="debugger-on-studio"></a>

Utilice el panel Amazon SageMaker Debugger Insights de Amazon SageMaker Studio Classic Experiments para analizar el rendimiento del modelo y los cuellos de botella del sistema mientras ejecuta tareas de formación en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Reciba información sobre sus trabajos de entrenamiento y mejore el rendimiento y la precisión del entrenamiento de modelos con los paneles del depurador. De forma predeterminada, el depurador monitoriza las métricas del sistema (CPU, GPU, memoria de la GPU, red y E/S de datos) cada 500 milisegundos y los tensores de salida básicos (pérdida y precisión) cada 500 iteraciones para los trabajos de entrenamiento. También puede personalizar aún más los valores de los parámetros de configuración del Debugger y ajustar los intervalos de almacenamiento mediante la interfaz de usuario de Studio Classic o mediante el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable). 

**importante**  
Si está utilizando una aplicación de Studio Classic existente, elimínela y reiníciela para utilizar las características más recientes de Studio Classic. Para obtener instrucciones sobre cómo reiniciar y actualizar el entorno de Studio Classic, consulte [Actualizar Amazon SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks-update.html). 

**Topics**
+ [Abra el panel de Amazon SageMaker Debugger Insights](debugger-on-studio-insights.md)
+ [Controlador de panel de Amazon SageMaker Debugger Insights](debugger-on-studio-insights-controllers.md)
+ [Explore el panel de Amazon SageMaker Debugger Insights](debugger-on-studio-insights-walkthrough.md)
+ [Cierre la instancia de Amazon SageMaker Debugger Insights](debugger-on-studio-insights-close.md)

# Abra el panel de Amazon SageMaker Debugger Insights
<a name="debugger-on-studio-insights"></a>

En el panel SageMaker Debugger Insights de Studio Classic, puede ver la información sobre la utilización de los recursos informáticos, la utilización de los recursos y los cuellos de botella del sistema de su trabajo de formación que se ejecuta en instancias de Amazon EC2 en tiempo real y después de los entrenamientos.

**nota**  
El panel de SageMaker Debugger Insights ejecuta una aplicación de Studio Classic en una `ml.m5.4xlarge` instancia para procesar y renderizar las visualizaciones. Cada pestaña de SageMaker Debugger Insights ejecuta una sesión de kernel de Studio Classic. Se ejecutan varias sesiones de kernel para varias pestañas de SageMaker Debugger Insights en una sola instancia. Al cerrar una pestaña de SageMaker Debugger Insights, también se cierra la sesión del núcleo correspondiente. La aplicación de Studio Classic permanece activa y acumula cargos por el uso de la instancia `ml.m5.4xlarge`. Para obtener información sobre los precios, consulta la página de [ SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/).

**importante**  
Cuando termine de utilizar el panel de SageMaker Debugger Insights, debe cerrar la `ml.m5.4xlarge` instancia para evitar acumular cargos. Para obtener instrucciones sobre cómo conectarse a una instancia, consulte [Cierre la instancia de Amazon SageMaker Debugger Insights](debugger-on-studio-insights-close.md).

**Para abrir el panel de Debugger Insights SageMaker **

1. En la página de **Inicio** de Studio Classic, seleccione **Experimentos** en el panel de navegación del lado izquierdo.

1. Busque su trabajo de entrenamiento en la página de **Experimentos**. Si su trabajo de entrenamiento está configurado con una ejecución de experimentos, la tarea debería aparecer en la pestaña **Experimentos**; si no configuraste una ejecución de experimentos, la tarea debería aparecer en la pestaña **Ejecuciones no asignadas**.

1. Seleccione (clic) en el enlace del nombre del trabajo de entrenamiento para ver los detalles del trabajo.

1. En el menú **DESCRIPCIÓN GENERAL**, seleccione **Depurador**. Esto debería mostrar las dos secciones siguientes.
   + En la sección de **Reglas del depurador**, puede consultar el estado de las reglas integradas del depurador asociadas al trabajo de entrenamiento.
   + En la sección **Debugger Insights**, encontrará enlaces para abrir SageMaker Debugger Insights en el panel de control.

1. En la sección **SageMaker Debugger Insights**, elija el enlace del nombre del trabajo de formación para abrir el panel de SageMaker Debugger Insights. Se abrirá una ventana de **depuración [] your-training-job-name**. En esta ventana, el depurador proporciona una visión general del rendimiento informático de su trabajo de entrenamiento en instancias de Amazon EC2 y le ayuda a identificar problemas en la utilización de los recursos informáticos.

También puede descargar un informe de creación de perfiles agregado añadiendo la [ProfilerReport](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-rules.html#profiler-report)regla integrada de SageMaker Debugger. Para obtener más información, consulte [Configurar las reglas del generador de perfiles integrado y el [informe de creación de perfiles generado mediante el depurador](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html)](https://docs.aws.amazon.com/sagemaker/latest/dg/use-debugger-built-in-profiler-rules.html). SageMaker 

# Controlador de panel de Amazon SageMaker Debugger Insights
<a name="debugger-on-studio-insights-controllers"></a>

Existen diferentes componentes del controlador del depurador para la monitorización y la creación de perfiles. En esta guía, obtendrá información sobre los componentes del controlador del depurador.

**nota**  
El panel de SageMaker Debugger Insights ejecuta una aplicación Studio Classic en una `ml.m5.4xlarge` instancia para procesar y renderizar las visualizaciones. Cada pestaña de SageMaker Debugger Insights ejecuta una sesión de kernel de Studio Classic. Se ejecutan varias sesiones de kernel para varias pestañas de SageMaker Debugger Insights en una sola instancia. Al cerrar una pestaña de SageMaker Debugger Insights, también se cierra la sesión del núcleo correspondiente. La aplicación de Studio Classic permanece activa y acumula cargos por el uso de la instancia `ml.m5.4xlarge`. Para obtener información sobre los precios, consulta la página de [ SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/).

**importante**  
Cuando termine de utilizar el panel de SageMaker Debugger Insights, cierre la `ml.m5.4xlarge` instancia para evitar acumular cargos. Para obtener instrucciones sobre cómo conectarse a una instancia, consulte [Cierre la instancia de Amazon SageMaker Debugger Insights](debugger-on-studio-insights-close.md).

## SageMaker Interfaz de usuario del controlador Debugger Insights
<a name="debugger-on-studio-insights-controller"></a>

Con el controlador del depurador ubicado en la esquina superior izquierda del panel de información, puede actualizar el panel, configurar o actualizar los ajustes del depurador para monitorizar las métricas del sistema, detener un trabajo de entrenamiento y descargar un informe de creación de perfiles del depurador.

![\[SageMaker Controladores del panel de Debugger Insights\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-studio-insights-refresh.png)

+ Si desea actualizar el cuadro de mandos manualmente, pulse el botón de actualización (la flecha redonda situada en la esquina superior izquierda), tal y como se muestra en la captura de pantalla anterior. 
+ El botón de control de **monitoreo** está activado de forma predeterminada para cualquier trabajo de SageMaker entrenamiento iniciado con el SDK de SageMaker Python. Si no está activado, puede utilizar el botón de conmutación para iniciar la monitorización. Durante la monitorización, el depurador solo recopila métricas de utilización de los recursos para detectar problemas computacionales, como los cuellos de botella de la CPU y la infrautilización de la GPU. Para obtener una lista completa de los problemas de uso de recursos que el depurador supervisa, consulte [Reglas integradas del depurador para crear perfiles de uso de recursos de sistemas de hardware (métricas del sistema)](debugger-built-in-profiler-rules.md#built-in-rules-monitoring).
+ El botón **Configurar monitorización** abre una ventana emergente que puede utilizar para configurar o actualizar la frecuencia de recopilación de datos y la ruta S3 para guardar los datos.   
![\[La ventana emergente para configurar los ajustes de supervisión del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-studio-enable-profiling-2.png)

  Puede especificar los valores de los siguientes campos.
  + **URI del bucket S3**: especifique el URI del bucket S3 base.
  + **Recopile los datos de monitorización cada **: seleccione un intervalo de tiempo para recopilar las métricas del sistema. Puede elegir uno de los intervalos de monitorización de la lista desplegable. Los intervalos disponibles son 100 milisegundos, 200 milisegundos, 500 milisegundos (predeterminado), 1 segundo, 5 segundos y 1 minuto. 
**nota**  
Si elige uno de los intervalos de tiempo más bajos, aumentará la granularidad de las métricas de utilización de los recursos, de modo que podrá capturar los picos y las anomalías con una resolución temporal más alta. Sin embargo, cuanto mayor sea la resolución, mayor será el tamaño de las métricas del sistema que vayan a procesarse. Esto podría suponer una sobrecarga adicional y afectar al tiempo total de entrenamiento y procesamiento.
+ Con el botón **Detener el entrenamiento**, podrá detener el trabajo de entrenamiento cuando detecte anomalías en la utilización de los recursos.
+ Con el botón **Descargar informe**, puede descargar un informe de creación de perfiles agregado utilizando la [ProfilerReport](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-rules.html#profiler-report)regla integrada de SageMaker Debugger. El botón se activa al añadir la [ProfilerReport](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-rules.html#profiler-report)regla integrada al estimador. Para obtener más información, consulte [Configurar las reglas del generador de perfiles integrado y el [informe de creación de perfiles generado mediante el depurador](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html)](https://docs.aws.amazon.com/sagemaker/latest/dg/use-debugger-built-in-profiler-rules.html). SageMaker 

# Explore el panel de Amazon SageMaker Debugger Insights
<a name="debugger-on-studio-insights-walkthrough"></a>

Al iniciar un trabajo de SageMaker formación, SageMaker Debugger comienza a monitorizar la utilización de los recursos de las instancias de Amazon EC2 de forma predeterminada. Puede realizar un seguimiento de las tasas de utilización del sistema, la descripción general de las estadísticas y el análisis de reglas integrado a través del panel de Información. **Esta guía explica el contenido del panel de control de SageMaker Debugger Insights en las siguientes pestañas: **Métricas y reglas del sistema**.** 

**nota**  
El panel de SageMaker Debugger Insights ejecuta una aplicación de Studio Classic en una `ml.m5.4xlarge` instancia para procesar y renderizar las visualizaciones. Cada pestaña de SageMaker Debugger Insights ejecuta una sesión de kernel de Studio Classic. Se ejecutan varias sesiones de kernel para varias pestañas de SageMaker Debugger Insights en una sola instancia. Al cerrar una pestaña de SageMaker Debugger Insights, también se cierra la sesión del núcleo correspondiente. La aplicación de Studio Classic permanece activa y acumula cargos por el uso de la instancia `ml.m5.4xlarge`. Para obtener información sobre los precios, consulta la página de [ SageMaker precios de Amazon](https://aws.amazon.com/sagemaker/pricing/).

**importante**  
Cuando termine de utilizar el panel de SageMaker Debugger Insights, cierre la `ml.m5.4xlarge` instancia para evitar acumular cargos. Para obtener instrucciones sobre cómo conectarse a una instancia, consulte [Cierre la instancia de Amazon SageMaker Debugger Insights](debugger-on-studio-insights-close.md).

**importante**  
En los informes, los gráficos y las recomendaciones se proporcionan con fines informativos y no son definitivos. Es responsabilidad suya realizar su propia evaluación independiente de la información.

**Topics**
+ [Métricas del sistema](#debugger-insights-system-metrics-tab)
+ [Reglas](#debugger-on-studio-insights-rules)

## Métricas del sistema
<a name="debugger-insights-system-metrics-tab"></a>

En la pestaña **Métricas del sistema**, puede utilizar la tabla de resumen y los gráficos de series temporales para comprender la utilización de los recursos.

### Resumen de utilización de recursos
<a name="debugger-on-studio-insights-sys-resource-summary"></a>

En esta tabla resumida se muestran las estadísticas de las métricas de utilización de los recursos informáticos de todos los nodos (denominadas algo-*n*). Las métricas de utilización de recursos incluyen la utilización total de la CPU, la utilización total de la GPU, la utilización total de la memoria de la CPU, la utilización total de la memoria de la GPU, el tiempo total de I/O espera y la red total en bytes. La tabla muestra los valores mínimo y máximo, así como los percentiles p99, p90 y p50.

![\[Una tabla resumida de la utilización de los recursos\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-studio-insights-resource-util-summary.png)


### Gráficos de series temporales de utilización de los recursos
<a name="debugger-on-studio-insights-sys-controller"></a>

Utilice los gráficos de series temporales para ver más detalles sobre la utilización de los recursos e identificar en qué intervalo de tiempo muestra cada instancia una tasa de utilización no deseada, como el bajo uso de la GPU y los cuellos de botella de la CPU que pueden provocar el desperdicio de la costosa instancia.

**La interfaz de usuario del controlador de gráficos de series temporales**

La siguiente captura de pantalla muestra el controlador de interfaz de usuario para ajustar los gráficos de series temporales.

![\[\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-insights-graph-controller.png)

+ **algo-1**: utilice este menú desplegable para elegir el nodo que desee examinar.
+ **Ampliar**: utilice este botón para ampliar los gráficos de series temporales y ver intervalos de tiempo más cortos.
+ **Alejar**: utilice este botón para alejar los gráficos de series temporales y ver intervalos de tiempo más amplios.
+ **Desplazar hacia la izquierda**: mueve los gráficos de series temporales a un intervalo de tiempo anterior.
+ **Desplazamiento panorámico a la derecha**: mueve los gráficos de series temporales a un intervalo de tiempo posterior.
+ **Fijar marco temporal**: utilice esta casilla de verificación para fijar o recuperar los gráficos de series temporales y mostrar la vista completa desde el primer punto de datos hasta el último punto de datos.

**Utilización de la CPU y tiempo de I/O espera**

Los dos primeros gráficos muestran el uso de la CPU y el tiempo de I/O espera a lo largo del tiempo. De forma predeterminada, los gráficos muestran el promedio de la tasa de utilización de la CPU y el tiempo de I/O espera empleado en los núcleos de la CPU. Puede seleccionar uno o más núcleos de CPU seleccionando las etiquetas para graficarlos en un solo gráfico y comparar la utilización entre los núcleos. Puede arrastrar y acercar y alejar la imagen para ver más de cerca intervalos de tiempo específicos.

![\[debugger-studio-insight-mockup\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-insights-node-cpu.png)


**Utilización de la GPU y utilización de la memoria de la GPU**

Los siguientes gráficos muestran el uso de la GPU y la utilización de la memoria de la GPU a lo largo del tiempo. De forma predeterminada, los gráficos muestran la tasa de utilización media a lo largo del tiempo. Puede seleccionar las etiquetas de los núcleos de la GPU para ver la tasa de utilización de cada núcleo. Si se toma la media de la tasa de utilización sobre el número total de núcleos de la GPU, se muestra la utilización media de todo el recurso del sistema de hardware. Al observar la tasa de utilización media, puede comprobar el uso general de los recursos del sistema de una instancia de Amazon EC2. En la siguiente figura, se muestra un ejemplo de trabajo de entrenamiento en una instancia `ml.p3.16xlarge` con 8 núcleos de GPU. Puede controlar si el trabajo de formación está bien distribuido y aprovecharlo todo al máximo GPUs.

![\[debugger-studio-insight-mockup\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-studio-insights-node-gpu.gif)


**Utilización general del sistema a lo largo del tiempo**

El siguiente mapa de calor muestra un ejemplo del uso total de una instancia `ml.p3.16xlarge` por parte del sistema a lo largo del tiempo, proyectado en el gráfico bidimensional. Todos los núcleos de la CPU y la GPU se muestran en el eje vertical y el uso se registra a lo largo del tiempo con una combinación de colores, en la que los colores brillantes representan un uso bajo y los colores más oscuros representan un uso elevado. Consulte la barra de colores etiquetada en el lado derecho del gráfico para averiguar qué nivel de color corresponde a qué tasa de utilización.

![\[debugger-studio-insight-mockup\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-studio-insights-node-heatmap.png)


## Reglas
<a name="debugger-on-studio-insights-rules"></a>

Utilice la pestaña **Reglas** para encontrar un resumen del análisis de las reglas de creación de perfiles en su trabajo de entrenamiento. Si la regla de creación de perfiles está activada con el trabajo de entrenamiento, el texto aparece resaltado con el texto blanco continuo. Las reglas inactivas aparecen atenuadas en texto gris. Para activar estas reglas, siga las instrucciones recogidas en [Utilice reglas de creación de perfiles integradas administradas por Amazon Debugger SageMaker](use-debugger-built-in-profiler-rules.md).

![\[La pestaña Reglas del panel de SageMaker Debugger Insights\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-insights-rules.png)


# Cierre la instancia de Amazon SageMaker Debugger Insights
<a name="debugger-on-studio-insights-close"></a>

Cuando no utilice el panel de SageMaker Debugger Insights, debe cerrar la instancia de la aplicación para evitar incurrir en cargos adicionales.

**Para cerrar la instancia de la aplicación SageMaker Debugger Insights en Studio Classic**

![\[Captura de pantalla animada que muestra cómo cerrar una instancia del panel de control de SageMaker Debugger Insights.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-studio-insights-shut-down.png)


1. En Studio Classic, seleccione el icono de **Instancias y kernels en ejecución** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Running_squid.png)). 

1. En la lista **APLICACIONES EN EJECUCIÓN**, busque la aplicación **sagemaker-debugger-1.0**. Seleccione el icono de cierre (![\[Power button icon with a circular shape and vertical line symbol.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/icons/Shutdown_light.png)) junto a la aplicación. Los paneles de SageMaker Debugger Insights se ejecutan en una instancia. `ml.m5.4xlarge` Esta instancia también desaparece de las **INSTANCIAS EN EJECUCIÓN** al cerrar la aplicación **sagemaker-debugger-1.0**. 

# SageMaker Informe interactivo sobre el depurador
<a name="debugger-profiling-report"></a>

Reciba informes de creación de perfiles generados automáticamente por el depurador. El informe del depurador proporciona información sobre sus trabajos de entrenamiento y sugiere recomendaciones para mejorar el rendimiento de su modelo. La siguiente captura de pantalla muestra un collage del informe de creación de perfiles del depurador. Para obtener más información, consulte [SageMaker Informe interactivo sobre el depurador](#debugger-profiling-report).

**nota**  
Puede descargar los informes de un depurador mientras se esté realizando su trabajo de entrenamiento o una vez finalizado el trabajo. Durante el entrenamiento, el depurador actualiza simultáneamente el informe para reflejar el estado de evaluación de las reglas actuales. Puede descargar un informe completo del depurador solo después de que se haya completado el trabajo de entrenamiento.

**importante**  
En los informes, los gráficos y las recomendaciones se proporcionan con fines informativos y no son definitivos. Es responsabilidad suya realizar su propia evaluación independiente de la información.

![\[Ejemplo de un informe resumido del trabajo de entrenamiento del depurador.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profile-report.jpg)


Para cualquier trabajo de SageMaker formación, la [ProfilerReport](debugger-built-in-profiler-rules.md#profiler-report) regla SageMaker Debugger invoca todas las reglas de [monitoreo y creación de perfiles y agrega el análisis de las reglas](debugger-built-in-profiler-rules.md#built-in-rules-monitoring) en un informe completo. Siguiendo esta guía, descargue el informe con el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) o la consola S3 y descubra qué puede interpretar a partir de los resultados de la creación de perfiles.

**importante**  
En el informe, los gráficos y las recomendaciones se proporcionan con fines informativos y no son definitivos. Es responsabilidad suya realizar su propia evaluación independiente de la información.

# Descargue el informe de creación de SageMaker perfiles de Debugger
<a name="debugger-profiling-report-download"></a>

Descargue el informe de creación de perfiles del SageMaker depurador mientras se esté ejecutando su trabajo de formación o cuando el trabajo haya terminado con el [SDK y ( AWS Command Line Interface CLI) de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

**nota**  
Para que Debugger genere el informe de creación de perfiles, debe utilizar la [ProfilerReport](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-rules.html#profiler-report)regla integrada que ofrece SageMaker Debugger. SageMaker Para activar la regla con su trabajo de entrenamiento, consulte [Configurar las reglas integradas del generador de perfiles](https://docs.aws.amazon.com/sagemaker/latest/dg/use-debugger-built-in-profiler-rules.html).

**sugerencia**  
También puede descargar el informe con un solo clic en el panel de información de SageMaker Studio Debugger. Esto no requiere ningún script adicional para descargar el informe. Para obtener información sobre cómo descargar el informe desde Studio, consulte [Abra el panel de Amazon SageMaker Debugger Insights](debugger-on-studio-insights.md).

------
#### [ Download using SageMaker Python SDK and AWS CLI ]

1. Compruebe el URI base de salida de S3 predeterminado del trabajo actual.

   ```
   estimator.output_path
   ```

1. Compruebe el nombre del trabajo actual.

   ```
   estimator.latest_training_job.job_name
   ```

1. El informe de creación de perfiles del depurador se guarda en `<default-s3-output-base-uri>/<training-job-name>/rule-output`. Configure la ruta de salida de reglas de la siguiente manera:

   ```
   rule_output_path = estimator.output_path + estimator.latest_training_job.job_name + "/rule-output"
   ```

1. Para comprobar si el informe se ha generado correctamente, enumere los directorios y archivos de forma recursiva en `rule_output_path` utilizando `aws s3 ls` con la opción `--recursive`.

   ```
   ! aws s3 ls {rule_output_path} --recursive
   ```

   Esto debería devolver una lista completa de los archivos de una carpeta generada automáticamente denominada `ProfilerReport-1234567890`. El nombre de la carpeta es una combinación de cadenas `ProfilerReport` y una etiqueta única de 10 dígitos basada en la marca de tiempo de Unix cuando se inicia la regla. ProfilerReport   
![\[Ejemplo de salida de reglas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-rule-output-ls-example.png)

   El `profiler-report.html` es un informe de perfil autogenerado por el depurador. Los archivos restantes son los componentes integrados de análisis de reglas integradas en JSON y un cuaderno de Jupyter que se utilizan para agregarlos al informe.

1. Descargue los archivos de forma recursiva utilizando `aws s3 cp`. El siguiente comando guarda todos los archivos de salida de las reglas en la carpeta `ProfilerReport-1234567890` del directorio de trabajo actual.

   ```
   ! aws s3 cp {rule_output_path} ./ --recursive
   ```
**sugerencia**  
Si utiliza un servidor del cuaderno de Jupyter, ejecute `!pwd` para comprobar el directorio de trabajo actual.

1. En el directorio `/ProfilerReport-1234567890/profiler-output`, abra `profiler-report.html`. Si lo está utilizando JupyterLab, elija **Confiar en HTML** para ver el informe de creación de perfiles de Debugger generado automáticamente.  
![\[Ejemplo de salida de reglas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-rule-output-open-html.png)

1. Abra el archivo `profiler-report.ipynb` para ver cómo se genera el informe. También puede personalizar y ampliar el informe de creación de perfiles mediante el archivo de cuaderno de Jupyter.

------
#### [ Download using Amazon S3 Console ]

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Busque el bucket base de S3. Por ejemplo, si no ha especificado ningún nombre de trabajo base, el nombre del bucket base de S3 debe tener el siguiente formato:`sagemaker-<region>-111122223333`. Busque el bucket base de S3 en el campo *Buscar bucket por nombre*.  
![\[Ejemplo del URI del bucket de S3 de salida de reglas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-report-download-s3console-0.png)

1. En el bucket base de S3, busque el nombre del trabajo de entrenamiento especificando el prefijo del nombre del trabajo en el campo de entrada *Buscar objetos por prefijo*. Seleccione el nombre del trabajo de entrenamiento.  
![\[Ejemplo del URI del bucket de S3 de salida de reglas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-report-download-s3console-1.png)

1. En el bucket de S3 del trabajo de entrenamiento, debe haber tres subcarpetas para los datos de entrenamiento recopilados por el depurador: **debug-output/**, **profiler-output/** y **rule-output/**. Seleccione **rule-output/**.   
![\[Ejemplo del URI del bucket de S3 de salida de reglas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-report-download-s3console-2.png)

1. **En la carpeta **rule-output/, elija **ProfilerReport-1234567890** y elija profiler-output/** folder.** La carpeta **profiler-output/** contiene **profiler-report.html** (el informe de creación de perfiles generado automáticamente en html), **profiler-report.ipynb** (un cuaderno de Jupyter con scripts que se utilizan para generar el informe) y una carpeta **profiler-report/** (contiene archivos JSON de análisis de reglas que se utilizan como componentes del informe).

1. Seleccione el archivo **profiler-report.html**, seleccione **Acciones** y **Descargar**.  
![\[Ejemplo del URI del bucket de S3 de salida de reglas\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-report-download-s3console-3.png)

1. Abra el archivo **profiler-report.html** descargado en un navegador web.

------

**nota**  
Si empezó su trabajo de entrenamiento sin configurar los parámetros específicos del depurador, este generará el informe basándose únicamente en las reglas de supervisión del sistema, ya que los parámetros del depurador no están configurados para guardar las métricas del marco. Para habilitar la creación de perfiles de métricas del marco y recibir un informe de creación de perfiles de Debugger ampliado, configure el parámetro al crear o actualizar los estimadores de IA. `profiler_config` SageMaker   
Para obtener información sobre cómo configurar el parámetro `profiler_config` antes de iniciar un trabajo de entrenamiento, consulte [Configuración del estimador para la creación de perfiles del marco](debugger-configure-framework-profiling.md).  
Para actualizar el trabajo de entrenamiento actual y habilitar la creación de perfiles de métricas del marco, consulte [Actualizar la configuración de perfiles del marco del depurador](debugger-update-monitoring-profiling.md).

# Guía del informe de creación de perfiles del depurador
<a name="debugger-profiling-report-walkthrough"></a>

Esta sección guía el informe de creación de perfiles del depurador sección por sección. El informe de creación de perfiles se genera en función de las reglas integradas de monitorización y creación de perfiles. El informe muestra gráficos de resultados solo para aquellas reglas que hayan detectado problemas.

**importante**  
En el informe, los gráficos y las recomendaciones se proporcionan con fines informativos y no son definitivos. Es responsabilidad suya realizar su propia evaluación independiente de la información.

**Topics**
+ [Resumen del trabajo de entrenamiento](#debugger-profiling-report-walkthrough-summary)
+ [Estadísticas de uso del sistema](#debugger-profiling-report-walkthrough-system-usage)
+ [Resumen de métricas del marco](#debugger-profiling-report-walkthrough-framework-metrics)
+ [Resumen de reglas](#debugger-profiling-report-walkthrough-rules-summary)
+ [Análisis del ciclo de entrenamiento: duración de los pasos](#debugger-profiling-report-walkthrough-step-durations)
+ [Análisis de utilización de la GPU](#debugger-profiling-report-walkthrough-gpu-utilization)
+ [BatchSize](#debugger-profiling-report-walkthrough-batch-size)
+ [Cuellos de botella de la CPU](#debugger-profiling-report-walkthrough-cpu-bottlenecks)
+ [Cuellos de botella de E/S](#debugger-profiling-report-walkthrough-io-bottlenecks)
+ [Equilibrio de carga en el entrenamiento con varias GPU](#debugger-profiling-report-walkthrough-workload-balancing)
+ [Análisis de memoria de GPU](#debugger-profiling-report-walkthrough-gpu-memory)

## Resumen del trabajo de entrenamiento
<a name="debugger-profiling-report-walkthrough-summary"></a>

Al principio del informe, el depurador proporciona un resumen de su trabajo de entrenamiento. En esta sección, puede ver una descripción general de la duración y las marcas de tiempo en las diferentes fases del entrenamiento.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-summary.gif)


Esta tabla resumen recoge la siguiente información:
+ **start\$1time:** hora exacta en la que comenzó el trabajo de entrenamiento.
+ **end\$1time: ** hora exacta en la que finalizó el trabajo de entrenamiento.
+ **job\$1duration\$1in\$1seconds**: el tiempo de entrenamiento total desde **start\$1time** hasta **end\$1time**.
+ **training\$1loop\$1start**: hora exacta en la que comenzó el primer paso de la primera época.
+ **training\$1loop\$1end**: hora exacta en la que finalizó el último paso de la última época.
+ **training\$1loop\$1duration\$1in\$1seconds**: tiempo total entre la hora de inicio del ciclo de entrenamiento y la hora de finalización del ciclo de entrenamiento.
+ **initialization\$1in\$1seconds**: tiempo empleado en inicializar el trabajo de entrenamiento. La fase de inicialización cubre el período desde **start\$1time** hasta **training\$1loop\$1start**. El tiempo de inicialización se dedica a compilar el script de entrenamiento, iniciarlo, crear e inicializar el modelo, iniciar las instancias de EC2 y descargar los datos de entrenamiento.
+ **finalization\$1in\$1seconds**: tiempo empleado en finalizar el trabajo de entrenamiento, por ejemplo, terminar el entrenamiento del modelo, actualizar los artefactos del modelo y cerrar las instancias de EC2. La fase de finalización cubre el período desde **training\$1loop\$1end** hasta **end\$1time**.
+ **inicialización (%)**: el porcentaje de tiemplo empleado en la **inicialización** sobre **job\$1duration\$1in\$1seconds** total. 
+ **ciclo de porcentaje (%)**: el porcentaje de tiempo empleado en el **ciclo de entrenamiento** sobre **job\$1duration\$1in\$1seconds** en total.
+ **finalización (%)**: el porcentaje de tiempo empleado en la **finalización** sobre **job\$1duration\$1in\$1seconds** en total.

## Estadísticas de uso del sistema
<a name="debugger-profiling-report-walkthrough-system-usage"></a>

Esta sección muestra una descripción general de las estadísticas de uso del sistema.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-system-usage.png)


El informe de uso de creación de perfiles del depurador incluye la siguiente información:
+ **nodo**: muestra el nombre de los nodos. Si utiliza el entrenamiento distribuido en varios nodos (varias instancias de EC2), los nombres de los nodos tienen el formato de`algo-n`.
+ **métrica**: las métricas del sistema recopiladas por el depurador: CPU, GPU, memoria de CPU, memoria de GPU, E/S y métricas de red.
+ **unidad**: la unidad de la métrica del sistema.
+ **max**: el valor máximo de cada utilización del sistema.
+ **p99**: el percentil 99 de cada utilización del sistema.
+ **p95**: el percentil 95 de cada utilización del sistema.
+ **p50**: el percentil 50 (mediana) de cada utilización del sistema.
+ **min**: el valor mínimo de cada métrica del sistema.

## Resumen de métricas del marco
<a name="debugger-profiling-report-walkthrough-framework-metrics"></a>

En esta sección, los siguientes gráficos circulares muestran el desglose de las operaciones del marco en y. CPUs GPUs

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-framework-metrics-summary.gif)


Cada uno de los gráficos circulares analiza las métricas del marco recopiladas en varios aspectos, de la siguiente manera:
+ **Proporción entre TRAIN/EVAL fases y otras**: muestra la relación entre la duración del tiempo dedicado a las diferentes fases del entrenamiento.
+ **Relación entre las pasadas hacia adelante y hacia atrás**: muestra la relación entre el tiempo empleado en la pasada hacia adelante y hacia atrás en el ciclo de entrenamiento.
+ **Proporción entre CPU/GPU operadores**: muestra la relación entre el tiempo dedicado a los operadores que utilizan la CPU o la GPU, como los operadores convolucionales.
+ **Métricas generales registradas en el marco**: muestra la relación entre el tiempo dedicado a las principales métricas del marco, como la carga de datos y las pasadas hacia adelante y hacia atrás.

### Descripción general: operadores de CPU
<a name="debugger-profiling-report-walkthrough-cpu-operators"></a>

Esta sección proporciona información detallada sobre los operadores de la CPU. La tabla muestra el porcentaje del tiempo y el tiempo acumulado absoluto dedicados a los operadores de CPU denominados con más frecuencia.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-framework-cpu-operators.gif)


### Descripción general: operadores de GPU
<a name="debugger-profiling-report-walkthrough-gpu-operators"></a>

Esta sección proporciona información detallada sobre los operadores de GPU. La tabla muestra el porcentaje del tiempo y el tiempo acumulado absoluto dedicado a los operadores de GPU denominados con más frecuencia.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-framework-gpu-operators.gif)


## Resumen de reglas
<a name="debugger-profiling-report-walkthrough-rules-summary"></a>

En esta sección, el depurador agrega todos los resultados de la evaluación de las reglas, los análisis, las descripciones de las reglas y las sugerencias.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-rules-summary.png)


## Análisis del ciclo de entrenamiento: duración de los pasos
<a name="debugger-profiling-report-walkthrough-step-durations"></a>

En esta sección, encontrará estadísticas detalladas de la duración de los pasos en cada núcleo de la GPU de cada nodo. El depurador evalúa los valores medios, máximos, p99, p95, p50 y mínimos de las duraciones de los pasos y evalúa los valores atípicos de los pasos. El siguiente histograma muestra las duraciones de los pasos capturadas en diferentes nodos de trabajo y. GPUs Para activar o desactivar el histograma de cada trabajador, seleccione las leyendas de la parte derecha. Puede comprobar si hay alguna GPU en particular que esté provocando valores atípicos en la duración de los pasos.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-framework-step-duration.gif)


## Análisis de utilización de la GPU
<a name="debugger-profiling-report-walkthrough-gpu-utilization"></a>

En esta sección se muestran las estadísticas detalladas sobre el uso del núcleo de la GPU según la regla LowGPUUtilization . También se resumen las estadísticas de uso de la GPU (media, p95 y p5) para determinar si el trabajo de formación está infrautilizado. GPUs

## BatchSize
<a name="debugger-profiling-report-walkthrough-batch-size"></a>

Esta sección muestra las estadísticas detalladas del uso total de la CPU, las utilizaciones individuales de la GPU y el consumo de memoria de la GPU. La BatchSize regla determina si es necesario cambiar el tamaño del lote para utilizar mejor el. GPUs Puede comprobar si el tamaño del lote es demasiado pequeño, lo que provoca una infrautilización o si es demasiado grande, lo que provoca problemas de sobreutilización y falta de memoria. En el gráfico, los recuadros muestran los rangos de percentiles p25 y p75 (rellenados de morado oscuro y amarillo brillante, respectivamente) desde la mediana (p50), y las barras de error muestran el percentil 5 para el límite inferior y el percentil 95 para el límite superior.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-batch-size.png)


## Cuellos de botella de la CPU
<a name="debugger-profiling-report-walkthrough-cpu-bottlenecks"></a>

En esta sección, puede analizar en detalle los cuellos de botella de la CPU que la CPUBottleneck regla detectó en su trabajo de formación. La regla comprueba si el uso de la CPU es superior a `cpu_threshold` (90 % de forma predeterminada) y también si el uso de la GPU es inferior a `gpu_threshold` (10 % de forma predeterminada).

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-cpu-bottlenecks.png)


Los gráficos circulares muestran la siguiente información:
+ **Poco uso de la GPU causado por cuellos de botella de la CPU**: muestra la relación de puntos de datos entre los que tienen una utilización de la GPU por encima y por debajo del umbral y los que coinciden con los criterios de cuello de botella de la CPU.
+ **Proporción entre TRAIN/EVAL fases y otras**: muestra la relación entre la duración del tiempo dedicado a las distintas fases del entrenamiento.
+ **Relación entre las pasadas hacia adelante y hacia atrás**: muestra la relación entre el tiempo empleado en la pasada hacia adelante y hacia atrás en el ciclo de entrenamiento.
+ **Proporción entre CPU/GPU operadores**: muestra la relación entre las duraciones de tiempo dedicadas a GPUs y CPUs por los operadores de Python, como los procesos de carga de datos y los operadores de paso hacia adelante y hacia atrás.
+ **Métricas generales registradas en el marco**: muestra las principales métricas del marco y la relación entre el tiempo dedicado a las métricas.

## Cuellos de botella de E/S
<a name="debugger-profiling-report-walkthrough-io-bottlenecks"></a>

En esta sección, encontrarás un resumen de los I/O cuellos de botella. La regla evalúa el tiempo de I/O espera y las tasas de uso de la GPU y monitorea el tiempo empleado en los cuellos de I/O requests exceeds a threshold percent of the total training time. It might indicate I/O botella en los que GPUs se espera que los datos lleguen del almacenamiento.

## Equilibrio de carga en el entrenamiento con varias GPU
<a name="debugger-profiling-report-walkthrough-workload-balancing"></a>

En esta sección, puedes identificar los problemas de equilibrio de la carga de trabajo en todos los niveles. GPUs 

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-workload-balancing.gif)


## Análisis de memoria de GPU
<a name="debugger-profiling-report-walkthrough-gpu-memory"></a>

En esta sección, puedes analizar la utilización de la memoria de la GPU recopilada por la regla de GPUMemory aumento. En el gráfico, los recuadros muestran los rangos de percentiles p25 y p75 (rellenados de morado oscuro y amarillo brillante, respectivamente) desde la mediana (p50), y las barras de error muestran el percentil 5 para el límite inferior y el percentil 95 para el límite superior.

![\[Ejemplo de un informe de generación de perfiles del depurador\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-profiling-report-gpu-memory-utilization.png)


# Excluirse de la recopilación de estadísticas de uso de Amazon SageMaker Debugger
<a name="debugger-telemetry"></a>

Para todos los trabajos de SageMaker formación, Amazon SageMaker Debugger ejecuta la [ProfilerReport](debugger-built-in-profiler-rules.md#profiler-report) regla y genera automáticamente un. [SageMaker Informe interactivo sobre el depurador](debugger-profiling-report.md) La regla `ProfilerReport` proporciona un archivo de cuaderno de Jupyter (`profiler-report.ipynb`) que genera el archivo HTML correspondiente (`profiler-report.html`). 

El depurador recopila las estadísticas de uso de los informes de creación de perfiles al incluir código en el cuaderno de Jupyter que recopila el ARN del trabajo de procesamiento de la regla `ProfilerReport` única si el usuario abre el archivo `profiler-report.html` final.

El depurador solo recopila información sobre si un usuario abre el informe HTML final. **NO** recopila información sobre los trabajos de entrenamiento, los datos de entrenamiento, los scripts de entrenamiento, los trabajos de procesamiento, los registros ni el contenido del propio informe de creación de perfiles.

Puede renunciar a la recopilación de estadísticas de uso mediante una de las siguientes opciones.

## Opción 1 (recomendada): exclusión antes de ejecutar un trabajo de entrenamiento
<a name="debugger-telemetry-profiler-report-opt-out-1"></a>

Para renunciar, debe agregar la siguiente configuración de reglas de `ProfilerReport` del depurador a su solicitud de trabajo de entrenamiento.

------
#### [ SageMaker Python SDK ]

```
estimator=sagemaker.estimator.Estimator(
    ...

    rules=ProfilerRule.sagemaker(
        base_config=rule_configs.ProfilerReport()
        rule_parameters={"opt_out_telemetry": "True"}
    )
)
```

------
#### [ AWS CLI ]

```
"ProfilerRuleConfigurations": [ 
    { 
        "RuleConfigurationName": "ProfilerReport-1234567890",
        "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
        "RuleParameters": {
            "rule_to_invoke": "ProfilerReport", 
            "opt_out_telemetry": "True"
        }
    }
]
```

------
#### [ AWS SDK para Python (Boto3) ]

```
ProfilerRuleConfigurations=[ 
    {
        'RuleConfigurationName': 'ProfilerReport-1234567890',
        'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
        'RuleParameters': {
            'rule_to_invoke': 'ProfilerReport',
            'opt_out_telemetry': 'True'
        }
    }
]
```

------

## Opción 2: exclusión tras completar un trabajo de entrenamiento
<a name="debugger-telemetry-profiler-report-opt-out-2"></a>

Para renunciar una vez finalizado el entrenamiento, debe modificar el archivo `profiler-report.ipynb`. 

**nota**  
Los informes HTML generados automáticamente sin que la **Opción 1** ya se haya agregado a su solicitud de trabajo de entrenamiento siguen incluyendo las estadísticas de uso incluso después de que haya optado por renunciar a la **Opción 2**.

1. Siga las instrucciones para descargar los archivos de informes de creación de perfiles del depurador que aparecen en la página [Descargue el informe de creación de SageMaker perfiles de Debugger](debugger-profiling-report-download.md).

1. En el directorio `/ProfilerReport-1234567890/profiler-output`, abra `profiler-report.ipynb`. 

1. Añada **opt\$1out=True** a la función `setup_profiler_report()` de la quinta celda de código, tal como se muestra en el siguiente código de ejemplo:

   ```
   setup_profiler_report(processing_job_arn, opt_out=True)
   ```

1. Ejecute la celda de código para terminar la renuncia.

# Análisis de datos mediante la biblioteca cliente de Python del depurador
<a name="debugger-analyze-data"></a>

Mientras su trabajo de entrenamiento esté en ejecución o cuando lo haya completado, puede acceder a los datos de entrenamiento recopilados por Debugger mediante el [SDK de Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) y la [biblioteca SMDebug cliente](https://github.com/awslabs/sagemaker-debugger/). La biblioteca cliente de Python del depurador proporciona herramientas de análisis y visualización que le permiten profundizar en los datos de sus trabajos de entrenamiento.

**Para instalar la biblioteca y utilizar sus herramientas de análisis (en un JupyterLab cuaderno o en un núcleo de iPython)**

```
! pip install -U smdebug
```

En los siguientes temas, se explica cómo utilizar las herramientas de Python del depurador para visualizar y analizar los datos de entrenamiento recopilados por este.

**Analizar las métricas del sistema y del marco**
+ [Acceso a los datos del perfil](debugger-analyze-data-profiling.md)
+ [Representación gráfica de los datos sobre las métricas del sistema y las métricas del marco](debugger-access-data-profiling-default-plot.md)
+ [Acceso a los datos de creación de perfiles con Pandas, una herramienta de análisis de datos](debugger-access-data-profiling-pandas-frame.md)
+ [Acceso a los datos de estadísticas de creación de perfiles de Python](debugger-access-data-python-profiling.md)
+ [Fusión de cronogramas en múltiples archivos de seguimiento de perfiles](debugger-merge-timeline.md)
+ [Cargadores de datos de creación de perfiles](debugger-data-loading-time.md)

# Acceso a los datos del perfil
<a name="debugger-analyze-data-profiling"></a>

La SMDebug `TrainingJob` clase lee los datos del depósito de S3 donde se guardan las métricas del sistema y del marco. 

**Para configurar un objeto `TrainingJob` y recuperar los archivos de eventos de creación de perfiles de un trabajo de entrenamiento**

```
from smdebug.profiler.analysis.notebook_utils.training_job import TrainingJob
tj = TrainingJob(training_job_name, region)
```

**sugerencia**  
Debe especificar los parámetros `training_job_name` y `region` para iniciar sesión en un trabajo de entrenamiento. Hay dos formas de especificar la información del trabajo de entrenamiento:   
Utilice el SDK de SageMaker Python mientras el estimador aún esté adjunto al trabajo de formación.  

  ```
  import sagemaker
  training_job_name=estimator.latest_training_job.job_name
  region=sagemaker.Session().boto_region_name
  ```
Pasar las cadenas directamente.  

  ```
  training_job_name="your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS"
  region="us-west-2"
  ```

**nota**  
De forma predeterminada, SageMaker Debugger recopila las métricas del sistema para monitorear la utilización de los recursos de hardware y los cuellos de botella del sistema. Al ejecutar las siguientes funciones, es posible que reciba mensajes de error relacionados con la falta de disponibilidad de las métricas del marco. Para recuperar los datos de creación de perfiles del marco y obtener información sobre las operaciones de este, debe habilitar la creación de perfiles del marco.  
Si utilizas el SDK de SageMaker Python para manipular tu solicitud de trabajo de formación, pasa el `profiler_config` argumento `framework_profile_params` al de tu estimador. Para obtener más información, consulte [Configurar la creación de perfiles de SageMaker Debugger Framework](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-configure-framework-profiling.html).
Si utiliza Studio Classic, active la creación de perfiles con el conmutador **Elaboración de perfiles** en el panel de información del depurador. Para obtener más información, consulte [SageMaker Debugger Insights](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio-insights-controllers.html) Dashboard Controller.

**Para recuperar una descripción del trabajo de entrenamiento y el URI del bucket de S3 en el que se guardan los datos de las métricas**

```
tj.describe_training_job()
tj.get_config_and_profiler_s3_output_path()
```

**Para comprobar si las métricas del sistema y del marco están disponibles en el URI de S3**

```
tj.wait_for_sys_profiling_data_to_be_available()
tj.wait_for_framework_profiling_data_to_be_available()
```

**Para crear objetos lectores del sistema y del marco cuando los datos de las métricas estén disponibles**

```
system_metrics_reader = tj.get_systems_metrics_reader()
framework_metrics_reader = tj.get_framework_metrics_reader()
```

**Para actualizar y recuperar los archivos de eventos de entrenamiento más recientes**

Los objetos lectores tienen un método extendido (`refresh_event_file_list()`) para recuperar los archivos de eventos de entrenamiento más recientes.

```
system_metrics_reader.refresh_event_file_list()
framework_metrics_reader.refresh_event_file_list()
```

# Representación gráfica de los datos sobre las métricas del sistema y las métricas del marco
<a name="debugger-access-data-profiling-default-plot"></a>

Puede utilizar los objetos de métricas del sistema y del algoritmo de las siguientes clases de visualización para trazar histogramas y gráficos con línea de tiempo.

**nota**  
Para visualizar los datos con métricas reducidas en los siguientes métodos de representación gráfica de objetos de visualización, especifique los parámetros `select_dimensions` y `select_events`. Por ejemplo, si especifica `select_dimensions=["GPU"]`, los métodos de representación gráfica filtrarán las métricas que incluyan la palabra clave “GPU”. Si especifica `select_events=["total"]`, los métodos de representación gráfica filtrarán las métricas que incluyan las etiquetas de eventos “totales” al final de los nombres de las métricas. Si habilita estos parámetros y proporciona las cadenas de palabras clave, las clases de visualización devuelven los gráficos con métricas filtradas.
+ La clase `MetricsHistogram`

  ```
  from smdebug.profiler.analysis.notebook_utils.metrics_histogram import MetricsHistogram
  
  metrics_histogram = MetricsHistogram(system_metrics_reader)
  metrics_histogram.plot(
      starttime=0, 
      endtime=system_metrics_reader.get_timestamp_of_latest_available_file(), 
      select_dimensions=["CPU", "GPU", "I/O"], # optional
      select_events=["total"]                  # optional
  )
  ```
+ La clase `StepTimelineChart`

  ```
  from smdebug.profiler.analysis.notebook_utils.step_timeline_chart import StepTimelineChart
  
  view_step_timeline_chart = StepTimelineChart(framework_metrics_reader)
  ```
+ La clase `StepHistogram`

  ```
  from smdebug.profiler.analysis.notebook_utils.step_histogram import StepHistogram
  
  step_histogram = StepHistogram(framework_metrics_reader)
  step_histogram.plot(
      starttime=step_histogram.last_timestamp - 5 * 1000 * 1000, 
      endtime=step_histogram.last_timestamp, 
      show_workers=True
  )
  ```
+ La clase `TimelineCharts`

  ```
  from smdebug.profiler.analysis.notebook_utils.timeline_charts import TimelineCharts
  
  view_timeline_charts = TimelineCharts(
      system_metrics_reader, 
      framework_metrics_reader,
      select_dimensions=["CPU", "GPU", "I/O"], # optional
      select_events=["total"]                  # optional 
  )
  
  view_timeline_charts.plot_detailed_profiler_data([700,710])
  ```
+ La clase `Heatmap`

  ```
  from smdebug.profiler.analysis.notebook_utils.heatmap import Heatmap
  
  view_heatmap = Heatmap(
      system_metrics_reader,
      framework_metrics_reader,
      select_dimensions=["CPU", "GPU", "I/O"], # optional
      select_events=["total"],                 # optional
      plot_height=450
  )
  ```

# Acceso a los datos de creación de perfiles con Pandas, una herramienta de análisis de datos
<a name="debugger-access-data-profiling-pandas-frame"></a>

La siguiente clase `PandasFrame` proporciona herramientas para convertir los datos de creación de perfiles recopilados al marco de datos de Pandas. 

```
from smdebug.profiler.analysis.utils.profiler_data_to_pandas import PandasFrame
```

La clase `PandasFrame` toma la ruta de salida del bucket S3 del objeto `tj`, y sus métodos `get_all_system_metrics()` y `get_all_framework_metrics()` devuelven las métricas del sistema y las métricas del marco en el formato de datos de Pandas.

```
pf = PandasFrame(tj.profiler_s3_output_path)
system_metrics_df = pf.get_all_system_metrics()
framework_metrics_df = pf.get_all_framework_metrics(
    selected_framework_metrics=[
        'Step:ModeKeys.TRAIN', 
        'Step:ModeKeys.GLOBAL'
    ]
)
```

# Acceso a los datos de estadísticas de creación de perfiles de Python
<a name="debugger-access-data-python-profiling"></a>

La creación de perfiles de Python proporciona métricas del marco relacionadas con las funciones y los operadores de Python en sus scripts de entrenamiento y en los marcos de aprendizaje profundo de SageMaker IA. 

<a name="debugger-access-data-python-profiling-modes"></a>**Modos y fases de entrenamiento para la creación de perfiles en Python**

A fin de elaborar perfiles de intervalos específicos durante el entrenamiento y segmentar las estadísticas de cada uno de estos intervalos, el depurador proporciona herramientas para establecer modos y fases. 

Para los modos de entrenamiento, utilice la siguiente clase `PythonProfileModes`:

```
from smdebug.profiler.python_profile_utils import PythonProfileModes
```

Esta clase proporciona las siguientes opciones.
+ `PythonProfileModes.TRAIN`: úsela si quiere elaborar perfiles de los pasos previstos en la fase de entrenamiento. Esta opción de modo solo está disponible para TensorFlow.
+ `PythonProfileModes.EVAL`: úsela si quiere elaborar perfiles de los pasos previstos en la fase de evaluación. Esta opción de modo solo está disponible para TensorFlow.
+ `PythonProfileModes.PREDICT`: úsela si quiere elaborar perfiles de los pasos previstos en la fase de predicción. Esta opción de modo solo está disponible para TensorFlow.
+ `PythonProfileModes.GLOBAL`: úsela si desea elaborar perfiles de los pasos previstos en la fase global, lo que incluye las tres fases previas. Esta opción de modo solo está disponible para PyTorch.
+ `PythonProfileModes.PRE_STEP_ZERO`: úsela si desea elaborar perfiles de los pasos previstos en la fase de inicialización, antes de que comience el primer paso de entrenamiento del primer epoch. Esta fase incluye el envío del trabajo inicial, la carga de los scripts de entrenamiento en las instancias de EC2, la preparación de las instancias de EC2 y la descarga de los datos de entrada. Esta opción de modo está disponible tanto para como TensorFlow para PyTorch.
+ `PythonProfileModes.POST_HOOK_CLOSE`: úsela si desea elaborar perfiles de los pasos previstos en la fase de finalización, tras el trabajo de entrenamiento y tras cerrar el enlace del depurador. Esta fase incluye la elaboración de perfiles mientras se finalizan y completan los trabajos de entrenamiento. Esta opción de modo está disponible tanto para como TensorFlow para PyTorch.

<a name="debugger-access-data-python-profiling-phases"></a>Para las fases de entrenamiento, utilice la siguiente clase `StepPhase`:

```
from smdebug.profiler.analysis.utils.python_profile_analysis_utils import StepPhase
```

Esta clase proporciona las siguientes opciones.
+ `StepPhase.START`: se utiliza para especificar el punto de inicio de la fase de inicialización.
+ `StepPhase.STEP_START`: se utiliza para especificar el paso de inicio de la fase de entrenamiento.
+ `StepPhase.FORWARD_PASS_END`: se utiliza para especificar los pasos en los que termina la propagación hacia delante. Esta opción solo está disponible para PyTorch.
+ `StepPhase.STEP_END`: se utiliza para especificar los pasos finales de la fase de entrenamiento. Esta opción solo está disponible para TensorFlow.
+ `StepPhase.END`— Se utiliza para especificar el punto final de la fase de finalización (post-hook-close). Si el enlace de devolución de llamada no está cerrado, no se lleva a cabo la creación de perfiles de la fase de finalización.

**Herramientas de Python para el análisis en la elaboración de perfiles**

El depurador es compatible con la creación de perfiles de Python mediante dos herramientas de creación de perfiles:
+ cProfile: el generador de perfiles estándar de Python. cProfile recopila métricas del marco sobre el tiempo de CPU para cada función llamada cuando la creación de perfiles estaba habilitada.
+ Pyinstrument: un generador de perfiles de Python de bajo costo que muestrea eventos de creación de perfiles con una frecuencia de milisegundos.

Para obtener más información sobre las opciones de creación de perfiles de Python y lo que se recopila, consulte [Supervisión del sistema predeterminada y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles](debugger-configure-framework-profiling-options.md).

Los siguientes métodos de las clases `PythonProfileAnalysis`, `cProfileAnalysis` y `PyinstrumentAnalysis` se proporcionan para obtener y analizar los datos de creación de perfiles de Python. Cada función carga los datos más recientes del URI de S3 predeterminado.

```
from smdebug.profiler.analysis.python_profile_analysis import PythonProfileAnalysis, cProfileAnalysis, PyinstrumentAnalysis
```

Para configurar los objetos de creación de perfiles de Python para su análisis, utilice las PyinstrumentAnalysis clases cProfileAnalysis o como se muestra en el siguiente código de ejemplo. Muestra cómo configurar un objeto `cProfileAnalysis` y, si desea usar `PyinstrumentAnalysis`, cómo reemplazar el nombre de la clase.

```
python_analysis = cProfileAnalysis(
    local_profile_dir=tf_python_stats_dir, 
    s3_path=tj.profiler_s3_output_path
)
```

Hay los siguientes métodos disponibles para las clases `PyinstrumentAnalysis` y `cProfileAnalysis`, a fin de obtener los datos de las estadísticas de creación de perfiles de Python.
+ `python_analysis.fetch_python_profile_stats_by_time(start_time_since_epoch_in_secs, end_time_since_epoch_in_secs)`: toma en cuenta la hora de inicio y la hora de finalización y devuelve las estadísticas de función de los pasos cuyas horas de inicio o finalización coinciden con el intervalo proporcionado.
+ `python_analysis.fetch_python_profile_stats_by_step(start_step, end_step, mode, start_phase, end_phase)`: incluye un paso de inicio y un paso final y devuelve las estadísticas de función de todas las estadísticas de paso cuyo `step` perfilado cumpla con `start_step <= step < end_step`. 
  + `start_step` y `end_step` (str): especifique el paso de inicio y el paso final para obtener los datos de las estadísticas de creación de perfiles de Python.
  + `mode` (str): especifique el modo del trabajo de entrenamiento mediante la clase enumeradora `PythonProfileModes`. El valor predeterminado es `PythonProfileModes.TRAIN`. Las opciones disponibles se proporcionan en la sección [Training Modes and Phases for Python Profiling](#debugger-access-data-python-profiling-modes).
  + `start_phase` (str): especifique la fase de inicio en los pasos objetivo mediante la clase enumeradora `StepPhase`. Este parámetro permite crear perfiles entre las diferentes fases del entrenamiento. El valor predeterminado es `StepPhase.STEP_START`. Las opciones disponibles se proporcionan en la sección [Training Modes and Phases for Python Profiling](#debugger-access-data-python-profiling-phases).
  + `end_phase` (str): especifique la fase final en los pasos objetivo mediante la clase enumeradora `StepPhase`. Este parámetro configura la fase final del entrenamiento. Las opciones disponibles son las mismas que las del parámetro `start_phase`. El valor predeterminado es `StepPhase.STEP_END`. Las opciones disponibles se proporcionan en la sección [Training Modes and Phases for Python Profiling](#debugger-access-data-python-profiling-phases).
+ `python_analysis.fetch_profile_stats_between_modes(start_mode, end_mode)`: obtiene estadísticas de la creación de perfiles de Python entre los modos de inicio y final.
+ `python_analysis.fetch_pre_step_zero_profile_stats()`: obtiene las estadísticas de la creación de perfiles de Python hasta el paso 0.
+ `python_analysis.fetch_post_hook_close_profile_stats()`: obtiene las estadísticas de la creación de perfiles de Python después de cerrar el enlace.
+ `python_analysis.list_profile_stats()`— Devuelve una DataFrame de las estadísticas de creación de perfiles de Python. Cada fila contiene los metadatos de cada instancia de creación de perfiles y el archivo de estadísticas correspondiente (uno por paso).
+ `python_analysis.list_available_node_ids()`— Devuelve una lista de los nodos disponibles IDs para las estadísticas de creación de perfiles de Python.

Los métodos específicos de la clase `cProfileAnalysis`.
+  `fetch_profile_stats_by_training_phase()`: obtiene y agrega las estadísticas de creación de perfiles de Python para cada combinación posible de modos de inicio y finalización. Por ejemplo, si las fases de entrenamiento y validación se llevan a cabo con la creación de perfiles detallados habilitada, las combinaciones son `(PRE_STEP_ZERO, TRAIN)`, `(TRAIN, TRAIN)`, `(TRAIN, EVAL)`, `(EVAL, EVAL)` y `(EVAL, POST_HOOK_CLOSE)`. Se agregan todos los archivos de estadísticas de cada una de estas combinaciones.
+  `fetch_profile_stats_by_job_phase()`: obtiene y agrega las estadísticas de creación de perfiles de Python por fase de trabajo. Las fases del trabajo son `initialization` (creación de perfiles hasta el paso 0), `training_loop` (entrenamiento y validación) y `finalization` (creación de perfiles tras cerrar el enlace).

# Fusión de cronogramas en múltiples archivos de seguimiento de perfiles
<a name="debugger-merge-timeline"></a>

La biblioteca SMDebug cliente proporciona herramientas de análisis y visualización de perfiles para combinar los cronogramas de las métricas del sistema, las métricas del marco y los datos de creación de perfiles de Python recopilados por Debugger. 

**sugerencia**  
Antes de continuar, debe configurar un TrainingJob objeto que se utilizará en los ejemplos de esta página. Para obtener más información sobre la configuración de un TrainingJob objeto, consulte[Acceso a los datos del perfil](debugger-analyze-data-profiling.md).

La clase `MergedTimeline` proporciona herramientas para integrar y correlacionar diferentes datos de creación de perfiles en un solo cronograma. Cuando el depurador captura los datos de creación de perfiles y las anotaciones de las diferentes fases de un trabajo de entrenamiento, los archivos JSON de los eventos de seguimiento se guardan en un directorio `tracefolder` predeterminado.
+ Para las anotaciones en las capas de Python, los archivos de seguimiento se guardan en `*pythontimeline.json`. 
+ Para las anotaciones en las capas de TensorFlow C\$1\$1, los archivos de rastreo se guardan en`*model_timeline.json`. 
+ El generador de perfiles de Tensorflow guarda los eventos en un archivo `*trace.json.gz`. 

**sugerencia**  
Si quiere enumerar todos los archivos de seguimiento JSON, use el siguiente comando de la AWS CLI :  

```
! aws s3 ls {tj.profiler_s3_output_path} --recursive | grep '\.json$'
```

Como se muestra en la siguiente captura de pantalla animada, al colocar y alinear los eventos de seguimiento capturados de las diferentes fuentes de creación de perfiles en un solo gráfico, se puede obtener una visión general de todos los eventos que ocurren en las diferentes fases del trabajo de entrenamiento.

![\[Ejemplo de cronología fusionada\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-merged-timeline.gif)


**sugerencia**  
A fin de interactuar con la cronología fusionada en la aplicación de seguimiento mediante un teclado, use la tecla `W` para acercarse, la tecla `A` para ir a la izquierda, la tecla `S` para alejarse y la tecla `D` para ir a la derecha.

Los múltiples archivos JSON de seguimiento de eventos se pueden combinar en un solo archivo JSON de eventos de seguimiento utilizando la siguiente operación de API `MergedTimeline` y el método de clase del módulo `smdebug.profiler.analysis.utils.merge_timelines`.

```
from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline

combined_timeline = MergedTimeline(path, file_suffix_filter, output_directory)
combined_timeline.merge_timeline(start, end, unit)
```

La operación de API `MergedTimeline` pasa los siguientes parámetros:
+ `path` (str): especifique una carpeta raíz (`/profiler-output`) que contenga los archivos de seguimiento de creación de perfiles del sistema y del marco. Puede localizarlos `profiler-output` mediante el método de clase SageMaker AI Estimator o el objeto. TrainingJob Por ejemplo, `estimator.latest_job_profiler_artifacts_path()` o `tj.profiler_s3_output_path`.
+ `file_suffix_filter` (lista): especifique una lista de filtros de sufijos de archivos para combinar cronogramas. Los filtros de sufijos disponibles son `["model_timeline.json", "pythontimeline.json", "trace.json.gz"].`. Si este parámetro no se especifica manualmente, todos los archivos de seguimiento se combinan de forma predeterminada.
+ `output_directory` (str): especifique una ruta para guardar el archivo JSON del cronograma fusionado. El valor predeterminado es el directorio especificado para el parámetro `path`.

El classmethod `merge_timeline()` transfiere los siguientes parámetros para ejecutar el proceso de fusión:
+ `start` (int): especifique la hora de inicio (en microsegundos y en formato de hora Unix) o el paso de inicio para combinar los cronogramas.
+ `end` (int): especifique la hora de finalización (en microsegundos y en formato de hora Unix) o el paso final para combinar los cronogramas.
+ `unit` (str): elija entre `"step"` y `"time"`. El valor predeterminado es `"time"`.

Con los siguientes códigos de ejemplo, ejecute el método `merge_timeline()` y descargue el archivo JSON combinado. 
+ Combine el cronograma con la opción de unidad `"time"`. El siguiente código de ejemplo combina todos los archivos de seguimiento disponibles entre la hora de inicio de Unix (la hora de Unix con cero absoluto) y la hora actual de Unix, lo que significa que puede combinar los cronogramas de todo el entrenamiento.

  ```
  import time
  from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline
  from smdebug.profiler.profiler_constants import CONVERT_TO_MICROSECS
  
  combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./")
  combined_timeline.merge_timeline(0, int(time.time() * CONVERT_TO_MICROSECS))
  ```
+ Combine el cronograma con la opción de unidad `"step"`. El siguiente código de ejemplo combina todos los cronogramas disponibles entre el paso 3 y el paso 9.

  ```
  from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline
  
  combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./")
  combined_timeline.merge_timeline(3, 9, unit="step")
  ```

Abra la aplicación de seguimiento de Chrome en `chrome://tracing`, en un navegador Chrome, y abra el archivo JSON. Puede explorar el resultado para representar gráficamente el cronograma fusionado. 

# Cargadores de datos de creación de perfiles
<a name="debugger-data-loading-time"></a>

En PyTorch, los iteradores del cargador de datos, como `SingleProcessingDataLoaderIter` y`MultiProcessingDataLoaderIter`, se inician al principio de cada iteración sobre un conjunto de datos. Durante la fase de inicialización, PyTorch activa los procesos de trabajo en función del número de trabajadores configurado y establece una cola de datos para recuperar los datos y los subprocesos. `pin_memory`

Para utilizar la herramienta de análisis de perfiles del cargador de PyTorch datos, importe la siguiente clase: `PT_dataloader_analysis`

```
from smdebug.profiler.analysis.utils.pytorch_dataloader_analysis import PT_dataloader_analysis
```

Transfiera los datos de creación de perfiles recuperados como un objeto de datos del marco de Pandas en la sección [Acceso a los datos de creación de perfiles con Pandas, una herramienta de análisis de datos](debugger-access-data-profiling-pandas-frame.md):

```
pt_analysis = PT_dataloader_analysis(pf)
```

Las siguientes funciones están disponibles para el objeto `pt_analysis`:

La SMDebug `S3SystemMetricsReader` clase lee las métricas del sistema del bucket de S3 especificado para el `s3_trial_path` parámetro.
+ `pt_analysis.analyze_dataloaderIter_initialization()`

  El análisis muestra la duración media y máxima de estas inicializaciones. Si hay valores atípicos (es decir, la duración es superior al doble de la media), la función imprime las horas de inicio y finalización de esas duraciones. Se pueden usar para inspeccionar las métricas del sistema durante esos intervalos de tiempo.

  La siguiente lista muestra los análisis disponibles con este método de clase:
  + Qué tipo de iteradores del cargador de datos se inicializaron.
  + El número de procesos de trabajo por iterador.
  + Comprobación de si el iterador se inicializó con o sin pin\$1memory.
  + El número de veces que se inicializaron los iteradores durante el entrenamiento.
+ `pt_analysis.analyze_dataloaderWorkers()`

  La siguiente lista muestra los análisis disponibles con este método de clase:
  + El número de procesos de trabajo que se generaron durante todo el entrenamiento. 
  + Duración media y máxima de los procesos de trabajo. 
  + Hora de inicio y finalización en los procesos de trabajo atípicos. 
+ `pt_analysis.analyze_dataloader_getnext()`

  La siguiente lista muestra los análisis disponibles con este método de clase:
  + Número de GetNext llamadas realizadas durante la formación. 
  + Duración media y máxima en microsegundos de las GetNext llamadas. 
  + Hora de inicio, hora de finalización, duración e identificador del trabajador para la duración atípica de la GetNext llamada. 
+ `pt_analysis.analyze_batchtime(start_timestamp, end_timestamp, select_events=[".*"], select_dimensions=[".*"])`

  El depurador recopila las horas de inicio y finalización de todas las GetNext llamadas. Puede encontrar la cantidad de tiempo que emplea el script de entrenamiento en un lote de datos. Dentro del intervalo de tiempo especificado, puede identificar las llamadas que no contribuyen directamente al entrenamiento. Estas llamadas pueden proceder de las siguientes operaciones: calcular la precisión, sumar las pérdidas con fines de depuración o registro e imprimir la información de depuración. Operaciones como estas pueden requerir un uso intensivo de recursos informáticos o consumir mucho tiempo. Podemos identificar dichas operaciones correlacionando el generador de perfiles de Python, las métricas del sistema y las métricas del marco.

  La siguiente lista muestra los análisis disponibles con este método de clase:
  + Haga un perfil del tiempo dedicado a cada lote de datos`BatchTime_in_seconds`, encontrando la diferencia entre las horas de inicio de las GetNext llamadas actuales y las posteriores. 
  + Encuentre los valores atípicos en `BatchTime_in_seconds` y la hora de inicio y finalización de esos valores atípicos.
  + Obtenga las métricas del sistema y del marco durante esas marcas temporales `BatchTime_in_seconds`. Esto indica dónde se empleó el tiempo.
+ `pt_analysis.plot_the_window()`

  Traza un gráfico de cronograma entre una marca de tiempo de inicio y la marca de tiempo de finalización.