SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Machine Learning
Do notebook ao modelo em Produção
Quem eu sou?
● CDO na CQuantt - Responsável por conduzir
projetos de Ciência de Dados e Machine
Learning
● Pesquisador na área de Deep Learning - UFG
● Community Manager do Data Hackers
● Cientista de Dados e Dev nas horas vagas...
#estatistica #machineLearning #spark
#python #deepLearning #tensorFlow
#bigData #analytics
/marlesson-santana-25019358/
/marlesson
Marlesson Santana - marlesson@cquantt.com
...
● quem já treinou algum modelo antes?
● quem já fez o deploy de um modelo por diversão?
● quem já fez o deploy de um modelo para o trabalho?
● quem acompanha o modelo em produção e gera indicadores de performance?
Roteiro
● Introdução a Machine Learning
● Pipeline de um projeto de ML
● End-to-end ML com MLflow
● Ferramentas
Machine Learning - Introdução
MachineLearning
Classificação
Regressão
Clusterização
Detecção de Fraudes
Reconhecimento Facial
Previsão de Demanda
Estimativa Receita/Demanda
Segmentação de Cliente
Modelagem de Tópico
Machine learning é sobre extração de padrões nos dados para que esses padrões
possam ser utilizados na resolução de problemas.
Modelo f(X) = y
Predição
Machine Learning - Introdução
Dados ???
Machine
Learning
??? $$$
Modelo
f(X) = y
Predição
A percepção é que o pipeline de ML é algo como...
Machine Learning - Pipeline de ML
Dados
Preparação
dos Dados
Treinamento
do Modelo
Deploy Serviço
● Histórico
● Tipos de Dados
● Fontes Externas
● Batch/Real Time
● DataViz
● Transformação e
Extração de Features
● Pipeline de dados
● Diferentes Modelos
● Tuning
● Avaliação
● Versionamento
● Pipelines
● Infraestrutura
● Escalabilidade
● Monitoramento
● Avaliação online
● Predição de novos dados
Engenheiro de Dados Cientista de Dados e Engenheiros de ML Engenheiro de Software
Feedback Loop
… mas é um processo que envolve diferentes profissionais, ferramentas e tecnologias...
Machine Learning - Pipeline de ML
Preparação
dos Dados
Treinamento
do Modelo
● DataViz
● Transformação e
Extração de Features
● Pipeline de dados
● Escolha do melhor
modelo
● Tuning
● Avaliação
● Versionamento
O processo de modelagem pode ser realizado
por diferentes ferramentas/linguagens e
geralmente cria MUITOS artefatos (datasets,
gráficos, parâmetros, modelos…)
Treinamento
Tuning
Model
Extração de
Features
Features
Avaliação
Evaluation
v1.ipynb
model_v2.ipynb
esse_é_melhor.ipynb
Machine Learning - Pipeline de ML
Preparação
dos Dados
Treinamento
do Modelo
● DataViz
● Transformação e
Extração de Features
● Pipeline de dados
● Escolha do melhor
modelo
● Tuning
● Avaliação
● Versionamento
O processo de modelagem pode ser realizado
por diferentes ferramentas/linguagens e
geralmente cria MUITOS artefatos (datasets,
gráficos, parâmetros, modelos…)
Treinamento
Tuning
Model
Extração de
Features
Features
Avaliação
Evaluation
Dúvidas frequentes:
● Como documentar?
● Reprodutibilidade?
● Dependências de bibliotecas?
● Como armazenar os modelos para o deploy?
Machine Learning - Pipeline de ML
Maria
Cientista de Dados
Jorge
Engenheiro de Software
Deploy Serviço
● Pipelines
● Infraestrutura
● Escalabilidade
● Monitoramento
● Avaliação online
● Predição de novos dados
Modelo
f(X) = y
Dúvidas frequentes:
● Como fazer deploy?
● Como realizar novas predições
em produção?
● Quando re-treinar o modelo?
● O que devo monitorar?
Machine Learning - Pipeline de ML
SCULLEY, David et al. Hidden technical debt in machine learning systems. In: Advances in neural information
processing systems. 2015. p. 2503-2511.
O código de ML é apenas uma pequena parte do todo….
Machine Learning - mas, ok...
Machine Learning - End-to-End com MLflow
https://mlflow.org
O MLflow é uma plataforma open source para gerenciar o ciclo de vida de machine
learning de ponta a ponta. Ele aborda três funções principais:
Machine Learning - Problema
f(x)
Model
price: R$ 221.900,00
Atributos
https://www.kaggle.com/harlfoxem/housesalesprediction
“Devemos criar um modelo para estimar o preço do imóvel a
partir de dados históricos. Esse modelo será utilizado em um
portal de classificados de imóveis”
Machine Learning - End-to-End com MLflow
O componente MLflow Tracking é uma API e uma interface para salvar
os parâmetros, versões de código, métricas, logs e artefatos que são
gerados no experimento, ele cria um repositório de experimentos.
Machine Learning - End-to-End com MLflow
Machine Learning - End-to-End com MLflow
Um Projeto MLflow é um formato de empacotamento de projetos para
ser reutilizável e reproduzível. Além disso, o componente Projetos
inclui uma API e ferramentas de linha de comando para executar
projetos, possibilitando a integração de pipelines.
Executa Local
Executa Remoto
Code Config Data
● Pode ser executado na cloud do DB
● “Pacote” com reprodutibilidade
● Define dependências do projeto
● API para execução do projeto
(similar em diferentes linguagens)
Machine Learning - End-to-End com MLflow
https://github.com/marlesson/mlflow_house_sales_prediction
O arquivo MLproject define a interface de execução, configurações e dependências
do projeto.
$ mlflow run <uri> -P param1=val1 ..
Exemplo:
$ mlflow run . -P max_depth=3 -P n_estimators=10
$ mlflow run . -e train_deep -P epochs=20 -P layers='[100, 50, 30, 10]'
$ mlflow run https://github.com/marlesson/mlflow_house_sales_prediction
Executa um projeto usando as definições
do MLproject
Machine Learning - End-to-End com MLflow
Um Projeto de MLFlow pode ser utilizado para orquestrar um pipeline de
transformação ou treinamento usando diferentes tecnologias, permitindo uma interface
entre as etapas.
https://github.com/mlflow/mlflow/tree/master/examples/multistep_workflow
Pipeline do Projeto:
● Load: Faz o download de um
dataset
● ETL: Transformações nos dados
● ML: Treinamento usando a Mlib
● Model Training: Treinamento
usando o keras
Machine Learning - End-to-End com MLflow
Machine Learning - End-to-End com MLflow
O MLflow Model empacota o modelo com as dependências e
parâmetros de execução. O formato define uma convenção que
permite salvar o modelo de forma que possa ser utilizado em diferentes
contextos.
● Define dependências do modelo
● Empacota diferentes “flavors” do
mesmo modelo, que podem ser
usados em diferentes contextos ou
diferentes linguagens (java, R,
python, docker)
● Deploy simplificado
Machine Learning - End-to-End com MLflow
$ mlflow pyfunc serve -m <path_model>
$ mlflow pyfunc predict -m <path_model> -i <path_input>
Abre um servidor web que serve o modelo
através de uma API REST
Realiza predição em batch usando um csv de
input
A partir da configuração do MLmodel, o Mlflow consegue servir o modelo em
diferentes formatos.
Machine Learning - End-to-End com MLflow
$ curl -H "Content-Type: application/json" --data
data/sample.json http://localhost:8080/invocations
O deploy do modelo usando o Mlflow pode ser realizado de diferentes formas:
● Rest API endpoint
● Microsoft Azure ML
● Amazon SageMaker
● Spark UDF
● …. Docker
Machine Learning - End-to-End com MLflow
Machine Learning - Arquitetura
Preparação
dos Dados
Treinamento
do Modelo
Deploy
Serviço
API
Arquitetura simplificada de uma solução para predição do preço de imóveis em sites de
busca On-line (real-time).
Real-time:
● Síncrono
● Alta performance
● Escalável
Machine Learning - Deploy on Cloud - GCP
Vamos criar um Container Docker para encapsular o modelo e as dependências
criada pelo MLFlow Model. O modelo será servido através da API Rest do próprio
MlFlow.
Machine Learning - Deploy on Cloud - GCP
GCP Console
$ gcloud builds submit --tag gcr.io/confraria-dos-dados/ml_model .
$ gcloud compute instances create-with-container ml-model 
--container-image gcr.io/confraria-dos-dados/ml_model:latest 
--tags http-server,https-server 
--machine-type f1-micro 
--zone us-east1-b
Docker
$ docker build -t ml_model .
$ docker run -it -p 3001:80 ml_model
Dockerfile para criar o container com o modelo para produção
Machine Learning - Arquitetura
load_data.py predict.py save_result.py
Serviço
Arquitetura simplificada de uma solução para predição do preço de imóveis em sites de
busca em lote (batch).
Batch:
● Assíncrono
● Uso através de
Trigger ou baseado
em evento de tempo
Machine Learning - Deploy Spark
O deploy do modelo no spark é através de uma UDF (User-Defined-Functions) e
pode ser utilizando tanto no stream ou batch. O modelo empacotado pelo MLFlow
Modes pode ser lido como UDF
Abre um servidor web que serve o modelo
através de uma API REST
Machine Learning - End-to-End com MLflow
https://mlflow.org
Machine Learning - Pipeline de ML
Dados
Preparação
dos Dados
Treinamento
do Modelo
Deploy Serviço
Engenheiro de Dados Cientista de Dados e Engenheiros de ML Engenheiro de Software
Feedback Loop
O MLflow organiza o pipeline de ML com reprodutibilidade, documentação de experimentos
e “independência” de tecnologia para modelagem com deploy simplificado...
API
Machine Learning - Modelo em Produção...
Modelo em produção… e agora?
● Escalabilidade
● Monitoramento constante
● Métricas de avaliação online
● Quando devo re-treinar? nova versão?
● Processo de ML Ops
Dúvidas

Mais conteúdo relacionado

Mais procurados

Nlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniquesNlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniquesankit_ppt
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingCloudxLab
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaLeinylson Fontinele
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoessamuelthiago
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...Edureka!
 
Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing Mustafa Jarrar
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine LearningSandro Moreira
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 

Mais procurados (20)

Nlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniquesNlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniques
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
 
Fundamentos de Segurança da Informação
Fundamentos de Segurança da InformaçãoFundamentos de Segurança da Informação
Fundamentos de Segurança da Informação
 
Information Extraction
Information ExtractionInformation Extraction
Information Extraction
 
Python - object oriented
Python - object orientedPython - object oriented
Python - object oriented
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoes
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...Django Tutorial | Django Web Development With Python | Django Training and Ce...
Django Tutorial | Django Web Development With Python | Django Training and Ce...
 
Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 

Semelhante a Machine Learning: Do Notebook ao modelo em produção

[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...minastestingconference
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
HUGSP#6 Opus uDSL - Uma DSL para Microserviços
HUGSP#6 Opus uDSL - Uma DSL para MicroserviçosHUGSP#6 Opus uDSL - Uma DSL para Microserviços
HUGSP#6 Opus uDSL - Uma DSL para MicroserviçosPhilippe Sevestre
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Automated Machine Learning
Automated Machine LearningAutomated Machine Learning
Automated Machine LearningOrlando Mariano
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
AnaliseDeDados_SQLSat906
AnaliseDeDados_SQLSat906AnaliseDeDados_SQLSat906
AnaliseDeDados_SQLSat906Orlando Mariano
 
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Opencadd Advanced Technology
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoGuilhermeJorgeAragod
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 

Semelhante a Machine Learning: Do Notebook ao modelo em produção (20)

Cloudformation
CloudformationCloudformation
Cloudformation
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
HUGSP#6 Opus uDSL - Uma DSL para Microserviços
HUGSP#6 Opus uDSL - Uma DSL para MicroserviçosHUGSP#6 Opus uDSL - Uma DSL para Microserviços
HUGSP#6 Opus uDSL - Uma DSL para Microserviços
 
Introdução Play framework
Introdução Play frameworkIntrodução Play framework
Introdução Play framework
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Automated Machine Learning
Automated Machine LearningAutomated Machine Learning
Automated Machine Learning
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
AnaliseDeDados_SQLSat906
AnaliseDeDados_SQLSat906AnaliseDeDados_SQLSat906
AnaliseDeDados_SQLSat906
 
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
 
Cake Php
Cake PhpCake Php
Cake Php
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Django
DjangoDjango
Django
 

Mais de Marlesson Santana

UFG - Topic Modeling in Text
UFG - Topic Modeling in TextUFG - Topic Modeling in Text
UFG - Topic Modeling in TextMarlesson Santana
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesMarlesson Santana
 
Data science com python - frameworks e melhores práticas
Data science com python - frameworks e melhores práticasData science com python - frameworks e melhores práticas
Data science com python - frameworks e melhores práticasMarlesson Santana
 
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?Marlesson Santana
 
Campus Party - Sistemas de Recomendação
Campus Party - Sistemas de RecomendaçãoCampus Party - Sistemas de Recomendação
Campus Party - Sistemas de RecomendaçãoMarlesson Santana
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesMarlesson Santana
 
Deep Learning para Sistemas de Recomendação
Deep Learning para Sistemas de RecomendaçãoDeep Learning para Sistemas de Recomendação
Deep Learning para Sistemas de RecomendaçãoMarlesson Santana
 
Training deep auto encoders for collaborative filtering
Training deep auto encoders for collaborative filteringTraining deep auto encoders for collaborative filtering
Training deep auto encoders for collaborative filteringMarlesson Santana
 
DDC - workshop deep learning
DDC -  workshop deep learningDDC -  workshop deep learning
DDC - workshop deep learningMarlesson Santana
 
Introdução a Redes Neurais Recorrentes
Introdução a Redes Neurais RecorrentesIntrodução a Redes Neurais Recorrentes
Introdução a Redes Neurais RecorrentesMarlesson Santana
 
Mineração de Dados em Redes Sociais
Mineração de Dados em Redes SociaisMineração de Dados em Redes Sociais
Mineração de Dados em Redes SociaisMarlesson Santana
 

Mais de Marlesson Santana (11)

UFG - Topic Modeling in Text
UFG - Topic Modeling in TextUFG - Topic Modeling in Text
UFG - Topic Modeling in Text
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisões
 
Data science com python - frameworks e melhores práticas
Data science com python - frameworks e melhores práticasData science com python - frameworks e melhores práticas
Data science com python - frameworks e melhores práticas
 
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
 
Campus Party - Sistemas de Recomendação
Campus Party - Sistemas de RecomendaçãoCampus Party - Sistemas de Recomendação
Campus Party - Sistemas de Recomendação
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisões
 
Deep Learning para Sistemas de Recomendação
Deep Learning para Sistemas de RecomendaçãoDeep Learning para Sistemas de Recomendação
Deep Learning para Sistemas de Recomendação
 
Training deep auto encoders for collaborative filtering
Training deep auto encoders for collaborative filteringTraining deep auto encoders for collaborative filtering
Training deep auto encoders for collaborative filtering
 
DDC - workshop deep learning
DDC -  workshop deep learningDDC -  workshop deep learning
DDC - workshop deep learning
 
Introdução a Redes Neurais Recorrentes
Introdução a Redes Neurais RecorrentesIntrodução a Redes Neurais Recorrentes
Introdução a Redes Neurais Recorrentes
 
Mineração de Dados em Redes Sociais
Mineração de Dados em Redes SociaisMineração de Dados em Redes Sociais
Mineração de Dados em Redes Sociais
 

Machine Learning: Do Notebook ao modelo em produção

  • 1. Machine Learning Do notebook ao modelo em Produção
  • 2. Quem eu sou? ● CDO na CQuantt - Responsável por conduzir projetos de Ciência de Dados e Machine Learning ● Pesquisador na área de Deep Learning - UFG ● Community Manager do Data Hackers ● Cientista de Dados e Dev nas horas vagas... #estatistica #machineLearning #spark #python #deepLearning #tensorFlow #bigData #analytics /marlesson-santana-25019358/ /marlesson Marlesson Santana - marlesson@cquantt.com
  • 3. ... ● quem já treinou algum modelo antes? ● quem já fez o deploy de um modelo por diversão? ● quem já fez o deploy de um modelo para o trabalho? ● quem acompanha o modelo em produção e gera indicadores de performance?
  • 4. Roteiro ● Introdução a Machine Learning ● Pipeline de um projeto de ML ● End-to-end ML com MLflow ● Ferramentas
  • 5. Machine Learning - Introdução MachineLearning Classificação Regressão Clusterização Detecção de Fraudes Reconhecimento Facial Previsão de Demanda Estimativa Receita/Demanda Segmentação de Cliente Modelagem de Tópico Machine learning é sobre extração de padrões nos dados para que esses padrões possam ser utilizados na resolução de problemas. Modelo f(X) = y Predição
  • 6. Machine Learning - Introdução Dados ??? Machine Learning ??? $$$ Modelo f(X) = y Predição A percepção é que o pipeline de ML é algo como...
  • 7. Machine Learning - Pipeline de ML Dados Preparação dos Dados Treinamento do Modelo Deploy Serviço ● Histórico ● Tipos de Dados ● Fontes Externas ● Batch/Real Time ● DataViz ● Transformação e Extração de Features ● Pipeline de dados ● Diferentes Modelos ● Tuning ● Avaliação ● Versionamento ● Pipelines ● Infraestrutura ● Escalabilidade ● Monitoramento ● Avaliação online ● Predição de novos dados Engenheiro de Dados Cientista de Dados e Engenheiros de ML Engenheiro de Software Feedback Loop … mas é um processo que envolve diferentes profissionais, ferramentas e tecnologias...
  • 8. Machine Learning - Pipeline de ML Preparação dos Dados Treinamento do Modelo ● DataViz ● Transformação e Extração de Features ● Pipeline de dados ● Escolha do melhor modelo ● Tuning ● Avaliação ● Versionamento O processo de modelagem pode ser realizado por diferentes ferramentas/linguagens e geralmente cria MUITOS artefatos (datasets, gráficos, parâmetros, modelos…) Treinamento Tuning Model Extração de Features Features Avaliação Evaluation v1.ipynb model_v2.ipynb esse_é_melhor.ipynb
  • 9. Machine Learning - Pipeline de ML Preparação dos Dados Treinamento do Modelo ● DataViz ● Transformação e Extração de Features ● Pipeline de dados ● Escolha do melhor modelo ● Tuning ● Avaliação ● Versionamento O processo de modelagem pode ser realizado por diferentes ferramentas/linguagens e geralmente cria MUITOS artefatos (datasets, gráficos, parâmetros, modelos…) Treinamento Tuning Model Extração de Features Features Avaliação Evaluation Dúvidas frequentes: ● Como documentar? ● Reprodutibilidade? ● Dependências de bibliotecas? ● Como armazenar os modelos para o deploy?
  • 10. Machine Learning - Pipeline de ML Maria Cientista de Dados Jorge Engenheiro de Software Deploy Serviço ● Pipelines ● Infraestrutura ● Escalabilidade ● Monitoramento ● Avaliação online ● Predição de novos dados Modelo f(X) = y Dúvidas frequentes: ● Como fazer deploy? ● Como realizar novas predições em produção? ● Quando re-treinar o modelo? ● O que devo monitorar?
  • 11. Machine Learning - Pipeline de ML SCULLEY, David et al. Hidden technical debt in machine learning systems. In: Advances in neural information processing systems. 2015. p. 2503-2511. O código de ML é apenas uma pequena parte do todo….
  • 12. Machine Learning - mas, ok...
  • 13. Machine Learning - End-to-End com MLflow https://mlflow.org O MLflow é uma plataforma open source para gerenciar o ciclo de vida de machine learning de ponta a ponta. Ele aborda três funções principais:
  • 14. Machine Learning - Problema f(x) Model price: R$ 221.900,00 Atributos https://www.kaggle.com/harlfoxem/housesalesprediction “Devemos criar um modelo para estimar o preço do imóvel a partir de dados históricos. Esse modelo será utilizado em um portal de classificados de imóveis”
  • 15. Machine Learning - End-to-End com MLflow
  • 16. O componente MLflow Tracking é uma API e uma interface para salvar os parâmetros, versões de código, métricas, logs e artefatos que são gerados no experimento, ele cria um repositório de experimentos. Machine Learning - End-to-End com MLflow
  • 17. Machine Learning - End-to-End com MLflow
  • 18. Um Projeto MLflow é um formato de empacotamento de projetos para ser reutilizável e reproduzível. Além disso, o componente Projetos inclui uma API e ferramentas de linha de comando para executar projetos, possibilitando a integração de pipelines. Executa Local Executa Remoto Code Config Data ● Pode ser executado na cloud do DB ● “Pacote” com reprodutibilidade ● Define dependências do projeto ● API para execução do projeto (similar em diferentes linguagens) Machine Learning - End-to-End com MLflow https://github.com/marlesson/mlflow_house_sales_prediction
  • 19. O arquivo MLproject define a interface de execução, configurações e dependências do projeto. $ mlflow run <uri> -P param1=val1 .. Exemplo: $ mlflow run . -P max_depth=3 -P n_estimators=10 $ mlflow run . -e train_deep -P epochs=20 -P layers='[100, 50, 30, 10]' $ mlflow run https://github.com/marlesson/mlflow_house_sales_prediction Executa um projeto usando as definições do MLproject Machine Learning - End-to-End com MLflow
  • 20. Um Projeto de MLFlow pode ser utilizado para orquestrar um pipeline de transformação ou treinamento usando diferentes tecnologias, permitindo uma interface entre as etapas. https://github.com/mlflow/mlflow/tree/master/examples/multistep_workflow Pipeline do Projeto: ● Load: Faz o download de um dataset ● ETL: Transformações nos dados ● ML: Treinamento usando a Mlib ● Model Training: Treinamento usando o keras Machine Learning - End-to-End com MLflow
  • 21. Machine Learning - End-to-End com MLflow
  • 22. O MLflow Model empacota o modelo com as dependências e parâmetros de execução. O formato define uma convenção que permite salvar o modelo de forma que possa ser utilizado em diferentes contextos. ● Define dependências do modelo ● Empacota diferentes “flavors” do mesmo modelo, que podem ser usados em diferentes contextos ou diferentes linguagens (java, R, python, docker) ● Deploy simplificado Machine Learning - End-to-End com MLflow
  • 23. $ mlflow pyfunc serve -m <path_model> $ mlflow pyfunc predict -m <path_model> -i <path_input> Abre um servidor web que serve o modelo através de uma API REST Realiza predição em batch usando um csv de input A partir da configuração do MLmodel, o Mlflow consegue servir o modelo em diferentes formatos. Machine Learning - End-to-End com MLflow $ curl -H "Content-Type: application/json" --data data/sample.json http://localhost:8080/invocations
  • 24. O deploy do modelo usando o Mlflow pode ser realizado de diferentes formas: ● Rest API endpoint ● Microsoft Azure ML ● Amazon SageMaker ● Spark UDF ● …. Docker Machine Learning - End-to-End com MLflow
  • 25. Machine Learning - Arquitetura Preparação dos Dados Treinamento do Modelo Deploy Serviço API Arquitetura simplificada de uma solução para predição do preço de imóveis em sites de busca On-line (real-time). Real-time: ● Síncrono ● Alta performance ● Escalável
  • 26. Machine Learning - Deploy on Cloud - GCP Vamos criar um Container Docker para encapsular o modelo e as dependências criada pelo MLFlow Model. O modelo será servido através da API Rest do próprio MlFlow.
  • 27. Machine Learning - Deploy on Cloud - GCP GCP Console $ gcloud builds submit --tag gcr.io/confraria-dos-dados/ml_model . $ gcloud compute instances create-with-container ml-model --container-image gcr.io/confraria-dos-dados/ml_model:latest --tags http-server,https-server --machine-type f1-micro --zone us-east1-b Docker $ docker build -t ml_model . $ docker run -it -p 3001:80 ml_model Dockerfile para criar o container com o modelo para produção
  • 28. Machine Learning - Arquitetura load_data.py predict.py save_result.py Serviço Arquitetura simplificada de uma solução para predição do preço de imóveis em sites de busca em lote (batch). Batch: ● Assíncrono ● Uso através de Trigger ou baseado em evento de tempo
  • 29. Machine Learning - Deploy Spark O deploy do modelo no spark é através de uma UDF (User-Defined-Functions) e pode ser utilizando tanto no stream ou batch. O modelo empacotado pelo MLFlow Modes pode ser lido como UDF Abre um servidor web que serve o modelo através de uma API REST
  • 30. Machine Learning - End-to-End com MLflow https://mlflow.org
  • 31. Machine Learning - Pipeline de ML Dados Preparação dos Dados Treinamento do Modelo Deploy Serviço Engenheiro de Dados Cientista de Dados e Engenheiros de ML Engenheiro de Software Feedback Loop O MLflow organiza o pipeline de ML com reprodutibilidade, documentação de experimentos e “independência” de tecnologia para modelagem com deploy simplificado... API
  • 32. Machine Learning - Modelo em Produção... Modelo em produção… e agora? ● Escalabilidade ● Monitoramento constante ● Métricas de avaliação online ● Quando devo re-treinar? nova versão? ● Processo de ML Ops