Da extração dos dados ao deploy em produção Machine Learning Efetivo com AWS · 2019-05-17 ·...

Preview:

Citation preview

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

• brunowdev@gmail.com

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

49

#TheDevConf 2019 Nosso Case

https://glo.bo/2GyetPb

50

#TheDevConf 2019

Perguntas?

51

#TheDevConf 2019

52

#TheDevConf 2019

Recommended