O que é MLOps e como ele pode ser útil para sua empresa?
- Por Rox Partner
O termo MLOps surgiu recentemente no cenário do universo de dados, e está cada vez mais em pauta; principalmente nas discussões sobre quais caminhos uma empresa Data Driven deve seguir para se tornar competitiva. Embora a discussão seja pertinente, ainda existem muitas dúvidas sobre o que é exatamente o MLOps e como ele pode ser implementado.
Antes de mais nada, podemos começar esclarecendo uma confusão comumente feita: o MLOps não é uma tecnologia específica, mas sim uma metodologia. A ideia é combinar as práticas já comuns do DevOps com o campo de Machine Learning. Ela surgiu da necessidade de resolver alguns problemas específicos, relacionados à dificuldade de colocar modelos de Machine Learning em produção, além de sua manutenção e garantia de que a qualidade dos resultados se mantenha ao longo do tempo.
O primeiro estudo relevante a trazer luz sobre o tema foi o sempre citado paper do time da Google apresentado no jornal NeurIPS, que trata sobre o tema do débito técnico escondido nos sistemas de Machine Learning. Como é possível verificar na imagem abaixo, o código/script criado para treinar os modelos e servir, que costuma ser o maior foco de estudo dos Cientistas de Dados hoje em dia – principalmente apresentados nos cursos online -, é apenas um pequeno pedaço do quebra-cabeças de como montar um sistema de Machine Learning:
Quais as vantagens de adotar o MLOps?
Em termos gerais, o MLOps traz uma série de benefícios. Além de combinar as vantagens já conhecidas do DevOps (melhorar a qualidade e velocidade das entregas durante o ciclo de desenvolvimento), ele mantém uma maior organização sobre os dados, permitindo o treino contínuo de modelos e o monitoramento destes. Citamos aqui mais algumas vantagens:
- Encurtar o ciclo de criação e produtização do modelo (começo ao fim)
- Fornecer mais tempo para o Cientista de Dados gastar com exploração e desenvolvimento do modelo
- Padronizar os fluxos de criação de novos modelos
- Reutilizar dos componentes do pipeline de treino do modelo
- Monitorar a qualidade do modelo ao longo do tempo
- Conseguir maior controle sobre os custos relacionados ao ciclo de vida do sistema de ML
Por outro lado, apesar das muitas vantagens da adoção desse framework de trabalho, por se tratar de um campo novo e ainda em evolução, a implementação de projetos desse tipo não é nada fácil para marinheiros de primeira viagem.
Estágios de evolução do MLOps
Uma das maiores referências sobre o assunto, como já vimos antes, é a Google. O time de Cloud publicou um artigo muito esclarecedor sobre os estágios de evolução do MLOps dentro de uma empresa, separando em 3 níveis. Vamos resumir as principais características de cada um, para auxiliá-los a entender melhor onde sua empresa se encontra atualmente:
-
Nível 0: Processo Manual
Nessa etapa, a empresa ainda depende do esforço dos times para todas as fases da cadeia. Todo o processo de análise de dados, preparação dos dados para o modelo, treino e validação é realizada pelo cientista de dados; enquanto, geralmente, o time de engenharia é responsável por reaproveitar o modelo criado e colocá-lo em produção para apresentar os resultados.
Outra característica comum dessa etapa é a falta de monitoramento do modelo em produção, trazendo diversos problemas como baixa performance e até tomadas de decisões erradas.
-
Nível 1: Automação do Pipeline
Nesse nível, a empresa já dispõe de um sistema automatizado de treino do modelo, no qual todos os passos necessários, como: validação e transformação dos dados de entrada, treino do modelo, medição de sua performance e validação do modelo final; que são automaticamente executados, assim que forem acionados por um gatilho externo (como um orquestrador, por exemplo). Existem alguns componentes novos que irão servir de base para o processo funcionar, como a Feature Store, por exemplo, uma plataforma de gerenciamento de características em um ambiente de ciência de dados e machine learning.
Esse modelo permite uma rápida experimentação por parte dos cientistas de dados, além de uma maior confiabilidade do sistema devido ao seu treinamento contínuo (mantendo a qualidade) e também apresenta garantias do modelo ter sido testado em ambientes pré-produtivos. Outra grande vantagem é que os componentes do pipeline são modularizados por código, permitindo a independência dos pipelines, seu reaproveitamento em outros módulos (visto que cada componente pode ser composto de uma imagem diferente) e acelerando o seu desenvolvimento.
Uma outra característica interessante é que o monitoramento dos sistemas de ML em produção geram estatísticas que, por si só, podem acionar um novo ciclo de treinamento. Isso garante que modelos com baixa performance, devido a mudanças de comportamento, serão novamente treinados e comparados com a versão anterior, que permite avaliar se o modelo terá uma melhor performance com dados atuais ou se será necessário uma análise mais detalhada de seu desempenho.
-
Nível 2: Automação do Pipeline com CI/CD
Esse nível traz uma evolução importante em relação ao anterior, que é a adição do pipeline de CI/CD (Continuous Integration/Continuous Delivery) ao nosso sistema de ML. Essa mudança pode ser percebida tanto no começo do ciclo – com um fluxo de testes e build dos módulos que serão utilizados no pipeline (validação, treino, etc.) -, quanto no meio e final, onde os modelos serão automaticamente colocados em produção para servir no produto ou aplicação que está sendo utilizado. Assim, todo o ciclo é automatizado do começo ao fim, com uma maior robustez e velocidade de implementação de projetos.
O código dos componentes e do seu modelo deverá ser guardado em um repositório de códigos (Git, Bickbucket, etc), que irá acionar o pipeline de CI/CD em qualquer alteração. Dessa forma, os componentes e o código do modelo serão testados e construídos nos ambientes específicos, garantindo que sua implementação esteja adequada, atualizando o pipeline para sua versão mais recente. Após entrar em produção, os modelos seguirão sendo treinados continuamente, conforme forem acionados por gatilhos do CI/CD, de orquestração ou de performance, garantindo que sua melhor versão (após validação) seja colocada em produção para servir à aplicação.
Próximos Passos
MLOps é uma abordagem essencial para a criação e implementação de modelos de Machine Learning em escala, garantindo que o processo seja gerenciado de forma eficiente e eficaz. É importante destacar que o sucesso de qualquer projeto de MLOps depende em grande parte da qualidade dos dados utilizados para treinar e validar os modelos.
Conheça a Rox School
Somos especialistas em cuidar dos seus dados, oferecendo soluções inovadoras e parcerias com os maiores nomes da tecnologia para manter você sempre à frente.