Piloto automático do Amazon SageMaker possibilita que as organizações criem e implantem rapidamente um modelo de aprendizado de máquina (ML) ponta a ponta e um pipeline de inferência com apenas algumas linhas de código ou até mesmo sem nenhum código em tudo com Estúdio Amazon SageMaker. O Autopilot alivia o trabalho pesado de configuração da infraestrutura e o tempo necessário para construir um pipeline inteiro, incluindo engenharia de recursos, seleção de modelo e ajuste de hiperparâmetros.
Nesta postagem, mostramos como passar de dados brutos para um pipeline de inferência robusto e totalmente implantado com o Autopilot.
Visão geral da solução
Usamos Conjunto de dados públicos da Lyft sobre compartilhamento de bicicletas para esta simulação prever se um usuário participa ou não do Programa Bicicleta Compartilhada para Todos. Este é um problema simples de classificação binária.
Queremos mostrar como é fácil construir um pipeline de inferência automatizado e em tempo real para classificar usuários com base em sua participação no programa Bike Share for All. Para esse fim, simulamos um pipeline de ingestão e inferência de dados ponta a ponta para uma empresa imaginária de compartilhamento de bicicletas operando na área da Baía de São Francisco.
A arquitetura é dividida em duas partes: o pipeline de ingestão e o pipeline de inferência.
Nós nos concentramos principalmente no pipeline de ML na primeira seção desta postagem e revisamos o pipeline de ingestão de dados na segunda parte.
Pré-requisitos
Para acompanhar este exemplo, preencha os seguintes pré-requisitos:
- Crie uma nova instância de notebook SageMaker.
- Crie uma Mangueira de incêndio de dados do Amazon Kinesis fluxo de entrega com um AWS Lambda função de transformação. Para obter instruções, consulte Transformação de dados do Amazon Kinesis Firehose com AWS Lambda. Esta etapa é opcional e necessária apenas para simular o streaming de dados.
Exploração de dados
Vamos baixar e visualizar o conjunto de dados, que está localizado em um local público Serviço de armazenamento simples da Amazon (Amazon S3) bucket e site estático:
A captura de tela a seguir mostra um subconjunto de dados antes da transformação.
A última coluna dos dados contém o alvo que queremos prever, que é uma variável binária que assume um valor Sim ou Não, indicando se o usuário participa do programa Bike Share for All.
Vamos dar uma olhada na distribuição de nossa variável alvo para qualquer desequilíbrio de dados.
Conforme mostrado no gráfico acima, os dados estão desequilibrados, com menos pessoas participando do programa.
Precisamos equilibrar os dados para evitar um viés de representação excessiva. Esta etapa é opcional porque o Autopilot também oferece uma abordagem interna para lidar automaticamente com o desequilíbrio de classe, cujo padrão é uma métrica de validação de pontuação F1. Além disso, se você mesmo optar por balancear os dados, poderá usar técnicas mais avançadas para lidar com o desequilíbrio de classes, como FERIR or GAN.
Para esta postagem, reduzimos a resolução da classe majoritária (Não) como uma técnica de balanceamento de dados:
O código a seguir enriquece os dados e subamostra a classe sobre-representada:
Deixamos deliberadamente nossos recursos categóricos não codificados, incluindo nosso valor alvo binário. Isso ocorre porque o Autopilot cuida da codificação e decodificação dos dados para nós como parte da engenharia automática de recursos e da implantação do pipeline, como veremos na próxima seção.
A captura de tela a seguir mostra uma amostra de nossos dados.
Os dados nos gráficos a seguir parecem normais, com uma distribuição bimodal representando os dois picos para as horas da manhã e as horas de ponta da tarde, como seria de esperar. Também observamos baixa atividade nos finais de semana e à noite.
Na próxima seção, alimentamos os dados no Autopilot para que ele possa realizar um experimento para nós.
Construa um modelo de classificação binária
O piloto automático exige que especifiquemos os buckets de destino de entrada e saída. Ele usa o bucket de entrada para carregar os dados e o bucket de saída para salvar os artefatos, como engenharia de recursos e os notebooks Jupyter gerados. Retemos 5% do conjunto de dados para avaliar e validar o desempenho do modelo após a conclusão do treinamento e carregamos 95% do conjunto de dados para o intervalo de entrada S3. Veja o seguinte código:
Depois de carregarmos os dados para o destino de entrada, é hora de iniciar o Autopilot:
Tudo o que precisamos para começar a experimentar é chamar o método fit(). O Autopilot precisa do local S3 de entrada e saída e da coluna de atributos de destino como parâmetros necessários. Após o processamento do recurso, o Autopilot chama SageMaker ajuste automático do modelo para encontrar a melhor versão de um modelo executando vários trabalhos de treinamento em seu conjunto de dados. Adicionamos o parâmetro opcional max_candidates para limitar o número de candidatos a 30, que é o número de trabalhos de treinamento que o Autopilot lança com diferentes combinações de algoritmos e hiperparâmetros para encontrar o melhor modelo. Se você não especificar esse parâmetro, o padrão será 250.
Podemos observar o progresso do Autopilot com o seguinte código:
O treinamento leva algum tempo para ser concluído. Enquanto estiver em execução, vamos dar uma olhada no fluxo de trabalho do Autopilot.
Para encontrar o melhor candidato, use o seguinte código:
A captura de tela a seguir mostra nossa saída.
Nosso modelo alcançou uma precisão de validação de 96%, então vamos implantá-lo. Poderíamos adicionar uma condição tal que só usaríamos o modelo se a precisão estivesse acima de um determinado nível.
Pipeline de inferência
Antes de implantarmos nosso modelo, vamos examinar nosso melhor candidato e o que está acontecendo em nosso pipeline. Veja o seguinte código:
O diagrama a seguir mostra nossa saída.
O Autopilot construiu o modelo e o empacotou em três contêineres diferentes, cada um executando sequencialmente uma tarefa específica: transformar, prever e transformar reversamente. Esta inferência em vários passos é possível com um Pipeline de inferência do SageMaker.
Uma inferência em várias etapas também pode encadear vários modelos de inferência. Por exemplo, um contêiner pode executar análise do componente principal antes de passar os dados para o contêiner XGBoost.
Implantar o pipeline de inferência em um endpoint
O processo de implantação envolve apenas algumas linhas de código:
Vamos configurar nosso endpoint para previsão com um preditor:
Agora que temos nosso endpoint e preditor prontos, é hora de usar os dados de teste que reservamos e testar a precisão do nosso modelo. Começamos definindo uma função de utilidade que envia os dados uma linha por vez para nosso ponto final de inferência e obtém uma previsão em troca. Porque temos um XGBoostName modelo, eliminamos a variável de destino antes de enviar a linha CSV para o endpoint. Além disso, removemos o cabeçalho do CSV de teste antes de percorrer o arquivo, o que também é outro requisito para o XGBoost no SageMaker. Veja o seguinte código:
A captura de tela a seguir mostra nossa saída.
Agora vamos calcular a precisão do nosso modelo.
Veja o seguinte código:
Obtemos uma precisão de 92%. Isto é um pouco inferior aos 96% obtidos durante a etapa de validação, mas ainda é alto o suficiente. Não esperamos que a precisão seja exatamente a mesma porque o teste é realizado com um novo conjunto de dados.
Ingestão de dados
Baixamos os dados diretamente e os configuramos para treinamento. Na vida real, pode ser necessário enviar os dados diretamente do dispositivo de borda para o data lake e fazer com que o SageMaker os carregue diretamente do data lake para o notebook.
O Kinesis Data Firehose é uma boa opção e a maneira mais direta de carregar dados de streaming de maneira confiável em data lakes, armazenamentos de dados e ferramentas de análise. Ele pode capturar, transformar e carregar dados de streaming no Amazon S3 e em outros armazenamentos de dados da AWS.
Para nosso caso de uso, criamos um fluxo de entrega do Kinesis Data Firehose com uma função de transformação Lambda para fazer uma limpeza leve de dados à medida que eles atravessam o fluxo. Veja o seguinte código:
Esta função Lambda realiza uma leve transformação dos dados transmitidos dos dispositivos para o data lake. Ele espera um arquivo de dados formatado em CSV.
Para a etapa de ingestão, baixamos os dados e simulamos um fluxo de dados para o Kinesis Data Firehose com uma função de transformação Lambda e para nosso data lake S3.
Vamos simular o streaming de algumas linhas:
limpar
É importante excluir todos os recursos usados neste exercício para minimizar custos. O código a seguir exclui o endpoint de inferência do SageMaker que criamos, bem como os dados de treinamento e teste que carregamos:
Conclusão
Engenheiros de ML, cientistas de dados e desenvolvedores de software podem usar o Autopilot para criar e implantar um pipeline de inferência com pouca ou nenhuma experiência em programação de ML. O Autopilot economiza tempo e recursos, usando ciência de dados e práticas recomendadas de ML. As grandes organizações podem agora transferir recursos de engenharia da configuração da infraestrutura para melhorar modelos e resolver casos de uso de negócios. Startups e organizações menores podem começar a usar o aprendizado de máquina com pouco ou nenhum conhecimento em ML.
Para começar a usar o SageMaker Autopilot, consulte o página do produto FlexSim ou acesse o SageMaker Autopilot no SageMaker Studio.
Também recomendamos aprender mais sobre outros recursos importantes que o SageMaker tem a oferecer, como o Loja de recursos Amazon SageMaker, que se integra com Pipelines Amazon SageMaker para criar, adicionar pesquisa e descoberta de recursos e reutilizar fluxos de trabalho automatizados de ML. Você pode executar várias simulações do Autopilot com diferentes recursos ou variantes de destino em seu conjunto de dados. Você também pode abordar isso como um problema dinâmico de alocação de veículos, no qual seu modelo tenta prever a demanda de veículos com base no tempo (como hora do dia ou dia da semana) ou localização, ou uma combinação de ambos.
Sobre os autores
Doug Mbaya é arquiteto de soluções sênior com foco em dados e análises. Doug trabalha em estreita colaboração com parceiros da AWS, ajudando-os a integrar soluções de dados e análises na nuvem. A experiência anterior de Doug inclui suporte a clientes da AWS no segmento de compartilhamento de viagens e entrega de comida.
Valério Perrone é um gerente de ciência aplicada que trabalha no ajuste automático de modelos e no piloto automático do Amazon SageMaker.
- Coinsmart. A melhor troca de Bitcoin e criptografia da Europa.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. ACESSO LIVRE.
- CryptoHawk. Radar Altcoin. Teste grátis.
- Fonte: https://aws.amazon.com/blogs/machine-learning/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- Sobre
- Acesso
- alcançado
- atividades
- avançado
- algoritmos
- Todos os Produtos
- alocação
- Amazon
- analítica
- Outro
- api
- abordagem
- arquitetura
- ÁREA
- argumentos
- Automatizado
- AWS
- Bay
- MELHOR
- melhores práticas
- construir
- negócio
- chamada
- Pode obter
- Cuidado
- casos
- alterar
- escolhas
- classificação
- Limpeza
- Na nuvem
- código
- Coluna
- combinação
- combinações
- Empresa
- componente
- condição
- Configuração
- Recipiente
- Containers
- contém
- poderia
- Clientes
- dados,
- informática
- ciência de dados
- dia
- Entrega
- Demanda
- implantar
- desenvolvimento
- desenvolvedores
- dispositivo
- Dispositivos/Instrumentos
- diferente
- descoberta
- Ecrã
- distribuição
- down
- Cair
- dinâmico
- borda
- criptografia
- Ponto final
- Engenharia
- Engenheiros
- Evento
- exemplo
- Exceto
- Exercício
- espera
- vasta experiência
- experimentar
- experiência
- Característica
- Funcionalidades
- Primeiro nome
- Foco
- seguir
- seguinte
- comida
- Francisco
- função
- obtendo
- vai
- Bom estado, com sinais de uso
- Manipulação
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- importante
- Incluindo
- Infraestrutura
- integrar
- IT
- Trabalho
- Empregos
- grande
- lança
- aprendizagem
- Nível
- Biblioteca
- leve
- leve
- Line
- pequeno
- carregar
- localmente
- localização
- máquina
- aprendizado de máquina
- Maioria
- Fazendo
- Gerente
- ML
- modelo
- modelos
- a maioria
- caderno
- oferecer
- Oferece
- operando
- Opção
- ordem
- organizações
- Outros
- de outra forma
- participação
- Parceiros
- Pessoas
- atuação
- possível
- predição
- Problema
- processo
- Agenda
- Programação
- fornecer
- público
- rapidamente
- Cru
- em tempo real
- recomendar
- registro
- registros
- requeridos
- Recursos
- Retorna
- rever
- regras
- Execute
- corrida
- apressar
- San
- San Francisco
- poupança
- Ciência
- cientistas
- Pesquisar
- selecionado
- Série
- conjunto
- Partilhar
- compartilhado
- mudança
- simples
- simulação
- Tamanho
- dormir
- So
- Software
- divisão
- começo
- começado
- Startups
- armazenamento
- lojas
- transmitir canais
- fluídas
- de streaming
- estudo
- Target
- técnicas
- teste
- ensaio
- Através da
- tempo
- hoje
- ferramentas
- Training
- Transformar
- Transformação
- us
- usar
- usuários
- utilidade
- valor
- veículo
- Site
- semana
- se
- Wikipedia
- dentro
- trabalhar
- trabalho