Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Implantando modelos Deep Learning em cluster Kubernetes com GPU Ativada

23 views

Published on

Um dos principais desafios que os cientistas de dados e engenheiros de ML e DL enfrentam com frequência é que, depois de terem treinado o modelo, eles precisam implantá-lo em escala de produção, para realizar o treinamento de modelos é amplamente aceito e muitas vezes necessário o uso de GPU, porem para realizar inferência nem sempre precisa de uma GPU, porem a mesma poderia acelerar e muito o desempenho na inferência, vamos testar uma modelo de deep learning com Keras e com o Tensorflow como backend, e analisar o desempenho na inferência em GPU e CPU e como colocar em produção e expor um modelo como uma API Rest, para ser consumido por qualquer aplicação.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Implantando modelos Deep Learning em cluster Kubernetes com GPU Ativada

  1. 1. ©2018 Avanade Inc. All Rights Reserved. Thaissa Bueno Sanches - Consultant at Avanade Implantando modelos Deep Learning em cluster Kubernetes com GPU Ativada
  2. 2. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Noções básicas de implantação (carga útil, lotes, HTTP, Web Service) • Comparação de GPU / CPU para inferência • Kubernetes • Etapas comuns • Implantação no Kubernetes usando o Kubectl • Implantação no Kubernetes usando o AzureML • Implantação no Kubernetes usando Kubeflow e "TF serving" Agenda
  3. 3. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • O que é implantar? Noções básicas de implantação (payload, batching, HTTP, Web Service)
  4. 4. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Payload Noções básicas de implantação (payload, batching, HTTP, Web Service) penultimate layer RGB Channels of input image Convolution layer with Kernels Pooling layer Fully connected layer Cat Dog Mouse
  5. 5. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Encode em base64 • Transfere arquivo Noções básicas de implantação (payload, batching, HTTP, Web Service) decoded_img = base64.b64decode(request.json["input"]) img_buffer = BytesIO(decoded_img) pil_img = Image.open(img_buffer).convert("RGB") Image.open(request.files['image']).convert("RGB")
  6. 6. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Batching Noções básicas de implantação (payload, batching, HTTP, Web Service)
  7. 7. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • HTTP Noções básicas de implantação (payload, batching, HTTP, Web Service)
  8. 8. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Múltiplas conexões: Uma conexão é aberta e somente é aberta uma nova conexão quando a anterior for fechada Noções básicas de implantação (payload, batching, HTTP, Web Service)
  9. 9. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Conexões persistentes: • Uma conexão é aberta e tem seu estado persistido até o termino de sua utilização. Noções básicas de implantação (payload, batching, HTTP, Web Service)
  10. 10. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Pipelining: Em apenas uma única solicitação TCP varias conexões HTTP são enviadas ao mesmo tempo. Noções básicas de implantação (payload, batching, HTTP, Web Service)
  11. 11. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Head of line blocking: Em apenas uma única solicitação TCP varias conexões HTTP são enviadas ao mesmo tempo porem uma ou mais solicitações podem ser bloqueada para aguardar o termino da anterior por ter excedido o limite de requests paralelos. Noções básicas de implantação (payload, batching, HTTP, Web Service)
  12. 12. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Multiplexing: A multiplexação é um método no HTTP / 2 pelo qual várias solicitações HTTP podem ser enviadas e as respostas podem ser recebidas de forma assíncrona por meio de uma única conexão TCP. A multiplexação é o coração do protocolo HTTP / 2 Noções básicas de implantação (payload, batching, HTTP, Web Service)
  13. 13. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Web Service: • É uma solução para integração de sistemas e comunicação com aplicações diferentes, podendo utilizar o protocolo de comunicação SOAP (Simple Object Access Protocol, em português Protocolo Simples de Acesso a Objetos) ou a arquitetura REST(Representational State Transfer em português Transferência de Estado Representacional). Noções básicas de implantação (payload, batching, HTTP, Web Service) Container Instances
  14. 14. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • CPU VS GPU Comparação de GPU / CPU para inferência
  15. 15. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • CPU VS GPU Comparação de GPU / CPU para inferência
  16. 16. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Kubernetes é um sistema de orquestração de contêiners open-source que automatiza a implantação, o dimensionamento e a gestão de aplicações em contêiners. Kubernetes
  17. 17. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy Kubernetes Node Node Node Cluster
  18. 18. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Desenvolver modelo • Desenvolver API de modelo • Preparar contêiner docker para o serviço da web • Implantar no Kubernetes Etapas comuns
  19. 19. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Desenvolver modelo, modelo API, Flask App • Crie uma imagem de contêiner com modelo, modelo API e Flask App • Teste localmente e envie a imagem para o Docker Hub • Provisionar o Cluster Kubernetes • Conecte-se ao Kubernetes com kubectl • Implantar aplicativo usando o manifesto (.yaml) Implantação no Kubernetes usando o Kubectl
  20. 20. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy Implantação no Kubernetes usando o Kubectl https://github.com/Microsoft/AKSDeploymentTutorial.git
  21. 21. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Configuração do AzureML, modelo de desenvolvimento, registro do modelo no espaço de trabalho do AzureML, desenvolvimento da API do modelo (script de pontuação) • Crie imagens com o AzureML usando dependências do conda, requisitos de pip e outras dependências • Capturar imagem do Azure Container Registry (ACR) e testar localmente • Provisione o cluster do Kubernetes e implemente o serviço da Web com o AzureML. Implantação no Kubernetes usando o AzureML
  22. 22. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy Implantação no Kubernetes usando o AzureML https://github.com/Microsoft/AKSDeploymentTutorialAML.git
  23. 23. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy • Desenvolva modelo e salve como TensorFlow servable • Puxe a imagem TensorFlow Serving do Docker hub, monte o caminho do modelo, abra a porta da API REST, teste localmente • Crie um Kubernetes cluster, anexe o armazenamento blob no AKS, copie o modelo servable • Instale o Ksonnet, Kubeflow e implante o webservice usando o componente Kubeflow TensorFlow serving usando "ksonnet template". Implantação no Kubernetes usando o AzureML
  24. 24. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy Implantação no Kubernetes usando o AzureML https://github.com/Microsoft/DeployDLKubeflowAKS.git
  25. 25. ©2018 Avanade Inc. All Rights Reserved. <Highly Confidential> See Avanade’s Data Management Policy ©2018 Avanade Inc. All Rights Reserved. Participe de um treinamento GRATUITO de Azure Machine Learning Service bit.ly/azuremltdc
  26. 26. Contatos Site/Blog/Email: http://www.thaissasanches.com.br http://meetup.com/pt-BR/DevelopersBR/ https://meetup.com/pt-BR/ai-brasil/ Redes Sociais: Linkedin: /in/thaissa-bueno-sanches Github: thayssa1186 Twitter: thayssa1186 Vagas Avanade: https://careers.avanade.com/jobsenusurl/SearchJobs/?3_56_3=19753 ©2018 Avanade Inc. All Rights Reserved.
  27. 27. • Formada em tecnologia em rede de computadores pela UNIVEM/Marilia. • Especialista em desenvolvimento .NET e Java. Pós Graduanda Machine Learning e Deep Learning na IGTI. • Consultora de TI e Arquiteta • Faço parte da coordenação do evento TDC – Trilha de IA • Organizadora do AIFest 2018 • Uma das coordenadoras do Developers BR e IA Brasil além de varias comunidades de tecnologia que participo. Quem sou eu? ©2018 Avanade Inc. All Rights Reserved.
  28. 28. Thaissa Bueno Sanches Consultant at Avanade Obrigada

×