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?
- Ajudam a garantir que os modelos sejam construídos com base em dados de qualidade, preservando a precisão dos resultados.
- 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.
- Data provenance e data lineage permitem conformidade e governança de dados, maior transparência e responsabilidade.
- 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.
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.
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
- 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
- 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.
- Basic Kubeflow Pipeline From Scratch – Crie 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.