Usar ações integradas das 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á.

Usar ações integradas das regras do Depurador

Use as ações integradas do Debugger para responder aos problemas encontrados por Regra do Depurador. A classe rule_configs Debugger fornece ferramentas para configurar uma lista de ações, incluindo a interrupção automática de trabalhos de treinamento e o envio de notificações usando o Amazon Simple Notification Service (Amazon SNS) quando as regras do Debugger encontram problemas de treinamento. Os tópicos a seguir orienta as etapas necessárias para realizar essas tarefas.

Configurar o Amazon SNS, criar um tópico SMDebugRules e assinar o tópico

Esta seção explica como configurar um SMDebugRules tópico do Amazon SNS, inscrever-se nele e confirmar a assinatura para receber notificações das regras do Debugger.

Para criar um tópico de SMDebug regras
  1. Faça login no AWS Management Console e abra o console do Amazon SNS em https://console.aws.amazon.com/sns/ v3/home.

  2. No painel de navegação à esquerda, selecione Tópicos.

  3. Na página Tópicos, escolha Criar tópico.

  4. Na página Criar tópico, na seção Detalhes, faça o seguinte:

    1. Em Tipo, escolha Padrão para o tipo de tópico.

    2. Em Nome, insira SMDebugRules.

  5. Ignore todas as outras configurações opcionais e escolha Criar tópico. Se você quiser saber mais sobre as configurações opcionais, consulte o tópico Criação de um Amazon SNS.

Para se inscrever no tópico SMDebug Regras

  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/ v3/home.

  2. No painel de navegação à esquerda, selecione Assinaturas.

  3. Na página Assinaturas, escolha Criar assinatura.

  4. Na página Criar assinatura, na seção Detalhes, faça o seguinte:

    1. Em ARN do tópico, escolha o ARN do tópico SMDebugRegras. O ARN deve estar no formato de arn:aws:sns:<region-id>:111122223333:SMDebugRules.

    2. Em Protocolo, escolha Email ou SMS.

    3. Em Endpoint, insira o valor do endpoint, como um endereço de e-mail ou um número de telefone do qual você deseja receber notificações.

      nota

      Certifique-se de digitar o endereço de e-mail e o número de telefone corretos. Os números de telefone devem incluir +, um código de país e um número de telefone, sem caracteres especiais ou espaços. Por exemplo, o número de telefone +1 (222) 333-4444 está formatado como +12223334444.

  5. Ignore todas as outras configurações opcionais e escolha Criar assinatura. Se você quiser saber mais sobre as configurações opcionais, consulte o tópico Inscrevendo-se para um Amazon SNS.

Depois de assinar o tópico SMDebugRegras, você receberá a seguinte mensagem de confirmação por e-mail ou telefone:

Uma mensagem de e-mail de confirmação da assinatura para o tópico SMDebugRegras do Amazon SNS.

Para obter mais informações sobre o Amazon SNS, consulte Mensagens de texto móveis (SMS) e Notificações por e-mail no Guia do desenvolvedor do Amazon SNS.

Configurar o seu perfil do IAM para anexar as políticas necessárias

Nesta etapa, adicione as políticas necessárias à perfil do IAM.

Para adicionar as políticas necessárias à sua perfil do IAM
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, selecione Políticas e Criar política.

  3. Na página Criar política, faça o seguinte para criar uma nova política de acesso ao sns:

    1. Selecione a guia JSON.

    2. Cole as sequências de caracteres JSON formatadas em negrito no código a seguir no"Statement", substituindo o ID da conta de 12 dígitos pelo ID da AWS sua conta. AWS

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sns:Publish", "sns:CreateTopic", "sns:Subscribe" ], "Resource": "arn:aws:sns:*:111122223333:SMDebugRules" } ] }
    3. Na parte inferior da página, escolha Revisar política.

    4. Na página Revisar política, em Nome, insira sns-access.

    5. Na parte inferior da página, escolha Criar política.

  4. Volte para o console do IAM e escolha Funções no painel de navegação à esquerda.

  5. Pesquise a função do IAM que você usa para o treinamento do modelo de SageMaker IA e escolha essa função do IAM.

  6. Na guia de Permissões da página Resumo, escolha Anexar políticas.

  7. Pesquise a política de acesso sns, marque a caixa de seleção ao lado da política e escolha Anexar política.

Para obter mais exemplos de configuração de políticas do IAM para o Amazon SNS, consulte Exemplos de casos de controle de acesso ao Amazon SNS.

Configuração das regras do Depurador com ações integradas

Depois de concluir com êxito as configurações necessárias nas etapas anteriores, você poderá configurar as ações integradas do Debugger para regras de depuração, conforme mostrado no script de exemplo a seguir. Você pode escolher quais ações internas usar ao criar o objeto da lista actions. O rule_configs é um módulo auxiliar que fornece ferramentas de alto nível para configurar as regras e ações integradas do Debugger. As seguintes ações integradas estão disponíveis para o Debugger:

  • rule_configs.StopTraining(): Interrompe um trabalho de treinamento quando a regra do Debugger encontra um problema.

  • rule_configs.Email("abc@abc.com"): Envia uma notificação por e-mail quando a regra do Debugger encontra um problema. Use o endereço de e-mail que você usou ao configurar sua assinatura de tópicos do SNS.

  • rule_configs.SMS("+1234567890"): Envia uma notificação por mensagem de texto quando a regra do Debugger encontra um problema. Use o número de telefone que você usou ao configurar sua assinatura de tópico SNS.

    nota

    Certifique-se de digitar o endereço de e-mail e o número de telefone corretos. Os números de telefone devem incluir +, um código do país e um número de telefone, sem caracteres especiais ou espaços. Por exemplo, o número de telefone +1 (222) 333-4444 está formatado como +12223334444.

Você pode usar todas as ações integradas ou um subconjunto de ações concluindo usando o método rule_configs.ActionList(), que usa as ações integradas e configura uma lista de ações.

Para adicionar todas as três ações integradas a uma única regra

Se você quiser atribuir todas as três ações integradas a uma única regra, configure uma lista de ações integradas do Debugger ao construir um estimador. Use o modelo a seguir para construir o estimador, e o Debugger interromperá os trabalhos de treinamento e enviará notificações por email e texto para quaisquer regras que você usar para monitorar o progresso do seu trabalho de treinamento.

from sagemaker.debugger import Rule, rule_configs # Configure an action list object for Debugger rules actions = rule_configs.ActionList( rule_configs.StopTraining(), rule_configs.Email("abc@abc.com"), rule_configs.SMS("+1234567890") ) # Configure rules for debugging with the actions parameter rules = [ Rule.sagemaker( base_config=rule_configs.built_in_rule(), # Required rule_parameters={"paramter_key": value }, # Optional actions=actions ) ] estimator = Estimator( ... rules = rules ) estimator.fit(wait=False)

Para criar vários objetos de ação integrados para atribuir ações diferentes a uma única regra

Se desejar atribuir ações integradas para serem acionadas em diferentes valores de limite de uma única regra, você poderá criar vários objetos de ação integrados, conforme mostrado no script a seguir. Para evitar um erro de conflito ao executar a mesma regra, você deve enviar nomes de tarefas de regras diferentes (especificar sequências diferentes para o atributo name das regras), conforme mostrado no modelo de script de exemplo a seguir. Este exemplo mostra como configurar StalledTrainingRule para realizar duas ações diferentes: enviar um e-mail para abc@abc.com quando um trabalho de treinamento parar por 60 segundos e interromper o trabalho de treinamento se ficar parado por 120 segundos.

from sagemaker.debugger import Rule, rule_configs import time base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) # Configure an action object for StopTraining action_stop_training = rule_configs.ActionList( rule_configs.StopTraining() ) # Configure an action object for Email action_email = rule_configs.ActionList( rule_configs.Email("abc@abc.com") ) # Configure a rule with the Email built-in action to trigger if a training job stalls for 60 seconds stalled_training_job_rule_email = Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "60", "training_job_name_prefix": base_job_name_prefix }, actions=action_email ) stalled_training_job_rule_text.name="StalledTrainingJobRuleEmail" # Configure a rule with the StopTraining built-in action to trigger if a training job stalls for 120 seconds stalled_training_job_rule = Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ "threshold": "120", "training_job_name_prefix": base_job_name_prefix }, actions=action_stop_training ) stalled_training_job_rule.name="StalledTrainingJobRuleStopTraining" estimator = Estimator( ... rules = [stalled_training_job_rule_email, stalled_training_job_rule] ) estimator.fit(wait=False)

Enquanto o trabalho de treinamento está em execução, a ação integrada do Debugger envia e-mails de notificação e mensagens de texto sempre que a regra encontra problemas com seu trabalho de treinamento. A captura de tela a seguir mostra um exemplo de notificação por email para um trabalho de treinamento que apresenta um problema de trabalho de treinamento paralisado.

Um exemplo de notificação por e-mail enviada pelo Debugger quando ele detecta um problema. StalledTraining

A captura de tela a seguir mostra um exemplo de notificação de texto que o Debugger envia quando a regra encontra um problema. StalledTraining

Um exemplo de notificação de texto enviada pelo Debugger quando ele detecta um problema. StalledTraining

Considerações sobre o uso das ações integradas do Depurador

  • Para usar as ações integradas do Debugger, é necessária uma conexão com a Internet. Esse recurso não é suportado no modo de isolamento de rede fornecido pela Amazon SageMaker AI ou Amazon VPC.

  • As ações integradas não podem ser usadas para Regras do perfilador.

  • As ações integradas não podem ser usadas em trabalhos de treinamento com interrupções pontuais no treinamento.

  • Nas notificações por e-mail ou texto, None aparece no final das mensagens. Isso não tem nenhum significado, então você pode ignorar o texto None.