Entenda o que é deploy, por que ele é importante e como fazê-lo!
A análise dos dados é parte integrante dos processos de Data Science, e serve, dentre muitas coisas, para obter insights valiosos.
A análise dos dados é parte integrante dos processos de Data Science, e serve, dentre muitas coisas, para obter insights valiosos. Isso geralmente é feito de duas formas: com uma análise exploratória, feita a partir de conceitos estatísticos, ou por meio da modelagem com Machine Learning.
Nesse último caso, o cientista de dados precisa transpor os modelos para produção, o que é feito a partir de um processo chamado Deploy.
Qualquer profissional que deseje atuar com ML, assim como com modelagem de dados, precisa dominar o que é deploy e saber como otimizá-lo. E é exatamente sobre isso que trataremos neste artigo.
Explicamos a seguir no que consiste esse processo, sua importância e como realizá-lo.
Glossário
O que é deploy?
O processo de deploy em Ciência de Dados se refere à aplicação de um modelo de Machine Learning para previsão usando um novo dado.
Ele também pode ser descrito como uma etapa de preparação de um modelo que será usado no dia a dia. Ou seja, tem a ver com adaptar uma aplicação para uso de um algoritmo por parte dos usuários.
Dependendo dos requisitos, a fase de deployment (implantação) pode ser tão simples quanto gerar um relatório ou tão complexa quanto implementar um processo repetível. Em muitos casos, será o cliente, e não o engenheiro de dados, quem realizará essas etapas de implantação.
Por exemplo, uma empresa de cartão de crédito pode querer implantar um modelo treinado ou um conjunto de modelos (redes neurais, meta-aprendiz etc.) para identificar rapidamente transações que têm alta probabilidade de serem fraudulentas.
No entanto, mesmo que o analista não realize o esforço de deployment, é importante que o cliente entenda antecipadamente quais ações precisarão ser realizadas para realmente fazer uso dos modelos criados.
Os modelos de aprendizado de máquina (ML) quase sempre são desenvolvidos em uma configuração offline, mas devem ser implantados em um ambiente de produção para aprender com dados ao vivo e agregar valor.



Quais os tipos de deploy?
Agora que entendemos o que é deploy, chegou a hora de conhecer seus diferentes tipos:
Deploy blue-green

O deploy do tipo blue-green envolve dois ambientes de produção em vez de apenas modelos. O ambiente blue (azul) consiste no modelo ativo, enquanto o green (verde) consiste na nova versão desse modelo.
Nesse processo, os dois ambientes idênticos consistem no mesmo banco de dados. Considerando que configurar um ambiente pode ser caro, normalmente alguns componentes são compartilhados entre os dois.
Deploy Canary

O deploy do tipo Canary visa implantar uma nova versão de um modelo aumentando gradativamente o número de usuários. Nele, o novo modelo é testado juntamente com o modelo ativo atual. Enquanto isso, alguns usuários verificaram sua confiabilidade, erros, desempenho etc.
Ao contrário do blue-green, ele usa os usuários reais para testar o novo modelo. O número de usuários pode ser aumentado ou diminuído com base nos requisitos de teste. Como resultado, bugs e problemas podem ser detectados antes que o modelo seja implantado globalmente para todos eles.
Caso o modelo seja bem-sucedido na fase de teste, ele poderá ser implementado e, se não for, poderá ser revertido sem tempo de inatividade, mas apenas alguns usuários serão expostos à nova versão.
Deploy Shadow Mode

No deploy Shadow ou Modo Shadow, um novo modelo é implantado com novos recursos ao lado de um modelo antigo ao vivo. A nova versão a ser implantada nesse caso é chamada de “modelo de sombra” . Esse modelo trata todas as solicitações da mesma forma que o modelo ao vivo, exceto que não é liberado ao público.
Esse tipo de deploy permite avaliar melhor o modelo de sombra testando-o em dados do mundo real sem interromper os serviços oferecidos pelo modelo ao vivo.
Deploy de Teste A/B

O deploy de teste A/B é um método baseado em dados. Ele é usado para avaliar dois modelos, A e B, e serve para avaliar qual deles tem melhor desempenho em um ambiente controlado.
Esse tipo é usado principalmente em sites de comércio eletrônico e plataformas de mídia social. Com o teste A/B, os cientistas de dados podem avaliar e escolher o melhor design para o site com base nos dados recebidos dos usuários.
Os dois modelos diferem um pouco em termos de recursos e atendem a diferentes conjuntos de usuários. Com base na interação e nos dados recebidos dos usuários, como feedback, os profissionais de dados escolhem um dos modelos que podem ser implantados globalmente na produção.
Vantagens e desvantagens
As principais vantagens do processo de deploy incluem:
- Maior rapidez no desenvolvimento e implantação de modelos;
- Resposta mais rápida às mudanças do mercado para melhorar o crescimento dos negócios;
- Melhora a experiência e satisfação do usuário
Já as algumas das desvantagens são:
- Alto custo para configuração de ambiente de teste;
- A falta de conhecimento de Data Science e ML pode levar a problemas na integração contínua de projetos de automação.
Qual deploy usar em cada situação?
- Deploy Blue-green: deve ser usado caso o algoritmo ou aplicação não possa arcar com muito tempo de inatividade;
- Deploy Canary: geralmente adotado quando um modelo precisa ser avaliado em relação a dados em tempo real do mundo real;
- Deploy Shadow: quando for preciso comparar vários modelos entre si, pois permite avaliar o pipeline enquanto produz resultados;
- Deploy Teste A/B: muito usado por e-commerces, plataformas de mídia social e de streaming online quanto há dois modelos e é preciso avaliá-los para escolher qual implantar globalmente.
Como fazer deploy passo a passo?
O processo geral de deploy de um modelo de ML pode ser resumido em quatro etapas principais. São elas:



Etapa 1. Desenvolver e criar um modelo em um ambiente de treinamento
Para implantar qualquer aplicativo de aprendizado de máquina, primeiro você precisa criar seu modelo. As equipes de ML tendem a criar vários modelos de ML para um único projeto, com apenas alguns deles chegando à fase de implantação.
Esses modelos geralmente são construídos em um ambiente de treinamento offline, seja por meio de um aprendizado supervisionado ou não supervisionado, onde são alimentados com dados de treinamento como parte do processo de desenvolvimento.
Etapa 2. otimize e teste o código, depois limpe-o e teste novamente
Quando um modelo é construído, o próximo passo é verificar se o código tem qualidade suficiente para ser implantado. Se não for, é importante limpá-lo e otimizá-lo antes de testar novamente. Isso deve ser repetido sempre que necessário.
Fazer isso não apenas garante que o modelo de ML funcione em um ambiente ativo, mas também dá a outras pessoas na organização a oportunidade de entender como o modelo foi construído. Uma vez que as equipes de ML não trabalham isoladas, outros precisarão examinar, e simplificar o código como parte do processo de modelagem.
Portanto, explicar com precisão o processo de produção do modelo e quaisquer resultados é uma parte fundamental do processo.
Etapa 3. Prepare-se para o deploy do contêiner
A conteinerização é uma ferramenta importante para a implantação de modelos de Aprendizado de Máquina, e as equipes de ML devem colocar seus modelos em um contêiner antes da implantação.
Isso ocorre porque os contêineres são previsíveis, repetitivos, imutáveis e fáceis de coordenar; eles são o ambiente perfeito para implantação.
Ao longo dos anos, os contêineres se tornaram muito populares para a implantação do modelo de ML porque simplificam a implantação e o dimensionamento. Os modelos de ML que são conteinerizados também são fáceis de modificar e atualizar, o que reduz o risco de tempo de inatividade e torna a manutenção do modelo menos desafiadora.
Etapa 4. Plano para monitoramento e manutenção contínuos
A chave para um deploy bem-sucedido de um modelo está em manter o monitoramento, manutenção e governança contínuos.
Apenas garantir que o modelo esteja trabalhando inicialmente em um ambiente ao vivo não é suficiente. Portanto, o monitoramento contínuo ajuda a garantir que o modelo seja eficaz no longo prazo.
Além do desenvolvimento do modelo de ML, é importante que as equipes estabeleçam processos para monitoramento e otimização eficazes para que os modelos possam ser mantidos nas melhores condições.
Depois que esses processos forem planejados e implementados, problemas como desvio de dados, ineficiências e viés podem ser detectados e corrigidos mais facilmente. Dependendo do modelo de ML, também pode ser possível retreiná-lo regularmente com novos dados para evitar que ele se afaste muito dos dados ativos.
Quer aprender mais sobre Data Science? Conheça a Awari!
A Awari é uma plataforma de ensino completa que conta com mentorias individuais, cursos com aulas ao vivo e suporte de carreira para você dar seu próximo passo profissional.Conheça nossa Trilha de Ciência de Dados e confira os nossos cursos de Machine Learning e Data Analytics com jornada personalizada e materiais complementares desenvolvidos por especialistas no mercado.


