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.
Além disso, outro ponto importante é o ciclo de vida de um modelo de ML. Na figura 2 é possível visualizar esse ciclo.
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:
- Documentação:
- 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;
- 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;
- 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.
- Rastreabilidade e Reprodutibilidade:
- 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;
- Código de ML: versiona e mantém rastreabilidade do código, garantindo que o modelo possa ser reproduzido em diferentes ambientes.
- Qualidade do Código:
- 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;
- 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.
- Monitoramento e Suporte:
- Monitoramento da Infraestrutura: monitora custos e a saúde dos recursos da infraestrutura, configurando alertas em caso de problemas;
- 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;
- 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.
- 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.
- 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.
- 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, Mercedes-Benz, 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
Pesquisador na área de ciência de dados na Aquarela. Graduando em engenharia elétrica na Universidade Federal de Campina Grande (UFCG). Entusiasta nas áreas de inteligência artificial, ciência de dados, processamento de sinais e sistemas embarcados.