Como criar modelos de machine learning automaticamente

GUIA DE CONCEITOS BÁSICOS

Visão geral

Neste tutorial, você aprenderá a usar o Amazon SageMaker Autopilot para criar, treinar e ajustar de maneira automática um modelo de machine learning (ML), além de implantar o modelo para que ele realize previsões.
 

O Amazon SageMaker Autopilot elimina a sobrecarga da criação de modelos de ML, auxiliando você a criar, treinar e ajustar, de maneira automática, o melhor modelo de ML com base em seus dados. Com o SageMaker Autopilot, você simplesmente fornece um conjunto de dados tabular e seleciona a coluna de destino a ser prevista. O SageMaker Autopilot explora seus dados, seleciona os algoritmos relevantes para o tipo de problema, prepara os dados para treinamento de modelos, testa uma variedade de modelos e seleciona o de melhor performance. Em seguida, você pode implantar um dos modelos possíveis ou iterar ainda mais eles para melhorar a qualidade da previsão.

O que você aprenderá

Neste guia, você vai:

  • Criar um experimento de treinamento usando o SageMaker Autopilot
  • Explorar as diferentes etapas do experimento de treinamento
  • Identificar e implantar o modelo com melhor performance do experimento de treinamento
  • Prever utilizando o modelo implantado

Pré-requisitos

Antes de iniciar este guia, você precisará de:

  • Uma conta da AWS: caso você ainda não tenha uma conta, siga o guia de conceitos básicos Como configurar o seu ambiente para obter uma breve visão geral.

 Experiência com a AWS

Iniciante

 Tempo para a conclusão

45 minutos

 Custo para a conclusão

Consulte os preços do SageMaker para estimar o custo deste tutorial.

 Requisitos

Você deve estar conectado a uma conta da AWS.

 Serviços usados

Amazon SageMaker Autopilot

 Data da última atualização

12 de julho de 2022

Caso de uso

Para este fluxo de trabalho, você usará um conjunto de dados de declarações de indenizações próprio que foi gerado sinteticamente. As entradas brutas são duas tabelas de dados de indenizações: uma tabela de declarações e uma tabela de clientes. A tabela de declarações tem uma coluna de fraude para indicar se uma declaração foi fraudulenta ou não. Para os propósitos deste tutorial, selecionamos uma pequena parte do conjunto de dados. No entanto, você pode seguir as mesmas etapas deste tutorial para processar grandes conjuntos de dados.

 

Etapa 1: configurar um domínio do Amazon SageMaker Studio

Uma conta da AWS pode ter apenas um domínio do SageMaker Studio por região da AWS. Se você já tiver um domínio do SageMaker Studio na região Leste dos EUA (Norte da Virgínia), siga o guia de configuração do SageMaker Studio para anexar as políticas do AWS IAM necessárias à sua conta do SageMaker Studio, ignore a Etapa 1 e vá diretamente para a Etapa 2. 

Se você não tiver um domínio do SageMaker Studio, continue com os passos da Etapa 1 para executar um modelo do AWS CloudFormation que cria um domínio do SageMaker Studio e adiciona as permissões necessárias para você finalizar este tutorial.

Escolha o link da pilha do AWS CloudFormation. Este link abre o console do AWS CloudFormation e cria seu domínio do SageMaker Studio e um usuário chamado studio-user. Ele também adiciona as permissões necessárias à sua conta do SageMaker Studio. No console do CloudFormation, confirme se Leste dos EUA (Norte da Virgínia) é a região exibida no canto superior direito. O nome da pilha deve ser CFN-SM-IM-Lambda-Catalog e não deve ser alterado. Essa pilha leva cerca de dez minutos para criar todos os recursos.

Essa pilha pressupõe que você já tenha uma VPC pública configurada em sua conta. Se você não tiver uma VPC pública, consulte VPC com uma única sub-rede pública para aprender como criar uma VPC pública.

Selecione I acknowledge that AWS CloudFormation might create IAM resources (Eu reconheço que o AWS CloudFormation pode criar recursos do IAM) e escolha Create stack (Criar pilha).

No painel CloudFormation, selecione Stacks (Pilhas). Quando a pilha é criada, o status da pilha deve mudar de CREATE_IN_PROGRESS para CREATE_COMPLETE.

Digite SageMaker Studio na barra de pesquisa do console do CloudFormation e escolha SageMaker Studio.

Escolha US East (N. Virginia) (Leste dos EUA [Norte da Virgínia]) na lista suspensa Region (Região) no canto superior direito do console do SageMaker. Em Launch app (Iniciar aplicação), selecione Studio para abrir o SageMaker Studio usando o perfil studio-user.
 

Etapa 2: iniciar um novo experimento do SageMaker Autopilot

Desenvolver e testar um grande número de modelos possíveis é crucial para projetos de machine learning (ML). O Amazon SageMaker Autopilot auxilia você ao fornecer diferentes modelos possíveis e escolhe de maneira automática o melhor modelo com base em seus dados. Nesta etapa, você configurará um experimento do SageMaker Autopilot para prever o sucesso de uma campanha de marketing de serviços financeiros. Esse conjunto de dados representa uma campanha de marketing realizada por uma importante instituição de serviços financeiros para promover o registro de certificados de depósito.

Para iniciar um novo experimento do SageMaker Autopilot, clique no ícone + para acessar uma nova janela do inicializador. Na janela do inicializador, role para baixo até ML tasks and components (Tarefas e componentes de ML). Clique no ícone + para criar um New Autopilot experiment (Novo experimento do Autopilot).

Em seguida, você nomeará seu experimento. Clique na caixa Experiment name (Nome do experimento) e digite autopilot-experiment como o nome.

 

Em seguida, você conectará o experimento aos dados pré-configurados no S3. Clique na caixa Enter S3 bucket location (Digite o local do bucket do S3). Na caixa S3 bucket address (Endereço do bucket do S3), cole o seguinte caminho para o S3: s3://sagemaker-sample-files/datasets/tabular/uci_bank_marketing/bank-additional-full.csv

Deixe a opção de arquivo de manifesto definida como Off (Desativada). Na lista suspensa Target (Destino), selecione y como o recurso de destino que nosso modelo tentará prever.

Na tabela Output data location (S3 bucket) (Local dos dados de saída [bucket do S3]), escolha seu próprio bucket do S3. No campo Dataset directory name (Nome do diretório do conjunto de dados), digite sagemaker/tutorial-autopilot/output. Este será o local em que os dados de saída serão salvos assim que o experimento for concluído.

Deixe a opção Auto deploy (Implantação automática) ativada e o campo Auto deploy endpoint (Endpoint de implantação automática) em branco. Isso implantará automaticamente nosso modelo como um endpoint de API e o atribuirá um nome.

Em seguida, existem várias configurações avançadas opcionais que controlam os detalhes do tipo de problema, o experimento completo, os detalhes do tempo de execução, o acesso ao IAM, a segurança e a criptografia, entre outros. Clique em runtime button (botão de tempo de execução) para mostrar as configurações opcionais.

Para este tutorial, diminua o número de Max candidates (Possibilidades máximas) de 250 para 5. Isso executará menos modelos mais rapidamente. Um experimento completo é a melhor abordagem para realmente otimizar seu modelo, mas pode levar horas para ser concluído. Para este tutorial, manteremos as configurações opcionais como estão.

Clique no botão Create Experiment (Criar experimento) para iniciar o primeiro estágio do experimento do SageMaker Autopilot. O SageMaker Autopilot começará a executar as fases de um experimento. Na janela do experimento, você pode acompanhar o progresso nas fases de pré-processamento, as definições de possibilidades, a engenharia de recursos, o ajuste de modelo, a explicabilidade e os insights.

Clique no botão Create Experiment (Criar experimento) para iniciar o primeiro estágio do experimento do SageMaker Autopilot. O SageMaker Autopilot começará a executar as fases de um experimento. Na janela do experimento, você pode acompanhar o progresso nas fases de pré-processamento, as definições de possibilidades, a engenharia de recursos, o ajuste de modelo, a explicabilidade e os insights. Se você vir uma notificação pop-up perguntando “Are you sure you want to deploy the best model?” (Tem certeza de que deseja implantar o melhor modelo?), clique em yes (sim).

Quando o trabalho do SageMaker Autopilot for concluído, você poderá acessar um relatório que mostra os modelos possíveis, o status do modelo possível, o valor do objetivo, a pontuação F1 e a precisão. O SageMaker Autopilot implantará automaticamente o endpoint.

Etapa 3: interpretar a performance do modelo

Agora que o experimento está completo e você tem um modelo, o próximo passo é interpretar sua performance. Agora você aprenderá a usar o SageMaker Autopilot para analisar a performance do modelo.

Agora que o experimento do SageMaker Autopilot foi concluído, você pode abrir o modelo com classificação superior para obter mais detalhes sobre a performance e os metadados dele. Na lista de modelos, realce o primeiro e clique com o botão direito do mouse para abrir as opções do modelo. Clique em Open in model details (Abrir detalhes do modelo) para revisar as estatísticas de performance do modelo.

Na nova janela, clique em Explainability (Explicabilidade). A primeira exibição que você obtém é chamada Feature Importance (Importância do recurso) e representa o valor SHAP agregado para cada recurso em cada instância no conjunto de dados. A pontuação de importância do recurso é uma parte importante da explicabilidade do modelo porque mostra quais recursos tendem a influenciar mais as previsões no conjunto de dados. Nesse caso de uso, o tempo de vida ou a permanência dos clientes e a taxa de variação de emprego são os dois principais campos para direcionar o resultado do modelo.

Agora, clique na guia Performance. Você encontrará informações detalhadas sobre a performance do modelo, incluindo acurácia, precisão e recall. Você também pode interpretar a performance do modelo e decidir se é necessário um ajuste adicional do modelo.

Em seguida, são fornecidas visualizações para ilustrar melhor a performance do modelo. Primeiro, observe a matriz de confusão. A matriz de confusão é comumente usada para entender como os rótulos do modelo se dividem entre as classes previstas e atuais. Nesse caso, os elementos diagonais mostram o número de rótulos previstos corretamente e os elementos fora da diagonal mostram os registros com erros de classificação. Uma matriz de confusão é útil para analisar erros de classificação devido a falsos positivos e falsos negativos.

Em seguida, observe a curva de precisão versus recall. Essa curva interpreta o rótulo como um limite de probabilidade e mostra a compensação que ocorre como vários limites de probabilidade para precisão e recall do modelo. O SageMaker Autopilot otimiza automaticamente esses dois parâmetros para fornecer o melhor modelo.

Em seguida, observe a curva chamada Receiver Operating Characteristic (ROC) (Característica de operação do receptor). Essa curva mostra a relação entre a taxa de verdadeiros positivos e a taxa de falsos positivos em uma variedade de limites de probabilidade potenciais. Uma linha diagonal representa um modelo hipotético baseado em suposições aleatórias. Quanto mais essa curva for puxada para o canto superior esquerdo do gráfico, melhor será a performance do modelo.

A linha tracejada representa um modelo com valor preditivo de zero, que geralmente é chamado de modelo nulo. O modelo nulo atribui aleatoriamente um rótulo 0/1 e sua área sob a curva de ROC é 0,5, representando que é preciso 50% das vezes.

Em seguida, clique na aba Artifacts (Artefatos). Você pode encontrar os recursos de suporte do experimento do SageMaker Autopilot, incluindo o código de engenharia de recursos, os locais de dados de entrada e os artefatos de explicabilidade.

Por fim, clique na guia Network (Rede). Você encontrará informações sobre o isolamento de rede e a criptografia de tráfego de contêiner.

Etapa 4: testar o endpoint do modelo SageMaker

Agora que você revisou os detalhes do modelo, teste o endpoint.

Clique no ícone + para abrir um novo bloco de anotações python. Selecione Python3 como o kernel. Na primeira célula, copie e cole o código abaixo. Esse código criará uma carga útil, enviará uma solicitação ao endpoint do modelo e analisará a resposta.

Para saber para onde enviar a solicitação, procure o nome do endpoint do modelo. No painel esquerdo, clique no ícone SageMaker Resources (Recursos do SageMaker). No painel de recursos do SageMaker, selecione Endpoints. Clique no endpoint associado ao nome do experimento que você criou no início deste tutorial. Isso abrirá a janela Endpoint Details (Detalhes do endpoint). Registre o nome do endpoint e navegue de volta para o bloco de anotações Python 3.

Copie e cole o trecho de código a seguir em uma célula no bloco de anotações e pressione Shift+Enter para executar a célula atual. Esse código define a variável de ambiente ENDPOINT_NAME e executa a inferência. À medida que o código for concluído, você verá um resultado que consiste no rótulo do modelo e na pontuação de probabilidade associada.
import os
import io
import boto3
import json
import csv

#: Define the endpoint's name.
ENDPOINT_NAME = 'autopilot-experiment-6d00f17b55464fc49c45d74362f284ce'
runtime = boto3.client('runtime.sagemaker')

#: Define a test payload to send to your endpoint.
payload = {
    "data":{
        "features": {
            "values": [45,"blue-collar","married","basic.9y",'unknown',"yes","no","telephone","may","mon",461,1,999,0,"nonexistent",1.1,93.994,-36.4,4.857,5191.0]
        }
    }
}

#: Submit an API request and capture the response object.
response = runtime.invoke_endpoint(
    EndpointName=ENDPOINT_NAME,
    ContentType='text/csv',
    Body=str(payload)
)

#: Print the model endpoint's output.
print(response['Body'].read().decode())

Parabéns! Você aprendeu a usar o SageMaker Autopilot para treinar e implantar automaticamente um modelo de machine learning.

Etapa 5: limpar os recursos da AWS

É uma prática recomendada excluir recursos que você não está mais usando para não incorrer em cobranças não intencionais.

Se você executou o modelo do CloudFormation na Etapa 1 para criar um novo domínio do SageMaker Studio, continue com as etapas a seguir para excluir o domínio, o usuário e os recursos criados pelo modelo do CloudFormation.

Para abrir o console do CloudFormation, insira CloudFormation na barra de pesquisa do console da AWS e escolha CloudFormation nos resultados da pesquisa.

No painel CloudFormation, escolha Stacks (Pilhas). Na lista suspensa de status, selecione Active (Ativo). Em Stack name (Nome da pilha), escolha CFN-SM-IM-Lambda-Catalog para abrir a página de detalhes da pilha.

Na página de detalhes da pilha CFN-SM-IM-Lambda-Catalog, escolha Delete (Excluir) para excluir a pilha junto com os recursos que ela criou na Etapa 1.

Conclusão

Parabéns! Agora você concluiu o tutorial Como criar modelos de machine learning automaticamente.

Você usou com êxito o SageMaker Autopilot para criar, treinar e ajustar modelos de maneira automática e, em seguida, implantar o melhor modelo possível para fazer previsões.

Esta página foi útil para você?

Próximas etapas

Saiba mais sobre o Amazon SageMaker Autopilot

Visite a página
Saiba mais »

Explore a documentação do SageMaker Autopilot

Saiba quais são os conceitos básicos do Amazon SageMaker Autopilot
Leia mais »
Encontre mais tutoriais práticos
Encontre mais tutoriais práticos para aprender como aproveitar o ML
Comece a usar »