Use ações integradas do Debugger para regras - 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á.

Use ações integradas do Debugger para regras

Use as ações integradas do Debugger para responder aos problemas encontrados por Regra do depurador. A rule_configs classe 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 (AmazonSNS) quando as regras do Debugger encontram problemas de treinamento. Os tópicos a seguir mostram as etapas para realizar essas tarefas.

Configure a AmazonSNS, crie um SMDebugRules tópico e assine o tópico

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

nota

Para obter mais informações sobre o faturamento da AmazonSNS, consulte SNSPreços da Amazon e Amazon SNS FAQs.

Para criar um tópico do SMDebugRules
  1. Faça login no AWS Management Console e abra o SNS console da Amazon 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 Create topic (Criar tópico), na seção Details (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 Criação de um SNS tópico na Amazon.

Para se inscrever no SMDebugRules tópico

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

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

  3. Na página Subscriptions (Assinaturas), escolha Create subscription (Criar assinatura).

  4. Na página Create subscription (Criar inscrição), na seção Details (detalhes), faça o seguinte:

    1. Em Tópico ARN, escolha o SMDebugRulestópicoARN. O ARN deve estar no formato dearn:aws:sns:<region-id>:111122223333:SMDebugRules.

    2. Em Protocolo, escolha E-mail 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 Inscrever-se em um SNS tópico da Amazon.

Depois de se inscrever no SMDebugRulestópico, 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 SNS SMDebugRulestópico da Amazon.

Para obter mais informações sobre a AmazonSNS, consulte Mensagens de texto móveis (SMS) e notificações por e-mail no Amazon SNS Developer Guide.

Configure sua IAM função para anexar as políticas necessárias

Nesta etapa, você adiciona as políticas necessárias à sua IAM função.

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

  2. No painel de navegação, 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. Escolha a JSONguia.

    2. Cole as JSON sequências de caracteres formatadas em negrito no código a seguir no"Statement", substituindo o ID da conta de 12 dígitos pelo ID AWS da 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 Review policy (Revisar política), em Name (Nome), insira sns-access.

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

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

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

  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 IAM políticas para a AmazonSNS, consulte Exemplos de casos de controle de SNS acesso da Amazon.

Configure as regras do Debugger com as 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 SNS tópicos.

  • 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 SNS tópicos.

    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 Debugger

  • 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 ou pela AmazonVPC.

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