Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 ·...
Transcript of Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 ·...
1
#TheDevConf 2019
Machine Learning Efetivo com AWS:Da extração dos dados ao deploy em produção
BRUNO BITENCOURTSoftware Architect
2
#TheDevConf 2019
Agenda
• Machine Learning e AWS
• SageMaker
• Dicas
• Links úteis
3
#TheDevConf 2019
@brunowdev
• Arquiteto de Software - P&D da Betha Sistemas
• +5 anos experiencia
• Aluno de Engenharia da Computação na FASATC e Machine Learning Engineer
na Udacity
4
#TheDevConf 2019
Machine Learning e AWS
5
#TheDevConf 2019
Workflow
6
#TheDevConf 2019
Quanta coisa, não é mesmo?
7
#TheDevConf 2019
SageMaker
8
#TheDevConf 2019
Treinamento
Factorization MachinesLinear RegressionPCAK-MeansXGBoost
E vários outros!
Algoritmos Built-in Traga a sua Impl. Traga seu container
9
#TheDevConf 2019
Interagindo com o SageMaker
Python SDK
• Notebooks
• Algoritmos
• Treinamento
• Deploy
• Tuning
• AWS CLI: ‘aws sagemaker’
• AWS SDK: boto3, entre outros.
• Interface WEB
10
#TheDevConf 2019
Mas antes disso...
11
#TheDevConf 2019
Etapa 0: Dados
• SQL
• NoSQL
• Aquele dataset do Governo com 500GB
• Outros sistemas
• Data Lake?
12
#TheDevConf 2019
Pipeline de Machine Learning Serverless
13
#TheDevConf 2019
14
#TheDevConf 2019
S3
• Buckets para armazenamento
• Big Data
• Velocidade na escrita/acesso
• Também armazenamos nossos modelos de ML
15
#TheDevConf 2019
Glue• Catalogo de dados (S3, SQL, NoSQL)
• Serverless ETL
• Jobs de extração
○ Python (Spark ou Shell)
○ Scala
• Segurança e parametrização
• Storage no S3
16
#TheDevConf 2019
SchedulingJob ETL
17
#TheDevConf 2019
SQL
18
#TheDevConf 2019
Particionamento no S3
Eventos: Sucesso, Falha, etc.
Data Cleaning
19
#TheDevConf 2019
20
#TheDevConf 2019
Etapa 1: Usando o Dataset
21
#TheDevConf 2019
Infos
• Standard - Sem GPU
• Compute Optimized - Sem GPU
• GPU Instances - Com GPU - inicia $ 1.26 hora
• O disco varia de 5GB SSD ate 16TB
• Não é obrigatório
• Scripts de Setup e Integração com o Git (não é git friendly)
22
#TheDevConf 2019
GPU
Tensorflow e MxNet
23
#TheDevConf 2019
Etapa 2: SageMaker
24
#TheDevConf 2019
Infos
• Imagens Docker - Train mode e Invocations (HTTP)
• Serverless ou Endpoint
• Qualquer linguagem ou framework
• Lê os dados do S3
• Escreve os modelos no S3
25
#TheDevConf 2019
Devo fazer o meu container?
• Os modelos da AWS são mais otimizados
• Podem ser uma caixa “preta”
• Vendor lock-in
26
#TheDevConf 2019
Levando o SciKit Learn para o SageMaker
27
#TheDevConf 2019
Exemplo - Treinamento
28
#TheDevConf 2019
Exemplo - Treinamento
29
#TheDevConf 2019
Exemplo - Treinamento
30
#TheDevConf 2019
Exemplo - Predictor
31
#TheDevConf 2019
Exemplo - Predictor
32
#TheDevConf 2019
Exemplo - Predictor
33
#TheDevConf 2019
Treinando o modelo
• Manual
• Baseado em eventos
34
#TheDevConf 2019
Treinando o modelo
35
#TheDevConf 2019
AWS Lambda
● Funções Serverless
● Várias linguagens disponíveis
● Integração com eventos
● Baixo custo
● Comunicação direta com os demais
serviços
36
#TheDevConf 2019
37
#TheDevConf 2019
Rastreabilidade
38
#TheDevConf 2019
Hyperparameter Tuning
• Semelhante a job de treinamento
• Qualquer modelo
• Warmup (incremental iterativo ou outra versão)
39
#TheDevConf 2019
Hyperparameter Tuning
40
#TheDevConf 2019
Deploy
• Endpoint Configuration - Middleman
○ Roteia com base em headers (id de usuário, região, etc.)
• Sem Downtime
• Auto Scaling
• Canary Deployment
• Teste A/B
○ Monitoramento/Scoring é manual
41
#TheDevConf 2019
Inferência
• Endpoint SageMaker - Requer uma instância rodando
• Batch Transform Jobs
42
#TheDevConf 2019
43
#TheDevConf 2019
Consumindo as Predições
44
#TheDevConf 2019
Considerações
• Para gerenciar os componentes: Terraform, Cloudformation:
○ Todas se integram com facilidade com CI (Jenkins, Gitlab, etc.)
45
#TheDevConf 2019
Dicas
• Use só as peças que você precisa
• Desligue os seus notebooks (pode ser automatizado)
• Ajuste as instâncias de treino/predição de acordo com a sua necessidade
• Use as imagens/algoritmos disponíveis, sempre que possível
• Use RecordIO / TFRecord
46
#TheDevConf 2019
Outros recursos
GroundTruth
• Automatizar o processo de labelling
Marketplace
• Publique e venda seus modelos
47
#TheDevConf 2019
Outras informações
SageMaker
• Possue free-tier
• Ainda não está disponível na sa-east-1
○ Latência pode ser um problema
48
#TheDevConf 2019
Por onde começar?
AWS
• Getting Started
• Playlist - This is my Architecture
SageMaker
• Julien Simon
• Exemplos GitHub
50
#TheDevConf 2019
Perguntas?
51
#TheDevConf 2019
52
#TheDevConf 2019