O que é MLOps?

Entenda quais processos e práticas estão incluídos dentro desse novo conceito no mundo de I.A

Cora Silberschneider
mlopsbr
6 min readJul 18, 2022

--

O termo MLOps é relativamente um novo conceito que está sendo utilizado no universo de Inteligência Artificial/Ciência de Dados. O termo surgiu em meados de 2015, a partir de um artigo do Google, chamado Hidden Technical Debt in Machine Learning Systems, em que foi explorado e discutido as dificuldades relacionadas a sistemas de machine learning em produção (vale a pena a leitura).

A sigla significa Machine Learning Operations. Um dos principais objetivos desse conceito é tentar diminuir o gap que temos nos projetos de machine learning entre o ambiente de experimentação e produção.

Fonte: NealAnalytics

Talvez você esteja pensando que já ouviu uma sigla parecida com essa, certo? Essa outra sigla que já é muito conhecida no mundo da tecnologia é o DevOps. DevOps é um conjunto de práticas que visa automatizar e integrar processos do desenvolvimento e operação de sistemas de software. Dentro dessas práticas é utilizado o método CI/CD (Continuous Integration/Continuous Delivery) que, em resumo, é aplicado em processos de pipeline para automatização e monitoramento contínuo de toda uma aplicação de software. (Caso queira entender mais sobre esse processo veja esse artigo).

Dessa forma, DevOps e MLOps cruzam caminhos uma vez que um sistema de Machine Learning é um sistema de software e de certa forma precisamos aplicar práticas semelhantes para garantir que conseguimos criar e executar sistemas de ML em larga escala.

Portanto, sistemas de ML possuem algumas características diferentes de sistemas de software em geral e são essas características que MLOps visa automatizar no ciclo de vida de um projeto de ML.

Características de um sistema de ML

Um projeto de Machine Learning inclui em suas etapas a fase de análise e exploração dos dados, além do desenvolvimento de modelos e experimentação. Como vemos na figura abaixo, a parte que realmente contém um algoritmo de machine learning é um pequeno pedaço em relação a todos processos envolvidos em um projeto de ML.

Elementos de um sistema de Machine Learning (Fonte: Google)

É essencial dentro de um projeto de ML a fase experimental. Testar diversos algoritmos, formas de modelagem e parâmetros é fundamental para que os cientistas de dados encontrem o que funciona melhor para o problema em questão. Com isso, um dos desafios de MLOps é justamente permitir o acompanhamento desses experimentos, tornando eles reproduzíveis para ficar claro sobre o que funcionou e não funcionou nos testes.

Além disso, testar um sistema de ML envolve a validação dos dados e da qualidade do modelo treinado e em produção. E, uma vez configurado o pipeline para o sistema de ML desejado (que grande parte das vezes irá servir como um serviço de predição), existe o desafio de monitorar o desempenho do modelo e suas respectivas métricas. Por fim, podem existir alguns sistemas que vão necessitar o treinamento contínuo do modelo.

Essas são alguns pontos que diferem um sistema de ML para um sistema geral de software, e com isso começa a ficar mais claro a diferença entre o DevOps e o MLOps. Uma das grandes diferenças como vemos, é que dados fazem parte do pipeline de entrega principalmente para alguns projetos onde é necessário o treinamento contínuo de um modelo de machine learning. O treinamento contínuo é uma característica exclusiva de sistemas de machine learning, onde precisamos preocupar em retreinar e disponibilizar os modelos de forma automatizada e constante.

Ou seja, além de testar e validar o código nos processos CI do pipeline devemos testar e validar os dados, esquemas de dados e modelos. E por fim, nas práticas de CD, através de um pipeline de treinamento de ML, deve ser entregue um sistema que implanta de forma automatizada o serviço de predição do modelo.

Como identificar o nível de maturidade de MLOps da sua empresa?

O Google trouxe uma visão de três níveis existentes para MLOps, vamos resumir eles a seguir e veja se é possível identificar em qual delas a sua empresa pode estar inserida.

Nível 0: processo manual

Nesse nível, todos os passos são manuais. Desde a obtenção e preparação dos dados, análise, exploração, treinamento e validação do modelo. Normalmente, os cientistas de dados fornecem um modelo treinado como artefato para uma equipe de engenharia que irá implantar a infraestrutura de API. Isso pode gerar uma diferença no desempenho do modelo durante o treinamento e em produção.

Nesse processo, os cientistas de dados assumem que os modelos não mudam com frequência e fazem o re-treino para uma nova versão do modelo apenas algumas vezes por ano.

Por fim, é um nível onde não existe o pipeline CI/CD e a implantação refere-se a um sistema de previsão entregue como uma API REST, por exemplo. Nesse processo não existe o monitoramento das previsões e ações do modelo com objetivo de detectar a degradação do desempenho e o comportamento do modelo.

Na prática do nível zero, os modelos normalmente costumam falhar quando são implementados na vida real e não se adaptam bem as mudanças dos dados.

Nível 1: automação de pipeline de ML

O objetivo desse nível é o treinamento contínuo do modelo visando automatizar o pipeline de ML. Para isso, é introduzido o processo de automação dos dados e validação do modelo.

Os passos dos experimentos são orquestrados, o ambiente utilizado no desenvolvimento é o mesmo usado no ambiente pré-produção/produção e o código é modularizado para componentes e pipelines, ou seja, são reutilizáveis e compartilháveis em pipelines de ML. Por exemplo, o código de EDA pode ainda estar em algum notebook, mas o código-fonte dos componentes precisam estar modulados.

Além disso, utilizam se contêineres para tornar o código reproduzível entre os ambientes de desenvolvimento e produção e para ser possível isolar cada componente do pipeline. Com isso, nesse nível é implantando um pipeline de treinamento que é executado de maneira automática para utilizar o modelo treinado como um serviço de predição. O processo de implantação do modelo é automatizado.

Nível 2: automação de pipeline CI/CD

Esse é o nível almejado por todos, onde existe um sistema de CI/CD robusto automatizado. Ele permite que os cientistas de dados explorem e testem todas possibilidades com seus modelos, atributos e parâmetros de forma automatizada.

Essa configuração possui todos os componentes que um processo de MLOps objetiva em ter, sendo eles: controle de origem; testes e experimentação; registro de modelos; serviços de implantação; armazenamento de metadados; orquestração de pipeline.

Ferramentas

Entendendo qual o objetivo de MLOps em sistemas de machine learning, percebe se que o mercado vem oferecendo diversas ferramentas que facilitam a integração desses processos.

Um deles é o Kubernetes, que é um orquestrador de contêineres utilizado para automatizar o deploy de aplicações. É uma ferramenta bastante usada em DevOps e também se encaixa bem para implantar modelos de Machine Learning em produção, executar jobs programados e criar pipelines CI/CD. Uma das grandes vantagens do Kubernetes está também na capacidade de escalar aplicações de microsserviços.

Existe também o Airflow, que permite aos cientistas de dados o uso de workflows para o treinamento de seus modelos e entrega de alguma previsão. Embora consigamos usar o Airflow para procedimentos de pré-processamento, ele é muito mais utilizado como uma ferramenta de orquestração. Muitos times utilizam a ferramenta para agendar fluxos necessários de ML, como retreino de modelos, pipelines de Feature Store, etc.

Enfim, o conceito de MLOps surgiu há poucos anos e então várias ferramentas estão sendo disponibilizadas para tentar facilitar todo o processo de um sistema ML. Temos o MLFlow para versionamento de modelos, acompanhamento de métricas e de experimentos, BentoML para entrega de modelos, DVC para versionamento de dados e dentre muitas outras ferramentas.

O objetivo deste post era explicar e exemplificar o que é MLOps e como esse conceito é aplicado em sistemas de Machine Learning. Espero que tenha ficado claro e fiquem a vontade em entrar em contato pelo linkedin. Obrigada! :)

Referências

https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning#data_science_steps_for_ml

--

--