Exemplos de Cadernos e exemplos de código para configurar as regras do Depurador - SageMaker IA da Amazon

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 Cadernos e exemplos de código para configurar as regras do Depurador

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

Cadernos de exemplo de regras integradas do Depurador

Os seguintes exemplos de caderno mostram como usar as regras integradas do Debugger ao executar tarefas de treinamento com o Amazon SageMaker AI.

Ao executar os cadernos de exemplo no SageMaker Studio, você pode encontrar a avaliação do trabalho de treinamento criado na guia Lista de experimentos do Studio. 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 avaliação de trabalhos de treinamento na interface do usuário do Studio, consultar SageMaker Studio - Exibir experimentos, avaliações e componentes de teste.

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

Há duas maneiras de usar as regras integradas do Debugger no ambiente do SageMaker AI: implantar as regras integradas à medida que elas são preparadas ou ajustar os respectivos parâmetros conforme você 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 integradas que você deseja executar, use a operação rules_configs da API para chamar as regras integradas. Para encontrar uma listagem completa das regras integradas do Depurador e dos valores de parâmetros padrão, consulte Lista de regras integradas do 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

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, os métodos e os parâmetros do Debugger, consulte a classe de regras do SageMaker Debugger no Amazon SageMaker Python SDK.

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

Use regras integradas do Depurador 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 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()