Configurar reglas integradas 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.

Configurar reglas integradas del depurador

Las reglas integradas de Amazon SageMaker Debugger analizan los tensores emitidos durante el entrenamiento de un modelo. SageMakerDebugger ofrece la operación de Rule API que monitorea el progreso y los errores del trabajo de entrenamiento para garantizar el éxito del entrenamiento del modelo. Por ejemplo, las reglas pueden detectar si los gradientes son demasiado grandes o demasiado pequeños, si un modelo está sobreajustado o sobreentrenado y si un trabajo de entrenamiento no reduce la pérdida de función y mejora. Para ver una lista completa de reglas integradas disponibles, consulte Lista de reglas integradas del depurador.

En los siguientes temas, aprenderá a usar las reglas integradas del SageMaker Debugger.

Utilice las reglas integradas del depurador con los ajustes de parámetros predeterminados

Para especificar las reglas integradas del depurador en un estimador, debe configurar un objeto de la lista. El siguiente código de ejemplo muestra la estructura básica de la lista de las reglas integradas del depurador:

from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.built_in_rule_name_1()), Rule.sagemaker(rule_configs.built_in_rule_name_2()), ... Rule.sagemaker(rule_configs.built_in_rule_name_n()), ... # You can also append more profiler rules in the ProfilerRule.sagemaker(rule_configs.*()) format. ]

Para obtener más información sobre los valores de los parámetros predeterminados y las descripciones de la regla integrada, consulteLista de reglas integradas del depurador.

Para encontrar la referencia de la API SageMaker Debugger, consulte sagemaker.debugger.rule_configsy. sagemaker.debugger.Rule

Por ejemplo, para inspeccionar el rendimiento general del entrenamiento y el progreso del modelo, cree un SageMaker estimador con la siguiente configuración de reglas integrada.

from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.loss_not_decreasing()), Rule.sagemaker(rule_configs.overfit()), Rule.sagemaker(rule_configs.overtraining()), Rule.sagemaker(rule_configs.stalled_training_rule()) ]

Al iniciar el trabajo de entrenamiento, el depurador recopila los datos de utilización de los recursos del sistema cada 500 milisegundos y los valores de pérdida y precisión cada 500 pasos de forma predeterminada. El depurador analiza la utilización de los recursos para identificar si su modelo tiene problemas de cuellos de botella. El loss_not_decreasing, overfit, overtraining y stalled_training_rule monitoriza si su modelo está optimizando la función de pérdida sin esos problemas de entrenamiento. 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 Action on Amazon SageMaker Debugger Rules.

Utilice las reglas integradas del depurador con valores de parámetros personalizados

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 rule_parameters y base_config 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. Las instrucciones sobre cómo usar la clase CollectionConfig están disponibles enConfigurar las colecciones de tensores mediante la API CollectionConfig.

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 se vayan a activar.

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

  • El argumento collections_to_save adopta una configuración tensorial a través de la API CollectionConfig, que requiere los argumentos name y parameters.

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 SageMaker depurador en el SDK de Amazon SageMaker Python.

from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig rules=[ Rule.sagemaker( base_config=rule_configs.built_in_rule_name(), rule_parameters={ "key": "value" }, collections_to_save=[ CollectionConfig( name="tensor_collection_name", 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 depurador.

Ejemplos de cuadernos y ejemplos de código para configurar las reglas del depurador

En las siguientes secciones, se proporcionan cuadernos y ejemplos de código sobre cómo utilizar las reglas del depurador para supervisar los trabajos de SageMaker formación.

Cuadernos de ejemplo de reglas integradas del depurador

Los siguientes cuadernos de ejemplo muestran cómo utilizar las reglas integradas del Debugger al ejecutar tareas de formación con Amazon: SageMaker

Mientras utilizas los cuadernos de ejemplo en SageMaker Studio, encontrarás la versión de prueba del trabajo de formación creada en la pestaña Lista de experimentos de Studio. Por ejemplo, como se muestra en la siguiente captura de pantalla, puede buscar y abrir la ventana Describir componente de prueba de su trabajo de entrenamiento actual. En la pestaña Depurador, puede comprobar si las reglas de depurador, vanishing_gradient() y loss_not_decreasing(), están monitorizando la sesión de entrenamiento en paralelo. Para obtener instrucciones completas sobre cómo encontrar los componentes de prueba de tu trabajo de formación en la interfaz de usuario de Studio, consulta SageMaker Studio: View Experiments, Trials y Trial Components.

Imagen de la ejecución de un trabajo de formación con las reglas integradas de Debugger activadas en Studio SageMaker

Hay dos formas de utilizar las reglas integradas del Debugger en el SageMaker entorno: implementar las reglas integradas a medida que están preparadas o ajustar sus parámetros como desee. En los temas siguientes se muestra cómo utilizar las reglas integradas con códigos de ejemplo.

Código de ejemplo de reglas integradas del depurador

El siguiente ejemplo de código muestra cómo ejecutar las reglas integradas del depurador mediante el método Rule.sagemaker. Para especificar las reglas integradas que desea ejecutar, utilice la operación de la API rules_configs para llamar a las reglas integradas. Para obtener una lista completa de las reglas integradas del depurador y los valores de los parámetros predeterminados, consulte Lista de reglas integradas del depurador.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call built-in rules that you want to use. built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()) Rule.sagemaker(rule_configs.loss_not_decreasing()) ] # construct a SageMaker estimator with the Debugger built-in rules sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-built-in-rules-demo', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules ) sagemaker_estimator.fit()
nota

Las reglas integradas del depurador se ejecutan en paralelo con su trabajo de entrenamiento. El número máximo de contenedores de reglas integradas para un trabajo de entrenamiento es 20.

Para obtener más información sobre la clase de reglas, los métodos y los parámetros del depurador, consulte la clase Regla del SageMaker depurador en el SDK de Amazon SageMaker Python.

Para ver un ejemplo de cómo ajustar los parámetros de la regla del depurador, consulte la siguiente sección Uso de reglas integradas del depurador con modificaciones de parámetros.

Uso de reglas integradas del depurador con modificaciones de parámetros

El siguiente ejemplo de código muestra la estructura de las reglas integradas para ajustar los parámetros. En este ejemplo, el stalled_training_rule recopila la colección de tensores de losses de un trabajo de entrenamiento cada 50 pasos y de una etapa de evaluación cada 10 pasos. Si el proceso de entrenamiento comienza a estancarse y no recopila las salidas de los tensores durante 120 segundos, stalled_training_rule detiene el trabajo de entrenamiento.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call the built-in rules and modify the CollectionConfig parameters base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) built_in_rules_modified=[ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ 'threshold': '120', 'training_job_name_prefix': base_job_name_prefix, 'stop_training_on_fire' : 'True' } collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "50" "eval.save_interval": "10" } ) ] ) ] # construct a SageMaker estimator with the modified Debugger built-in rule sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name=base_job_name_prefix, instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_estimator.fit()

Para obtener una configuración avanzada de las reglas integradas del depurador mediante la API CreateTrainingJob, consulte Configurar el depurador mediante la API de Amazon SageMaker .