Aquarela

Aquarela Analytics branco

MLOps: Boas Práticas para Implementar e Gerenciar Modelos de Machine Learning

MLOps

O avanço contínuo da capacidade de processamento de informação, aliado ao aumento da disponibilidade de dados de várias fontes, tem viabilizado o treinamento de modelos de Machine Learning (ML) cada vez mais complexos.

No entanto, essa crescente complexidade dos modelos apresenta um desafio crítico: a transição para um ambiente de produção. Devido a dinamicidade desse cenário, simplesmente criar um modelo já não é suficiente, sendo a etapa de transição desafiadora e complexa.

Dessa forma, surge o conceito de MLOps (Machine Learning Operations), uma abordagem que busca sistematizar e otimizar o ciclo de vida dos modelos de machine learning. O MLOps representa a integração entre as práticas estabelecidas do DevOps, porém demanda conceitos específicos para o gerenciamento eficiente dos modelos em ambientes de produção.

O que é MLOps?

É uma metodologia que busca auxiliar a transição de modo fluido dos modelos de machine learning do estágio de desenvolvimento para o ambiente de produção. O MLOps surgiu como uma resposta à necessidade de uma abordagem sistemática para gerenciar modelos em produção, garantindo sua confiabilidade, escalabilidade e eficiência operacional. Dessa forma,  aborda a integração, teste, lançamento, implantação e gerenciamento de infraestrutura.

O MLOps promove a interação da área de DevOps com os modelos de ML. Quando há a necessidade de desenvolvimento e operação de sistema de software em larga escala, o DevOps é uma prática comum. Dessa forma, essa prática oferece benefícios como encurtar os ciclos de desenvolvimento, aumentar a velocidade de implementação e gerenciar versões confiáveis. 

Para alcançar os benefícios dessa prática, são incluídos os conceitos de Integração Contínua (CI) e Entrega contínua (CD). Logo, como o sistema de ML é um software, práticas semelhantes se aplicam para garantir a confiabilidade do sistema.

Entretanto, existem algumas peculiaridades relacionadas aos sistemas de ML, que são:

  • Desenvolvimento Experimental: a natureza experimental do ML requer testes de diferentes recursos e algoritmos para encontrar a melhor solução rapidamente, que desafia a rastreabilidade e reutilização de código.
  • Testes e Implementação Complexos: os testes vão além de unidades e integração, abrangendo validação de dados, qualidade do modelo e implementação de pipelines multifásicos para treino e implementação automática. A complexidade aumenta, exigindo automação de passos manuais.
  • Desafios na Produção: os modelos de ML sofrem de degradação de desempenho não apenas devido a questões de codificação, mas também por mudanças contínuas nos perfis de dados. Sendo necessário o monitoramento constante para detectar e corrigir falhas, considerando a degradação frequente dos modelos.

Os sistemas de ML e outros sistemas de software possuem semelhantes na integração contínua de controle de origem, teste de unidade, teste de integração e entrega contínua do módulo de software. Todavia, nos sistemas de ML, existem algumas peculiaridades relacionadas a esses conceitos e a adição de um novo conceito:

  • A CI não se trata apenas de testar e validar código e componentes, mas também testar e validar dados, esquemas de dados e modelos.
  • O CD não é sobre um único pacote de software ou serviço, mas um sistema (uma pipeline de treinamento de ML) que deve fornecer subsídios automaticamente a outro serviço (predição de modelo).
  • O Treinamento Contínuo (CT) é uma nova propriedade, exclusiva para sistemas de ML, que possui como premissa o treinamento e a exibição automática do modelo.

Por que MLOps é crucial para um projeto de Machine Learning?

Para compreender a importância do MLOps em um projeto, é necessário primeiro entender que o código que gera o modelo de ML é apenas uma pequena parte do processo, conforme ilustrado na figura 1.

Figura 1: relação de tamanho entre complexidades de código.
Figura 1: relação de tamanho entre complexidades de código. Fonte [1]

Além disso, outro ponto importante é o ciclo de vida de um modelo de ML. Na figura 2 é possível visualizar esse ciclo.

Figura 2 : ciclo de vida de um modelo de ML
Figura 2 : ciclo de vida de um modelo de ML (autoria própria)

Observando as setas direcionais apresentadas na figura 2, temos o seguinte fluxo principal:

  • Primeiramente, na fase de escopo do projeto, há a definição do projeto e a identificação do problema de negócio a ser solucionado. 
  • Em seguida, temos a definição e organização dos dados relacionados ao problema a ser resolvido. 
  • Posteriormente, entra-se na fase de modelagem, na qual ocorre a seleção e o treinamento do modelo, seguido pela análise de sua performance. 
  • Por fim, com o modelo definido, há a fase de deployment, que consiste na implementação do modelo criado no ambiente de produção, demandando monitoramento constante das inferências realizadas pelo modelo.

É importante ressaltar que esse fluxo principal, na maioria dos casos, não será direto. Durante a fase de criação do modelo, é possível que, devido ao baixo desempenho na construção dos modelos, seja necessário redefinir e reorganizar os dados para solucionar o problema. Além disso, mesmo que os dados correspondam na fase de modelagem e cheguem à fase de deployment, mudanças de contexto nos modelos aplicados no ambiente de produção podem exigir a recriação dos modelos. Por fim, caso haja disparidade na distribuição de dados entre o modelo criado e o modelo em produção, será necessário definir e organizar os dados para resolver essa diferença.

Dessa forma, os cientistas de dados podem implementar e treinar um modelo de ML com um bom desempenho preditivo em um conjunto de dados de validação, utilizando dados de treinamento relevantes para o caso de uso. No entanto, o maior desafio não é apenas criar um modelo de ML, mas sim desenvolver um sistema de ML integrado e operá-lo continuamente na produção.

Níveis de maturidade da Implementação prática de MLOps

Após definir o problema de negócio e os critérios de sucesso em um projeto de ML, o processo de levar um modelo de ML para a produção passa por etapas que podem ser executadas manualmente ou por meio de um fluxo automatizado.

A automação dessas etapas determina o nível de maturidade do processo de ML, influenciando a rapidez na criação de novos modelos com base em dados atualizados ou na implementação de novos treinamentos. Segundo Maria Vechtomova, existem diferentes níveis de maturidade relacionadas ao MLOps, variando desde a abordagem mais comum, sem automação, até a criação de pipelines de ML e CI/CD totalmente automatizados, sendo eles:

  1. Documentação:
    1. Documentação do Projeto: descreve os objetivos comerciais, KPIs e a equipe envolvida no projeto, bem como a avaliação contínua dos riscos do modelo;
  1. Documentação do Modelo de ML: documenta todas as etapas do ciclo de vida do modelo, desde a coleta e processamento de dados até a escolha e justificação do modelo de ML utilizado;
  1. Documentação Técnica: detalha a documentação da API para casos de inferência em tempo real e mantém atualizada a arquitetura de software.
  1. Rastreabilidade e Reprodutibilidade:
    1. Infraestrutura: define a infraestrutura como código, gerencia mudanças por meio de pull requests e mantém ambientes consistentes entre pré-produção e produção;
  1. Código de ML: versiona e mantém rastreabilidade do código, garantindo que o modelo possa ser reproduzido em diferentes ambientes.
  1. Qualidade do Código:
    1. Requisitos de Qualidade do Código da Infraestrutura: garante que o código da infraestrutura seja validado e testado por meio de pipelines de CI, com revisões por outros membros da equipe;
  1. Requisitos de Qualidade do Código do Modelo de ML: implementar testes em todas as etapas do processo de ML e estratégias de teste para casos de inferência em tempo real.
  1. Monitoramento e Suporte:
    1. Monitoramento da Infraestrutura: monitora custos e a saúde dos recursos da infraestrutura, configurando alertas em caso de problemas;
  1. Monitoramento da Aplicação: registra e monitora todas as interações da API, além de garantir a entrega contínua para casos de uso em lote;
  1. Monitoramento de Desempenho do Modelo & KPIs: armazena e monitora métricas de avaliação offline, além de utilizar um feedback loop para monitorar KPIs.
  1. Pipelines de Transformação de Dados e Repositório de Características

Garante a consistência do pré-processamento de features, transformação dos dados de treinamento e previsão, utilizando um repositório de características para todas as necessidades do modelo.

  1. Explicabilidade do Modelo

Garante que o sistema  seja capaz de explicar suas saídas de maneira compreensível e clara para os usuários, além de operar dentro de seus limites de conhecimento.

  1. Testes A/B e Loop de Feedback: 

Armazena automaticamente entradas e saídas do modelo para testes A/B regulares, garantindo consistência nas previsões durante os experimentos.

Por fim, um projeto de ML é considerado maduro em MLOps quando todas as afirmações dos pontos 1 a 4 (documentação, rastreabilidade e reprodutibilidade, qualidade do código, monitoramento e suporte) podem ser respondidas com “sim”. Isso representa o mínimo necessário para implantar um projeto de aprendizado de máquina de forma confiável em produção. 

Os pontos 5 a 7 representam um nível avançado de maturidade em MLOps, e sua implementação pode ocorrer mesmo se algumas afirmações nos pontos de 1 a 4 não tiverem sido abordadas. No entanto, é encorajado priorizar o estabelecimento desses fundamentos antes de avançar para práticas mais avançadas em MLOps.

Componentes principais de MLOps

Em resumo, no processo de migração de um modelo do ambiente de desenvolvimento para o ambiente de produção, alguns componentes devem ser considerados para que os modelos sejam sustentáveis e gerem inferências confiáveis.

  • Gestão de código e versionamento de modelos: uso de ferramentas de controle de versão para garantir a rastreabilidade e reprodução dos modelos;
  • Automação de pipelines de treinamento, validação e implementação: desenvolvimento de pipelines automatizados para agilizar o processo de treinamento, validação e implantação de modelos.
  • Monitoramento contínuo de modelos em produção: implementação de sistemas de monitoramento para acompanhar o desempenho do modelo em produção e identificar desvios.
  • Feedback loops e re-treinamento de modelos: estabelecimento de mecanismos que permitem a realimentação de dados para re-treinar modelos, garantindo sua relevância contínua.

Conclusão – MLOps: Boas Práticas para Implementar e Gerenciar Modelos de Machine Learning

Uma implementação eficaz de MLOps é crucial para garantir o sucesso e a eficiência dos modelos de Machine Learning em ambientes de produção. Com o uso das práticas recomendadas de MLOps, é proporcionada não apenas a otimização do ciclo de vida dos modelos, mas também a garantia de sua confiabilidade e relevância contínua no ambiente de produção que reflete o mundo real.

Dessa forma, a integração entre DevOps e conceitos específicos de ML oferece um caminho sólido para maximizar a eficiência dos modelos de ML, permitindo que os projetistas entreguem o máximo potencial de seus modelos em produção.

Referências 

[1] Hidden Technical Debt in Machine Learning Systems: https://proceedings.neurips.cc/paper_files/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf

[2] Machine Learning Operations (MLOps): Overview, Definition, and Architecture:
https://arxiv.org/pdf/2205.02302.pdf

[3] MLOps Maturity Assessment:
https://mlops.community/mlops-maturity-assessment/

Quem é a Aquarela Analytics?

A Aquarela Analytics é vencedora do Prêmio CNI de Inovação e referência nacional na aplicação de Inteligência Artificial corporativa na indústria e em grandes empresas. Por meio da plataforma Vorteris, da metodologia DCM e o Canvas Analítico (Download e-book gratuito), atende clientes importantes, como: Embraer (aeroespacial), Scania, Grupo Randon (automotivo), SolarBR Coca-Cola (varejo alimentício), Hospital das Clínicas (saúde), NTS-Brasil (óleo e gás), Auren, SPIC Brasil (energia), Telefônica Vivo (Telecomunicações), dentre outros.

Acompanhe os novos conteúdos da Aquarela Analytics no Linkedin e assinando a nossa Newsletter mensal!

Autor

Deixe um comentário

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

Send this to a friend