Neste segunda parte do workshop MLOps, você irá aprender a fazer o deploy para poder testar e avaliar o modelo criado
Na primeira parte deste Workshop, você aprendeu a criar um modelo de machine learning (ML), passando pelas etapas de obtenção dos dados, feature engineering (etapa de pré-processamento dos dados, na qual fazemos as transformações necessárias para que os dados sejam fornecidos para o modelo), modelagem e avaliação do modelo treinado. Caso não tenha feito ainda, sugerimos que volte à Parte 1 – Workshop Machine Learning: da criação ao deploy de modelos de aprendizado de máquina.
Agora com o seu modelinho pronto, veremos como é simples deixá-lo disponível para utilização por outros serviços. Para isso, criaremos uma API de predição usando o FastAPI e colocaremos ele em um container usando Docker. Ao final, disponibilizaremos o Github com os códigos para que você possa confirmar a reprodução da aplicação criada.
Terminou o Workshop?
Atividade para Fórum
- Análise exploratória
Crie um Jupyter notebook e faça a análise exploratória do conjunto de dados do Titanic para entender melhor sobre ele e tente obter aprendizados sobre a sobrevivência ou não dos passageiros (exemplo: mulheres têm mais chances de terem sobrevivido ao naufrágio? O porto de embarque tem alguma relação com a chance de sobrevivência ou é uma variável que não faz sentido colocar no modelo?). - Feature engineering
Com o que você pode observar da análise exploratória, faça modificações no pipeline da feature engineering (adicione novas variáveis, mude as transformações, etc). Faça uma nova submissão no Kaggle e veja se conseguiu obter uma acurácia maior com essas mudanças.
Próximos projetos
Agora que você já sabe como fazer o deploy de um modelo de ML, chegou a hora de tentar fazer o deploy de outros modelos! Abaixo, deixamos outras sugestões de projetos para você aprimorar suas habilidades e continuar praticando:
- Terminou o workshop Primeiros Passos que mencionamos no começo deste artigo? Que tal fazer o deploy dele?
- Além do desafio do Titanic, o Kaggle contém uma infinidade de outros conjuntos de dados que você pode utilizar para construir um modelo e fazer o deploy. Aqui você tem a lista de competições para começar em diversos temas e aqui você pode encontrar os conjuntos de dados mais populares que outras pessoas estão explorando.
Desafio extra (opcional): Fazendo o deploy na nuvem em 5 passos
Usando AWS (é necessário ter uma conta), é possível fazer o deploy na nuvem para deixar o modelo disponível para que você e outras pessoas possam acessá-lo, ao invés de deixar o modelo acessível apenas na sua máquina local. Isso pode ser feito com configurações mínimas para evitar quaisquer custos, mas se não quiser se arriscar, essa etapa é totalmente opcional! 😉
Caso queira tentar, siga os passos abaixo:
1. Fazer o push da imagem docker no repositório
Envio de uma imagem do Docker – Amazon ECR
2. Criar uma máquina EC2 grátis na AWS
Você pode seguir esse tutorial: Tutorial: Comece a usar instâncias de Linux do Amazon EC2. Ou, se achar mais simples, esse aqui: Criando instâncias no Amazon EC2 | Blog TreinaWeb
3. Conectar-se à instância criada (sugerimos conectar pela última forma do link: usando sua chave ssh)
Conectar-se usando EC2 Instance Connect – Amazon Elastic Compute Cloud
4. Após se conectar à máquina, fazer o download da sua imagem docker
Extrair uma imagem – Amazon ECR
5. Executar o comando docker run da mesma forma que fizemos no workshop e pronto!
Com a aplicação de pé, você pode tentar acessá-la usando o IP público da máquina que você criou (vamos supor que o IP seja: 1.2.3.4, para acessar no browser você colocaria: 1.2.3.4:8000/docs).
Porém, na maioria das vezes, as portas das máquinas na nuvem ficam fechadas para evitar ataques externos. Não se preocupe com isso! Você pode checar usando nosso endpoint de health_check dentro da própria máquina. Para isso, após se conectar à máquina, digite: curl -X ‘GET’ ‘http://localhost:8000/health’ -H ‘accept: application/json’. Se você obtiver como resposta o { “status”: “healthy”}, significa que seu deploy funcionou! 🎉
Referências para ir além
Abaixo, deixamos algumas referências que mencionamos durante o workshop e outras que achamos interessantes de mencionar para quem quiser saber mais : 😉
- Repositório no Github com o código que desenvolvemos durante o workshop
- Parte 1 e parte 2 do artigo que a Vivian e o André Oliveira, Machine Learning Engineer da Creditas, escreveram sobre deploy de modelos e cujo conteúdo e códigos disponibilizados em outro repositório do Github foram utilizados como base para este workshop.
- Como Usar Pipelines no Scikit-Learn – para quem quiser saber mais sobre a estrutura que utilizamos para fazer a nossa feature engineering
- Sobre Docker:
Como construir uma aplicação com Docker?
Comandos básicos · Docker para Desenvolvedores
Dockerfile – Principais comandos para criar a receita da imagem - Sobre APIs & FastAPI:
O que é API?
Comunicação em uma arquitetura de microsserviço | Microsoft Docs
Tudo sobre FastAPI
Esperamos que tenha gostado do workshop e aprendido bastante! ❤️
Autoras Jéssica dos Santos de Oliveira é head de dados na NeuralMed, onde atua utilizando deep learning para auxiliar no diagnóstico e melhorar os sistemas de saúde em geral. Já trabalhou como cientista de dados em empresas do mercado financeiro e tem mestrado em Sistema de Informação, com linha de pesquisa em Inteligência de Sistemas. Seu projeto foi usar modelos de atenção visual baseados em reconhecimento de padrões para identificar autismo. Também participa de projetos que incentivam mulheres na área, sendo embaixadora do Women in Data Science (WiDS) São Paulo desde 2019, e cofundadora do Mulheres em IA (MIA), comunidade criada em 2020 durante a pandemia para abraçar e incentivar as mulheres que trabalham com dados. Vivian Yamassaki é cientista de dados na Creditas e mestra com pesquisa em Inteligência Artificial e área de aplicação em Bioinformática pela Universidade de São Paulo (USP). Curte se envolver em projetos que visam incentivar mulheres na área de ciência de dados, como a Mulheres em Inteligência Artificial (MIA) – criada em 2020 e da qual é uma das co-organizadoras – e o Women in Data Science (WiDS), do qual foi co-embaixadora em São Paulo entre 2019 e 2021. Mulheres em IA (MIA)
A comunidade Mulheres em IA (MIA) nasceu da união das embaixadoras do WiDS-SP e WiDS-RJ com o objetivo fortalecer ainda mais as mulheres brasileiras na área de Inteligência Artificial e dados no geral. Acesse o linktree e confira nossas redes sociais: https://linktr.ee/mulheres.em.ia Revisora Stephanie Kim Abe é jornalista, formada pela Escola de Comunicações e Artes da Universidade de São Paulo (ECA-USP). Trabalha na área de Educação e no terceiro setor. Esteve nos primórdios da Programaria, mas testou as águas da programação e achou que não era a sua praia. Mas isso foi antes do curso Eu Programo…
Este conteúdo faz parte da PrograMaria Sprint Área de dados.
O que você achou deste conteúdo? Responda nosso feedback:
TOP