Exemplos de notebooks e exemplos de código para configurar as regras do Debugger - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de notebooks e exemplos de código para configurar as regras do Debugger

Nas seções a seguir, blocos de notas e exemplos de código de como usar as regras do Debugger para monitorar trabalhos de SageMaker treinamento são fornecidos.

Notebooks de exemplo de regras integradas do depurador

Os exemplos de cadernos a seguir mostram como usar as regras integradas do Debugger ao executar trabalhos de treinamento com a Amazon: SageMaker

Ao executar os notebooks de exemplo no SageMaker Studio, você pode encontrar o teste de trabalho de treinamento criado na guia Studio Experiment List. Por exemplo, conforme mostrado na captura de tela a seguir, você pode encontrar e abrir uma janela Descrever o Componente de Teste do seu trabalho de treinamento atual. Na guia Depurador, você pode verificar se as regras do Depurador vanishing_gradient() e loss_not_decreasing() estão monitorando a sessão de treinamento em paralelo. Para obter instruções completas sobre como encontrar seus componentes de teste de emprego de treinamento na interface do usuário do Studio, consulte SageMaker Studio - View Experiments, Trials and Trial Components.

Uma imagem da execução de um trabalho de treinamento com as regras integradas do Debugger ativadas no Studio SageMaker

Há duas maneiras de usar as regras integradas do Debugger no SageMaker ambiente: implantar as regras integradas conforme elas são preparadas ou ajustar seus parâmetros conforme desejar. Os tópicos a seguir mostram como usar as regras integradas com códigos de exemplo.

Código de exemplo de regras integradas do depurador

O exemplo de código a seguir mostra como configurar as regras integradas do Depurador usando o método Rule.sagemaker. Para especificar as regras internas que você deseja executar, use a rules_configs API operação para chamar as regras internas. Para encontrar uma listagem completa das regras integradas do Depurador e dos valores de parâmetros padrão, consulte Lista de regras integradas do Debugger.

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

As regras integradas do Depurador são executadas em paralelo ao seu trabalho de treinamento. O número máximo de contêineres de regras integradas para um trabalho de treinamento é 20.

Para obter mais informações sobre a classe de regras, métodos e parâmetros do Debugger, consulte a classe SageMaker Debugger Rule no Amazon Python. SageMaker SDK

Para encontrar um exemplo de como ajustar os parâmetros da regra do Depurador, consulte a seção Use as regras integradas do Debugger com modificações de parâmetros a seguir.

Use as regras integradas do Debugger com modificações de parâmetros

O exemplo de código a seguir mostra a estrutura das regras integradas para ajustar os parâmetros. Neste exemplo, o stalled_training_rule coleta a coleção losses de tensores de um trabalho de treinamento a cada 50 etapas e um estágio de avaliação a cada 10 etapas. Se o processo de treinamento se iniciar parado e não coletar as saídas do tensor por 120 segundos, o stalled_training_rule interrompe o trabalho de treinamento.

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