Lista de reglas integradas del generador de perfiles del depurador - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Lista de reglas integradas del generador de perfiles del depurador

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 o las operaciones de SageMaker API de bajo nivel. El uso de reglas integradas no conlleva ningún coste adicional. Para obtener más información sobre la facturación, consulta la página de SageMaker precios de Amazon.

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 cliente SMDebug. 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

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
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
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)
aviso

A favor de Amazon SageMaker Profiler, SageMaker 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 los SDK de la siguiente manera.

  • 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.

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.

ProfilerReport

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 parámetro cpu_threshold de la regla CPUBottleneck y el parámetro threshold de la regla IOBottleneck.

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. 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 en Studio Experiments. SageMaker

Descripciones de los parámetros de la regla OverallSystemUsage
Nombre del parámetro Descripción
base_trial

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>_<parameter_name>

Parámetro personalizable para ajustar los umbrales de otras reglas integradas de supervisión y generación de perfiles.

Opcional

Valor predeterminado: None

BatchSize

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 Descripción
base_trial

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_threshold_p95

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_threshold_p95

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_memory_threshold_p95

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_interval_us

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

La regla CPUBottleneck ayuda a detectar si la GPU está siendo 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 Descripción
base_trial

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_threshold

Un umbral que define un uso bajo de la GPU.

Opcional

Valores válidos: número entero

Valor predeterminado: 10 (en porcentaje)

cpu_threshold

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_interval_us

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)

GPU MemoryIncrease

La MemoryIncrease regla de la GPU ayuda a detectar un gran aumento en el uso de memoria en las GPU.

Descripciones de los parámetros de la regla de GPU MemoryIncrease
Nombre del parámetro Descripción
base_trial

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_interval_us

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

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 Descripción
base_trial

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 entero

Valor predeterminado: 50 (en porcentaje)

gpu_threshold

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_threshold Un umbral que define un tiempo de espera de E/S elevado.

Opcional

Valores válidos: número entero

Valores 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 entero

Valores predeterminados: 1000

scan_interval_us

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

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

Descripciones de los parámetros de la regla LoadBalancing
Nombre del parámetro Descripción
base_trial

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_interval_us

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)

LowGPUUtilization

La regla LowGPUUtilization 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_p95, lo que indica una infrautilización. La regla vuelve a ser verdadera si el 95.º cuantil está por encima del umbral_p95 y el 5.º cuantil está por debajo del umbral_p5, lo que indica fluctuaciones.

Descripciones de los parámetros de la regla de bajo uso de la GPU
Nombre del parámetro Descripción
base_trial

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_p95

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_p5 Un umbral para el 5.º cuantil. El valor predeterminado es del 10 por ciento.

Opcional

Valores válidos: número entero

Valores 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_interval_us

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)

OverallSystemUso

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 Descripción
base_trial

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_interval_us

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)

MaxInitializationHora

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 Descripción
base_trial

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_interval_us

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)

OverallFrameworkMétricas

La OverallFrameworkMetrics regla resume el tiempo dedicado a las métricas del marco, como el paso hacia adelante y hacia atrás y la carga de datos.

Descripciones de los parámetros de la regla OverallFrameworkMetrics
Nombre del parámetro Descripción
base_trial

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_interval_us

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

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 Descripción
base_trial

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 entero

Valor predeterminado: 5 (en minutos)

n_outliers ¿Cuántos valores atípicos se deben ignorar antes de que la regla devuelva el valor True?

Opcional

Valores válidos: número entero

Valor predeterminado: 10

scan_interval_us

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)