52
1 #TheDevConf 2019 Machine Learning Efetivo com AWS: Da extração dos dados ao deploy em produção BRUNO BITENCOURT Software Architect

Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

1

#TheDevConf 2019

Machine Learning Efetivo com AWS:Da extração dos dados ao deploy em produção

BRUNO BITENCOURTSoftware Architect

Page 2: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

2

#TheDevConf 2019

Agenda

• Machine Learning e AWS

• SageMaker

• Dicas

• Links úteis

Page 3: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

[email protected]

Page 4: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

4

#TheDevConf 2019

Machine Learning e AWS

Page 5: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

5

#TheDevConf 2019

Workflow

Page 6: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

6

#TheDevConf 2019

Quanta coisa, não é mesmo?

Page 7: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

7

#TheDevConf 2019

SageMaker

Page 8: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

8

#TheDevConf 2019

Treinamento

Factorization MachinesLinear RegressionPCAK-MeansXGBoost

E vários outros!

Algoritmos Built-in Traga a sua Impl. Traga seu container

Page 9: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

Page 10: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

10

#TheDevConf 2019

Mas antes disso...

Page 11: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

11

#TheDevConf 2019

Etapa 0: Dados

• SQL

• NoSQL

• Aquele dataset do Governo com 500GB

• Outros sistemas

• Data Lake?

Page 12: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

12

#TheDevConf 2019

Pipeline de Machine Learning Serverless

Page 13: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

13

#TheDevConf 2019

Page 14: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

14

#TheDevConf 2019

S3

• Buckets para armazenamento

• Big Data

• Velocidade na escrita/acesso

• Também armazenamos nossos modelos de ML

Page 15: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

Page 16: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

16

#TheDevConf 2019

SchedulingJob ETL

Page 17: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

17

#TheDevConf 2019

SQL

Page 18: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

18

#TheDevConf 2019

Particionamento no S3

Eventos: Sucesso, Falha, etc.

Data Cleaning

Page 19: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

19

#TheDevConf 2019

Page 20: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

20

#TheDevConf 2019

Etapa 1: Usando o Dataset

Page 21: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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)

Page 22: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

22

#TheDevConf 2019

GPU

Tensorflow e MxNet

Page 23: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

23

#TheDevConf 2019

Etapa 2: SageMaker

Page 24: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • 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

Page 25: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

25

#TheDevConf 2019

Devo fazer o meu container?

• Os modelos da AWS são mais otimizados

• Podem ser uma caixa “preta”

• Vendor lock-in

Page 26: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

26

#TheDevConf 2019

Levando o SciKit Learn para o SageMaker

Page 27: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

27

#TheDevConf 2019

Exemplo - Treinamento

Page 28: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

28

#TheDevConf 2019

Exemplo - Treinamento

Page 29: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

29

#TheDevConf 2019

Exemplo - Treinamento

Page 30: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

30

#TheDevConf 2019

Exemplo - Predictor

Page 31: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

31

#TheDevConf 2019

Exemplo - Predictor

Page 32: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

32

#TheDevConf 2019

Exemplo - Predictor

Page 33: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

33

#TheDevConf 2019

Treinando o modelo

• Manual

• Baseado em eventos

Page 34: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

34

#TheDevConf 2019

Treinando o modelo

Page 35: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

Page 36: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

36

#TheDevConf 2019

Page 37: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

37

#TheDevConf 2019

Rastreabilidade

Page 38: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

38

#TheDevConf 2019

Hyperparameter Tuning

• Semelhante a job de treinamento

• Qualquer modelo

• Warmup (incremental iterativo ou outra versão)

Page 39: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

39

#TheDevConf 2019

Hyperparameter Tuning

Page 40: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

Page 41: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

41

#TheDevConf 2019

Inferência

• Endpoint SageMaker - Requer uma instância rodando

• Batch Transform Jobs

Page 42: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

42

#TheDevConf 2019

Page 43: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

43

#TheDevConf 2019

Consumindo as Predições

Page 44: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

44

#TheDevConf 2019

Considerações

• Para gerenciar os componentes: Terraform, Cloudformation:

○ Todas se integram com facilidade com CI (Jenkins, Gitlab, etc.)

Page 45: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

Page 46: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

46

#TheDevConf 2019

Outros recursos

GroundTruth

• Automatizar o processo de labelling

Marketplace

• Publique e venda seus modelos

Page 47: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

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

Page 48: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

48

#TheDevConf 2019

Por onde começar?

AWS

• Getting Started

• Playlist - This is my Architecture

SageMaker

• Julien Simon

• Exemplos GitHub

Page 49: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

49

#TheDevConf 2019 Nosso Case

https://glo.bo/2GyetPb

Page 50: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

50

#TheDevConf 2019

Perguntas?

Page 51: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

51

#TheDevConf 2019

Page 52: Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 · Software Architect. 2 #TheDevConf 2019 Agenda • Machine Learning e AWS • SageMaker

52

#TheDevConf 2019