MLOps: O que é, como usar e introdução aos benefícios

A cycle chart showing the phases of a Machine Learning Lifecycle, discovery phase, development phase and deployment phase

O que é MLOps?

Machine Learning Operations (MLOps) é um novo termo que está ganhando força à medida que as empresas adotam machine learning e IA. Mas, se você não está no setor ou não está familiarizado com ele, aqui está o que você precisa saber: MLOps refere-se ao lado operacional de machine learning e IA.

MLOps é um conjunto de práticas e processos que permitem que as organizações gerenciem com eficácia o desenvolvimento, a implantação e a manutenção de modelos de aprendizado de máquina. MLOps é como um livro de receitas que ajuda você a garantir que todo esse processo seja feito de forma consistente, eficiente e eficaz.

Em sua essência, MLOps trata da automação de todo o ciclo de vida do aprendizado de máquina, desde a coleta de dados, preparação de dados, experimentação de modelos, treinamento e avaliação, implantação e monitoramento. Ao automatizar esses processos, as organizações podem reduzir o tempo e o esforço necessários para desenvolver e implantar modelos, além de garantir que os modelos sejam precisos e confiáveis.

Neste artigo, discutiremos como MLOps pode ajudar as equipes e organizações de dados a aprimorarem seus recursos de machine learning. Também forneceremos uma visão geral dos principais componentes de MLOps, discutiremos por onde começar ao implementar MLOps em sua organização e quais ferramentas usar para cada etapa.

Como MLOps pode ajudar?

MLOps visa fornecer escalabilidade, confiabilidade e segurança para iniciativas de machine learning e IA. Aqui estão quatro razões pelas quais o MLOps é considerado um aspecto crucial dessas iniciativas:

Escalabilidade

MLOps oferece suporte à padronização de ambientes, otimização da alocação de recursos, gerenciamento eficaz da infraestrutura, integração de processos e implementação de Integração Contínua e Implantação Contínua (CI/CD), facilitando a escala de modelos de machine learning à medida que a demanda aumenta.

Reprodutibilidade

MLOps garante consistência e repetibilidade no treinamento e implantação de modelos de machine learning. Ajuda a rastrear o ambiente e a versão de cada modelo, bem como os dados usados ​​para treinamento e avaliação. Isso ajuda a garantir que um modelo seja reproduzível e confiável.

Rápido tempo de lançamento no mercado: MLOps simplifica e acelera o desenvolvimento de modelos de machine learning de ponta a ponta e o processo de implantação. Fluxos de trabalho automatizados ajudam a acelerar o processo de construção, teste e implantação de modelos. Isso ajuda a lançar rapidamente novos produtos e serviços com maior precisão e melhor desempenho.

Monitoramento

MLOps fornece monitoramento em tempo real do desempenho do modelo de machine learning e alertas se forem detectadas quaisquer discrepâncias na precisão ou no desempenho. Isso ajuda a identificar possíveis problemas que podem estar afetando o desempenho do modelo e a tomar as ações corretivas apropriadas.

Conceitos Importantes em MLOps

Para garantir que os dados em seu sistema sejam precisos e facilmente acessíveis, precisamos citar três conceitos importantes.

Data Lineage

É a capacidade de rastrear um pedaço dos dados de volta à sua fonte original. Ele permite que você acompanhe exatamente como os dados foram movidos da origem para o destino e quem fez cada alteração ao longo do caminho. O objetivo é entender de onde vêm seus dados para garantir que sejam confiáveis ​​e precisos.

Data Provenance

É um conceito semelhante à linhagem de dados, mas se concentra mais em como os dados são criados e alterados. O objetivo é entender o histórico de uma informação para que você possa determinar por que ela mudou ao longo do tempo e o que aconteceu como resultado.

Metadados

São dados sobre seus dados. Inclui informações como localização, tipo e tamanho de uma informação, bem como quem a possui e como está sendo usada. Além de ajudá-lo a entender quais dados você possui, os metadados podem ajudá-lo a gerenciar melhor seu sistema.

Como a aplicação desses conceitos ajudam seu sistema?

  1. Ajudam a garantir que os modelos sejam construídos com base em dados de qualidade, preservando a precisão dos resultados.
  2. Ajudam na depuração e reprodução de modelos, pois pode ser usado para identificar onde ocorreram problemas e como reproduzir resultados para análise posterior.
  3. Data provenance e data lineage permitem conformidade e governança de dados, maior transparência e responsabilidade.
  4. Ajuda a reduzir o tempo necessário para preparação de dados e implantação de modelo, pois fornece informações sobre os dados usados ​​para desenvolver modelos.

Integração Contínua/Implantação Contínua (CI/CD)

Os conceitos de DevOps têm aplicação direta em MLOps. No desenvolvimento de software, diferentes desenvolvedores não trabalham no mesmo código simultaneamente.

Em vez disso, eles verificam o código no qual vão trabalhar em um repositório de código e o mesclam novamente após a conclusão da tarefa. Antes de retornar o código, o desenvolvedor verifica se algo na versão principal foi alterado e executa unit tests em suas atualizações antes de mesclar com o código principal.

De acordo com Park, C.; Paul, S.¹, na engenharia de software, Integração Contínua (CI) e Entrega Contínua (CD) são dois conceitos muito importantes. CI é quando você integra mudanças (novos recursos, confirmações de código aprovadas, etc.) em seu sistema de forma confiável e contínua. CD é quando você implanta essas alterações de forma confiável e contínua. CI e CD podem ser realizados isoladamente, assim como podem ser acoplados.

Quanto mais frequentes as mesclagens com o código principal, menor a probabilidade de divergência de código. Isso é conhecido como Integração Contínua (CI) e pode ocorrer várias vezes ao dia em uma equipe de desenvolvimento em ritmo acelerado.

Implantação Contínua (CD) envolve construir, testar e lançar software em ciclos curtos. Essa abordagem garante que o código de desenvolvimento principal esteja sempre pronto para produção e possa ser implantado no ambiente de produção a qualquer momento. Sem ele, o código principal é como um carro de corrida desmontado – rápido, mas somente depois de montado novamente. A Entrega Contínua pode ser realizada manualmente ou automaticamente.

Treinamento Contínuo (CT)

Em MLOps, integração contínua de código-fonte, teste (unitários e integração) e implantação contínua para produção são cruciais. Mas há outro aspecto importante para MLOps: dados. Os modelos de ML podem sofrer degradação da performance quando o perfil de dados muda, ao contrário do software convencional que produz consistentemente os mesmos resultados. Para resolver isso, MLOps introduz o conceito de Treinamento Contínuo (CT), além de integração e entrega contínuas. O treinamento contínuo garante que o modelo de ML permaneça eficaz mesmo com a evolução do perfil de dados.

Three pie charts showing the phases of Continuous Integration (CI), Continuous Delivery (CD) and Continuous Training (CT) on MLops
Figura 1. Integração e Implantação Contínuas (CI/CD) e Treinamento Contínuo (CT) (Imagem do autor).

O treinamento contínuo é o processo de monitorar, medir, retreinar e servir os modelos. MLOps também tem diferenças significativas em relação ao DevOps. Em MLOps, a integração contínua vai além do teste e verificação de código e componentes para incluir teste e verificação de dados, esquemas de dados e modelos. O foco muda de um único pacote de software ou serviço para um sistema – a pipeline de treinamento de ML – que deve implantar outro serviço perfeitamente: o serviço de previsão de modelo. Um aspecto exclusivo do MLOps é o monitoramento, retreinamento e veiculação automáticos de modelos de machine learning.

Como começar a implementar MLOps

Vamos descobrir como MLOps pode ajudar a simplificar o ciclo de vida do modelo de machine learning e otimizar o desempenho em cada etapa.

Durante a fase de descoberta, o foco está na identificação de possíveis casos de uso para machine learning e na compreensão dos requisitos de dados e infraestrutura. Durante esta fase, nós exploramos conjuntos de dados, procuramos recursos e desenvolvemos protótipos. MLOps pode ajudar a automatizar e acelerar os ciclos de desenvolvimento automatizando a engenharia e a experimentação de features.

Durante a fase de desenvolvimento, os modelos de machine learning são projetados, treinados e avaliados. MLOps ajuda a facilitar esse processo, fornecendo um repositório centralizado para modelos de ML e seus metadados de artefatos. Além disso, MLOps pode ajudar a monitorar e analisar o desempenho do modelo rastreando métricas e definindo alertas para quaisquer discrepâncias.

Durante a fase de implantação, os modelos de machine learning são implantados em produção e monitorados quanto ao desempenho e à precisão. MLOps pode ajudar a automatizar esse processo orquestrando pipelines de dados, implantando modelos e serviços, garantindo que o sistema seja confiável e o modelo atenda a determinados critérios, como implantar o modelo somente se a precisão do novo modelo for maior que a do antigo. MLOps também ajuda a manter e dimensionar esses serviços em produção.

A cycle chart showing the phases of a Machine Learning Lifecycle, discovery phase, development phase and deployment phase
Figura 2. Ciclo de vida de machine learning (imagem do autor).

Ferramentas

Em termos de ferramentas, existem várias ferramentas de MLOps que você pode usar, incluindo:

  • Jenkins, GitHub Actions e Cloud Functions para controle de versão e CI/CD
  • Docker ou Kubernetes para conteinerização e orquestração
  • TFX, Kubeflow, Apache Airflow e Cloud Composer para gerenciamento de pipeline
  • Serviços em nuvem, como Google Cloud AI Platform, Google Cloud Vertex AI, AWS SageMaker ou Microsoft Azure Machine Learning para infraestrutura de machine learning
  • Ferramentas de ciência de dados e machine learning, como TensorFlow, PyTorch, Scikit-learn, XGBoost para desenvolvimento de modelos
  • Ferramentas de monitoramento como TensorBoard, Weights & Biases e Neptune AI para monitoramento do desempenho do modelo e gerenciamento de experimentos

Em Como eu fiz o deploy do meu primeiro modelo de machine learning eu detalhei o processo de construção de um pipeline de ML utilizando:

  • TFX para gerenciamento de pipeline
  • Neptune AI para gerenciamento de experimentos
  • Docker para conteinerização
  • Vertex AI para implantação de pipeline
  • AI Platform para treinamento e veiculação de modelos
  • Cloud Functions e GitHub Actions para controle de versão e CI/CD

Tutoriais Hands-on

  1. CI/CD para TFX Pipelines com Vertex e AI Platform – Desenvolva uma pipeline de CI/CD para TFX Pipelines no Google Cloud – Vertex AI e monitore os requests do seu modelo
  2. Análise de Sentimentos com TFX Pipelines — Local Deploy – Crie uma pipeline local para implantar um modelo de análise de sentimento com o TFX Pipelines.
  3. Basic Kubeflow Pipeline From ScratchCrie um cluster com Kubernete, conteinerize seu código com o Docker e crie um Kubeflow Pipeline.

Referências

[1] Park, C.; Paul, S. Model training as a CI/CD system: Part I (6 Outubro 2021), Google.

[2] Di Fante, A. L.CI/CD para TFX Pipelines com Vertex e AI Platform (18 Outubro 2022), arturlunardi.

[3] Di Fante, A. L. Análise de Sentimentos com TFX Pipelines — Local Deploy (18 Outubro 2022), arturlunardi.

[4] Villatte, A. L. Basic Kubeflow Pipeline From Scratch (26 Janeiro 2022), Medium.

[5] Google Cloud Training. MLOps (Machine Learning Operations) Fundamentals [MOOC]. Coursera.

[6] MLOps: Continuous delivery and automation pipelines in machine learning (07 Janeiro 2020), Google.

MLOps: O que é, como usar e introdução aos benefícios

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para o topo