Nuno Chicória

ngpc

Data Scientist - Xpand IT

Guia para a monitorização de modelos de machine learning

ESTE ARTIGO EM 5 SEGUNDOS:
  • Este conteúdo é uma continuação do artigo: “Avaliação de soluções de Data Science: como criar modelos de machine learning“.
  • A monitorização contínua dos modelos é essencial para garantir o sucesso sustentado e o desempenho ideal dos modelos de machine learning, envolvendo a observação do comportamento de um modelo ao longo do tempo e o acompanhamento das principais métricas para garantir a precisão e a fiabilidade.
  • Várias plataformas open-source simplificam o ciclo de vida de machine learning, fornecendo ferramentas para o acompanhamento de experiências, o controlo de versões de modelos através de registos e a implementação perfeita com monitorização integrada, permitindo aos cientistas de dados enfrentar as complexidades da gestão de modelos para um sucesso sustentado.

No panorama dinâmico de Data Science, criar e implementar modelos de machine learning é apenas o começo. Para garantir um sucesso sustentado e um desempenho ótimo, a monitorização contínua destes modelos é crucial. A monitorização de modelos no pipeline de data science envolve o acompanhamento, a avaliação e a gestão do desempenho dos modelos experimentais e dos modelos implementados na produção.

Neste artigo, vamos aprofundar a importância da monitorização de modelos e explorar a forma como ferramentas como o MLflow podem permitir que os cientistas de dados acompanhem de perto as suas experiências e modelos implementados.

Compreender a monitorização de modelos

A monitorização de modelos refere-se ao processo contínuo de observação do comportamento de um modelo de machine learning ao longo do tempo, tanto durante a fase de desenvolvimento como após a implementação. Tal envolve o acompanhamento de várias métricas para garantir que o modelo continua a fornecer previsões precisas e fiáveis à medida que as distribuições de dados evoluem.

Aspetos-chave da monitorização de modelos

Métricas de desempenho

A monitorização do desempenho dos modelos envolve o acompanhamento de métricas importantes, como a exatidão, a precisão, o recall (recuperação), o F1 score, entre outras. Estas métricas fornecem informações sobre a forma como o modelo está a generalizar para novos dados e se ocorreu alguma degradação no desempenho.

Deteção de data drift

As distribuições de dados em cenários concretos raramente são estáticas. A monitorização da ocorrência de data drift envolve a comparação da distribuição de dados de entrada com os dados utilizados como base para o modelo. As ferramentas de monitorização permitem configurar processos automatizados para detetar e alertar quando ocorre um desvio significativo.

Deteção de model drift

À semelhança do data drift, o model drift envolve o acompanhamento de alterações nas previsões do modelo ao longo do tempo. As ferramentas de monitorização ativam o registo e a comparação do desempenho do modelo, permitindo identificar se a eficácia do modelo se degradou.

De que forma as ferramentas de monitorização de modelos facilitam a monitorização de modelos

Várias plataformas open source simplificam o ciclo de vida de machine learning. Uma abordagem fundamental é a capacidade de acompanhar e gerir experiências. Vejamos como estas ferramentas ajudam a manter os modelos sob controlo.

Experiment Tracking

Estas plataformas permitem registar e organizar experiências, facilitando a comparação de diferentes execuções e a identificação dos modelos mais bem sucedidos. Registam parâmetros, métricas e elementos, proporcionando uma visão global do seu processo de desenvolvimento de modelos.

Registo de modelos

Os registos de modelos funcionam como centros centrais para a gestão e o controlo de versões dos modelos. Isto garante que cada implementação se baseia numa versão específica do modelo, facilitando a reversão no caso de surgirem problemas.

Implementação e monitorização de modelos

Estas plataformas simplificam o processo de implementação, tornando fácil a transição da experimentação de modelos para a sua implementação na produção. Além disso, fornecem integrações com ferramentas de monitorização, permitindo acompanhar de perto o desempenho do modelo implementado.

Pensamentos finais

A monitorização de modelos é uma parte integrante do pipeline de data science que garante a eficácia contínua dos modelos de machine learning. Várias ferramentas, com o MLflow como exemplo, surgem como poderosos aliados, oferecendo funcionalidades que simplificam o acompanhamento de experiências, o controlo de versões de modelos e a monitorização da implementação. Ao tirar partido destas ferramentas, os cientistas de dados podem enfrentar com confiança as complexidades da gestão e monitorização de modelos, contribuindo para o sucesso sustentado dos seus esforços de machine learning.

Nuno ChicóriaGuia para a monitorização de modelos de machine learning
read more

Cinco problemas diários que o MLFlow resolve

Na Xpand IT, temos muito orgulho no nosso workflow XP4DS e gostamos de nos rodear de ferramentas que tornem o nosso trabalho mais simples e os nossos resultados melhores. Entre essas ferramentas, existe um local especial para o MLFlow.

Se ainda não ouviu falar do MLFlow, está na altura de conectar o seu modem do séc. XX porque está na altura de se familiarizar com o mundo tecnológico!

MLFlow é uma ferramenta open-source que ajuda a fazer a gestão do ciclo de vida de uma experiência de machine learning desde o treino do primeiro modelo até ao modelo incrível que seguirá para produção e resolverá todos os problemas.

MLFlow abrange 3 grandes tópicos:

  • Tracking: guarda e faz queries sobre experiências (código, dados, configurações e resultados);
  • Projects: package para reproduzires experiências em qualquer plataforma;
  • Models: formato geral para fazer o deployment de modelos.

O MLFlow é agnóstico de qualquer biblioteca. Funciona com qualquer biblioteca de machine learning e em qualquer linguagem de programação sendo que todas as suas funções são acessíveis através de uma REST API e de CLI. O projeto também inclui uma Python API, R API e Java API.

1. Lembra-se com precisão do ROC AUC? (Métricas+ Log de Parâmetros)

Acontece aos melhores. Durante a primeira iteração obtemos um modelo com boas métricas de validação. Continuamos a iterar o modelo, esperançosos de que iremos encontrar um melhor conjunto de hiper parâmetros quando nos apercebemos que o melhor modelo era mesmo o primeiro. Ao fim de horas a queimar pestanas, é impossível lembrarmos-nos da primeira combinação de hiper parâmetros. Mas não mais! O MLFlow vem acabar com este problema. Com o registo de modelos, é possível encontrar num local toda a informação sobre esses mesmo modelos. Desde métricas de validação a hiper parâmetros, é até possível acrescentar tags personalizadas. Na API, é ainda possível comparar todos os modelos treinados e ordena-los por qualquer métrica ou tag à nossa escolha.

2. Funciona no seu computador ¯_(ツ)_/¯ (Log de Modelos + Ambiente de Trabalho)

Enquanto Data Scientist, criamos um modelo incrível que resolve todos os problemas. No entanto, quando o fazemos chegar aos nossos colegas, o mesmo não funciona. Pode ser uma biblioteca que precisa de ser atualizada ou simplesmente algum bruxedo que está a acontecer no background. Mais uma vez, MLFlow salva o dia! Paralelo ao registo de métricas, é possível guardar o modelo (treinado), o conda environment, e qualquer outro ficheiro que achemos importante. Desta maneira, os nossos colegas não terão qualquer problema em replicar a nossa experiência.

3. Para além das experiências (Registo de Modelos)

Da mesma maneira que é possível fazer o log de modelos a cada experiência, cada modelo que esteve em produção pode também ser guardado. Através da UI do MLFlow é possível aceder a todas as versões do modelo que está em deployment. Ainda mais importante, quando escolhemos o melhor modelo para produção, é possível regista-lo de forma a que toda a equipa saiba que é aquele o modelo que seguirá para staging e produção.

4. Não existe espaço para Lone Wolves no MLFlow (Trabalho de Equipa)

MLFlow leva o termo “trabalho de equipa” até ao próximo nível aumentando tanto o trabalho dentro da equipa e entre equipas. Para a equipa de Data Science, cada membro pode submeter e ver os modelos submetidos por cada membro, fazer comparações entre modelos e importar modelos dos colegas. Enquanto equipa, podem também colocar em staging o modelo que acham melhor para produção. Estes terão de ser aprovados e validados pela equipa responsável por essas tarefas. Com isto, todo o pipeline de DS está presente no MLFlow.

5. Modelo está pronto! (Deployment para Produção)

O fim está próximo. Vê a luz ao fundo do túnel e todo aquele trabalho está prestes a ser recompensado. Só falta fazer o deployment do modelo e, mais uma vez, o MLFlow tem a solução. Com MLFlow Models estamos preparados para enviar o modelo treinado para deployment em qualquer plataforma. Isto, combinado com a ferramenta de logging, cria a ferramenta perfeita para uma monitorização constante da performance dos modelos ao longo do tempo para que seja possível alterar o modelo, caso necessário!

Conclusão

Como se tornou evidente, o MLFlow é uma ferramenta que procura resolver (e com grande sucesso) muitos dos problemas que o Data Scientist enfrenta durante a sua rotina diária de trabalho. Desde o primeiro momento em que treinamos um modelo ao momento em que este entra em produção, o MLFlow é uma ferramenta com a qual podemos contar para tornar todo o processo de Data Science muito mais fácil. Sendo open source, o MLFlow é uma ferramenta que evolui a cada dia que passa e uma ferramenta essencial para o Data Scientist do século XXI!

Nuno ChicóriaCinco problemas diários que o MLFlow resolve
read more