Ejemplos de cuadernos y ejemplos de código para configurar las reglas del depurador - Amazon SageMaker AI

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

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

Cuadernos de ejemplo de reglas integradas del depurador

Los siguientes cuadernos de ejemplo muestran cómo utilizar las reglas integradas del depurador al ejecutar trabajos de entrenamiento con Amazon SageMaker AI:

Mientras ejecuta los cuadernos de ejemplo en SageMaker Studio, encontrará la versión de prueba del trabajo de entrenamiento 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 su trabajo de entrenamiento en la interfaz de usuario de Studio, consulte SageMaker Studio: ver experimentos, pruebas y componentes de prueba.

Imagen de la ejecución de un trabajo de entrenamiento con las reglas integradas del depurador activadas en SageMaker Studio

Hay dos maneras de utilizar las reglas integradas del depurador en el entorno de SageMaker AI: despliegue las reglas integradas a medida que estén preparadas o ajuste 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 AI 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 de reglas del depurador de SageMaker en el Amazon SageMaker Python SDK.

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 AI 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()