Tech Talk: Conceitos de MLOps

Escrito por Bruno Roth, Machine Learning Specialist na Pipefy – texto baseado em Tech Talk. 

O que é MLOps? 

MLOps é uma extensão do DevOps para o contexto do Machine Learning, ou seja, é a aplicação de princípios e práticas de DevOps ao ciclo de vida do desenvolvimento de modelos de Machine Learning. A principal diferença entre MLOps e DevOps é que MLOps inclui etapas adicionais, como a seleção de algoritmos, pré-processamento de dados, tuning de hiperparâmetros, gerenciamento de modelos em produção e monitoramento de desempenho, que são específicas do desenvolvimento de modelos de Machine Learning (ML). 

Os conceitos de MLOps auxiliam no gerenciamento do ciclo de vida dos modelos de Machine Learning, desde o desenvolvimento até a implementação em produção, com objetivo de garantir que esses modelos possam funcionar de forma confiável e eficiente em ambientes de produção.

Esse campo é complexo e possui diversas abordagens que dependem muito da arquitetura que uma empresa possui. Esse artigo tem como objetivo citar brevemente alguns conceitos importantes que devem sempre estar presentes em uma infraestrutura de MLOps.

Podemos citar como os principais pontos:

  • Versionamento
  • Testes
  • Automação
  • Reprodutibilidade
  • Deployment
  • Monitoramento

Versionamento

O gerenciamento de versões em Machine Learning é importante por várias razões.

Primeiramente, permite que você controle as mudanças em seu modelo e entenda como ele evoluiu ao longo do tempo. Isso pode ajudar a garantir que seu modelo esteja melhorando com o tempo e que quaisquer mudanças feitas no modelo possam ser rastreadas e revertidas, caso necessário.

Além disso, o gerenciamento de versões é importante em Machine Learning pois permite ajudar a garantir a reprodução de resultados (um ponto muito importante que vamos discutir mais a frente). Quando você usa dados e modelos para treinar seu modelo, é importante ter a capacidade de reproduzir esses resultados mais tarde, caso seja necessário. Ao registrar as versões dos dados e dos métodos usados para treinar seu modelo, você pode garantir a reprodução dos resultados do modelo posteriormente.

Uma boa prática é sempre manter em sincronia os três principais elementos que compõem um serviço de Machine Learning: os dados de treinamento, o script de extração de features e o próprio modelo.

Por fim, o gerenciamento de versões é importante porque permite a implementação de práticas de DevOps em projetos de Machine Learning. Isso significa que você pode automatizar o processo de criação, treinamento e implantação de seu modelo de maneira eficiente e confiável, sem precisar gastar tempo e esforço extras na gerência manual do modelo e seus dados.

Testes

A realização de testes automatizados é de grande importância para garantir a qualidade de um serviço de ML. Uma prática comum em MLOps é a realização de Testes Unitários e Testes de Integração durante o pipeline de deployment.

Testes Unitários são realizados no próprio código, onde são testados todos os métodos determinísticos de manipulação e transformação de dados. Isso é muito importante para facilitar a manutenção de código, pois auxilia na detecção de erros precocemente. 

Testes de Integração, como o nome já diz, são realizados para testar a integração de serviços, e ele deve ser aplicado no serviço de ML como um todo. A maneira de se aplicar é particular de cada infraestrutura de MLOps, mas o que normalmente se faz é testar se o serviço inicializa, se o modelo é carregado corretamente e se todos os endpoints são alcançáveis.

Esses testes, quando implementados de forma correta no pipeline de MLOps, diminuem muito a quantidade de erros no ambiente de produção.

Automação

A automação de treinamento de modelos de Machine Learning é a prática de automatizar todo ou parte do processo de treinamento de um modelo de Machine Learning, desde a preparação dos dados até a seleção do modelo e ajuste de hiperparâmetros.

Aqui na Pipefy, nós diferenciamos os tipos de modelos em duas categorias:

  • Estáticos: são modelos que não necessitam de treinamento constante. Normalmente são aplicados em dados que não possuem variância em sua distribuição. Alguns exemplos de modelos estáticos são extratores de documentos (RG, CNH, Invoices).
  • Dinâmicos: são modelos que necessitam de treinamento constante. Esses modelos trabalham com dados comportamentais, os quais estão expostos à constantes mudanças. Exemplos de modelos dinâmicos são modelos de MQL, PQL e churn detection.

A automação de treinamento de modelos é de extrema importância para agilizar o processo de atualização de modelos defasados.

Reprodutibilidade

A reprodutibilidade é um conceito essencial em ciência e pesquisa, incluindo Machine Learning. Em Machine Learning, a reprodutibilidade se refere à capacidade de reproduzir um modelo de Machine Learning e seus resultados, usando os mesmos dados e as mesmas configurações, em diferentes momentos e por diferentes pessoas.

O treinamento de modelos de Machine Learning devem ser reprodutíveis, ou seja, treinar um modelo de ML utilizando as mesmas técnicas com os mesmos dados deve produzir modelos idênticos.

A reprodutibilidade garante que as decisões tomadas com base em modelos de Machine Learning sejam baseadas em resultados confiáveis e transparentes, tornando mais fácil para os usuários entenderem como os resultados foram gerados e confiarem neles. Ela torna mais fácil para outros desenvolvedores e cientistas de dados verificarem os resultados de um modelo, o que é especialmente importante em ambientes de pesquisa, onde os resultados precisam ser revisados e validados por outros especialistas.

A reutilização de modelos permite que modelos de Machine Learning sejam facilmente reutilizados em diferentes contextos e em diferentes projetos, o que pode economizar tempo e recursos.

Em resumo, a reprodutibilidade é importante em Machine Learning pois garante a transparência e confiança nos resultados, permite a verificação dos mesmos, identificação de erros e reutilização de modelos. Todos esses fatores são essenciais para garantir a eficácia do modelo de Machine Learning e torná-lo uma ferramenta confiável e valiosa para a tomada de decisões de negócios.

Deployment

O deployment de um serviço de ML pode ser feito de duas maneiras: Deployment Estático e Dinâmico.

O Deployment Estático é similar com softwares tradicionais, onde é preparado um arquivo binário instalável do toda a aplicação. O modelo é instalado no dispositivo do usuário (seja ele um computador, celular etc.) e está imediatamente disponível para ser usado.

As vantagens desse tipo de deployment são:

  • O aparelho tem acesso direto ao modelo, então o tempo de execução é muito rápido.
  • O processamento dos dados é embarcado, logo o usuário não precisa enviar os dados para um servidor externo, garantindo velocidade e privacidade.
  • O modelo pode ser usado offline.

Porém existem algumas desvantagens, como:

  • Fica mais difícil atualizar o modelo, visto que isso precisa ser feito pelo usuário.
  • Difícil manutenção, pois como como os usuários controlam quando atualizar o modelo, terão diferentes usuários com diferentes versões de modelo ao mesmo tempo.
  • Limitação ao hardware onde o modelo está sendo utilizado.

O Deployment Dinâmico é o mais comum na indústria. Os modelos rodam em um servidor e são expostos por meio de uma API REST.

A forma a qual o serviço é consumido é particular do problema o qual ele está atuando. Normalmente, o modelo pode ser consumido em real-time pelo backend, ou em batch utilizando um scheduler (por exemplo o Airflow) ou ele pode ser exposto de forma assíncrona, onde o próprio serviço consome dados de uma fila (streaming). Tudo depende o quão rápido ele deve agir no problema e qual o custo computacional do modelo.

As vantagens do Deployment Dinâmico são:

  • Fácil manutenção e atualização de modelo.
  • Integração com outros sistemas (Feature Stores por exemplo).
  • Não dependem do hardware do usuário, pois todo o processamento ocorre no servidor.

Algumas desvantagens são:

  • Latência da rede pode ser um problema grave dependendo do quão rápido o serviço deve entregar as predições.
  • O custo de hospedagem pode ser elevado, dependendo de quantas pessoas estão consumindo o serviço.

Monitoramento

O monitoramento de modelos de Machine Learning é uma prática que envolve a coleta e análise de dados em tempo real para garantir que um modelo de ML esteja funcionando corretamente e produzindo resultados precisos e confiáveis ​​ao longo do tempo. Essa prática é essencial porque os modelos de Machine Learning são treinados com dados históricos e podem produzir resultados imprecisos se o ambiente de produção ou os dados de entrada mudarem.

Modelos dinâmicos estão suscetíveis a mudanças na distribuição de suas features ou até no conceito do seu target. Isso é conhecido na literatura como Data Drift e Concept Drift, e é um campo amplamente estudado e de extrema importância, pois diferente de outras áreas de software, modelos de Machine Learning falham silenciosamente.

Existem diversas maneiras de identificar esses drifts, e qual método usar depende muito da latência do processo em questão. Alguns serviços de Machine Learning demoram para ter o target consolidado, logo o monitoramento deve ser feito a partir dos dados que o modelo recebe. Uma abordagem comum para esses casos é o uso da Divergência de Kullback-Leibler, a qual quantifica o quanto a distribuição de uma amostra de dados (dados de treinamento) diverge de outra (dados em produção). Se essa divergência for significativa, pode ser um sinal de drift e que o modelo deve ser re-treinado ou atualizado com dados mais recentes.

Por isso, o monitoramento de modelos de Machine Learning é uma prática essencial para garantir a precisão do modelo e para detectar problemas e anomalias em tempo real. Além disso, o monitoramento contínuo ajuda as equipes de negócios a tomar decisões mais informadas com base nos resultados do modelo e a garantir a conformidade regulatória.

Considerações Finais

Em resumo, a adoção de práticas de MLOps é extremamente importante para uma empresa de software que deseja aproveitar ao máximo o potencial do Machine Learning em seus produtos e serviços. As considerações finais sobre a importância do MLOps para uma empresa de software são as seguintes:

  1. Melhora da eficiência e qualidade: A adoção de práticas de MLOps pode melhorar significativamente a eficiência e a qualidade do processo de desenvolvimento e implantação de modelos de Machine Learning. Com a automação de tarefas, o controle de versão, o gerenciamento de pipelines e o monitoramento de modelos, é possível acelerar o processo de desenvolvimento e garantir a qualidade dos modelos.
  1. Redução de custos: A adoção de práticas de MLOps pode ajudar a reduzir os custos associados ao desenvolvimento, implantação e manutenção de modelos de Machine Learning. Com a automação de tarefas e a otimização de recursos de infraestrutura, é possível reduzir os custos de mão de obra e recursos de computação, além de diminuir os riscos de erros humanos.
  1. Melhora da colaboração e comunicação: A adoção de práticas de MLOps pode melhorar a colaboração e comunicação entre as equipes de desenvolvimento e operações, permitindo que elas trabalhem de forma mais eficiente e integrada. Com a implementação de ferramentas colaborativas e a documentação adequada, é possível promover a colaboração e garantir que todos os membros da equipe estejam alinhados com os objetivos e requisitos do projeto.
  1. Garantia de compliance e segurança: A adoção de práticas de MLOps pode ajudar a garantir a conformidade regulatória e a segurança dos modelos de Machine Learning em produção. Com a implementação de medidas de segurança adequadas, a monitoração contínua e a garantia da transparência dos modelos, é possível garantir que os modelos estejam em conformidade com as leis e regulamentos, além de proteger a privacidade e segurança dos usuários.

Em conclusão, a adoção de práticas de MLOps é crucial para que as empresas de software possam aproveitar ao máximo o potencial do Machine Learning e garantir a eficiência, qualidade, segurança e conformidade de seus modelos em produção.

Similar Posts

Leave a ReplyCancel reply