Ir para o conteúdo
Ir para insights Blog

Trabalhar de forma eficiente com o MLflow 3.0

Trabalhar de forma eficiente com o MLflow 3.0
Escrito por
Data Science Lab
Publicado em
17 de julho de 2025

O que há de novo e como aplicar na prática?

Porquê o MLflow?

Os projetos de machine learning estão a tornar-se mais complexos. Muitas vezes, vários cientistas de dados e engenheiros de dados trabalham em equipa nos mesmos modelos. É importante que os modelos sejam reprodutíveis, escaláveis e fáceis de gerir ao longo de todo o processo. Com vários modelos, conjuntos de dados, notebooks e scripts, é fácil perder a visão de conjunto se não houver uma estrutura clara. O MLOps tornou-se indispensável porque normaliza e automatiza o trabalho, tornando-o escalável. Neste contexto, o MLflow ajuda a manter o controlo do fluxo de trabalho de machine learning. 

Com o MLflow, pode acompanhar experiências, registar modelos e consultar automaticamente métricas de desempenho, como accuracy, precision e recall, diretamente na interface. Sem código adicional, mas com mais controlo. 

Foi lançada recentemente a versão 3.0 do MLflow, com várias funcionalidades novas que respondem às tendências mais recentes, como GenAI e LLMs, e à necessidade de modelos de data science maiores, mais rápidos e reprodutíveis. 

O que há de novo no MLflow 3.0?

O MLflow 3.0 introduz várias melhorias importantes que permitem trabalhar mais depressa, manter uma visão mais clara e aplicá-lo num leque mais alargado de situações. 

Introdução à arquitetura LoggedModel.

O maior avanço na área de deep learning é a melhoria do acompanhamento dos modelos. Embora o MLflow 2.0 já permitisse tecnicamente registar vários checkpoints de modelos, esse processo não estava normalizado e, muitas vezes, faltava uma ligação direta entre um modelo registado e o contexto em que tinha sido treinado e avaliado. O acompanhamento renovado oferece uma rastreabilidade abrangente entre diferentes modelos, runs e métricas de avaliação através da arquitetura LoggedModel. Com esta arquitetura, é possível registar vários checkpoints de modelos e metadados numa única run e acompanhar o respetivo desempenho em diferentes datasets. Isto é especialmente útil em workflows de deep learning, quando pretende guardar e comparar modelos em diferentes momentos do treino. Pode registar vários checkpoints durante um treino e encontrá-los diretamente com os dados de desempenho em diferentes datasets. Ao utilizar o parâmetro step nas funções de registo, pode registar checkpoints em momentos específicos do treino. Cada modelo registado recebe um ID único, que permite identificá-lo facilmente mais tarde. Por fim, pode selecionar o modelo com melhor desempenho entre os vários checkpoints com base nas métricas de desempenho. 

Em suma: já não precisa de organizar tudo manualmente. O MLflow fá-lo por si. Cada variante de modelo registada recebe um ID único, associado ao seu contexto, à etapa de treino e aos resultados da avaliação. Pode encontrar facilmente qual foi o modelo registado em cada momento e qual foi o seu desempenho.

Suporte para LLMs e GenAI

O MLflow oferece agora:

  • Registo de prompts e acompanhamento dos resultados gerados;
  • Pode registar prompts e resultados gerados, o que facilita a reprodução e a comparação de experiências com LLMs. 
  • Avaliação através da GenAI Evaluation Suite;
  • Com a GenAI Evaluation Suite, pode gerir aplicações de GenAI tal como faz com modelos tradicionais de machine learning. Permite não só medir a qualidade das aplicações, mas também melhorá-la e mantê-la ao longo do ciclo de vida. 
  • Um prompt registry.
    O MLflow 3.0 disponibiliza um prompt registry para criar prompts melhores e reutilizáveis. Pode melhorar automaticamente os seus prompts com base no feedback da avaliação e em datasets rotulados. Em breve, será publicado um artigo específico sobre como utilizar eficazmente a avaliação de LLM com o MLflow 3.0.

Caso de uso: classificação de imagens com MobileNetV2

Dados e pré-processamento

Utilizamos o Intel Image Classification 

um conjunto de fotografias de paisagens do Kaggle, categorizadas em diferentes classes. Depois de dividir os dados em conjuntos de treino, validação e teste, aplicamos data augmentation com Keras. 

Captura de ecrã de código para uma camada que aplica transformações aleatórias aos dados.

Abaixo, apresentamos exemplos de como ficam as imagens após a aplicação de data augmentation.

Nove versões da mesma fotografia de uma montanha após diferentes edições.

Em seguida, fazemos o pré-processamento com a mesma pipeline do MobileNetV2.

Modelo MobileNetV2 e integração com o MLflow

Escolhemos o MobileNetV2 pelo equilíbrio entre desempenho e velocidade. O modelo é leve e pré-treinado, e congelamos as camadas de base porque não queremos treinar novamente todos os pesos.

Captura de ecrã de código Python que constrói um modelo Keras.

Em vez de autolog, optamos deliberadamente pelo logging manual. Isto permite controlar melhor o que é ou não registado e as informações que guardamos sobre o modelo. É essencial para uma avaliação escalável. Registamos checkpoints por epoch, diferentes métricas por dataset e parâmetros por variante do modelo. Uma callback personalizada do MLflow regista tudo automaticamente após cada epoch.

Captura de ecrã de código com a função log_model_metrics.

Esta função é utilizada numa classe de callback personalizada que, durante o treino, regista após cada epoch as informações sobre o modelo e a respetiva execução de treino.

Captura de ecrã de código Python com uma callback que regista dados no MLflow a cada epoch.

Treino do modelo e gestão de execuções

Agora que o modelo está compilado, podemos treiná-lo. Como também queremos utilizar o MLflow para acompanhar o treino e visualizar o desempenho do modelo, primeiro temos de iniciar uma experiência de tracking. É aqui que se indica onde encontrar todas as execuções de treino e se atribui um nome à experiência.

Captura de ecrã de código que configura a pasta do MLflow e a experiência.

O modelo está pronto para ser treinado, com cada execução acompanhada no MLflow. Isto permite realizar várias execuções dentro da mesma experiência e compará-las mais tarde.  Uma das nossas execuções tem o seguinte aspeto:

Captura de ecrã de código Python que regista métricas no MLflow.
Captura de ecrã de código que regista as métricas finais e uma matriz de confusão no MLflow.

Depois de executar o modelo, podemos utilizar a nova funcionalidade do MLflow 3.0 para encontrar os modelos registados e os respetivos resultados através do código abaixo:

Captura de ecrã de código que ordena os checkpoints do modelo por precisão.

Com o MLflow 3.0, é fácil filtrar por desempenho para selecionar o melhor modelo. A possibilidade de aplicar filtros é uma adição útil. Pode definir condições ao procurar o melhor modelo e o mais adequado, utilizando termos de pesquisa como “accuracy > 0.9”.  Assim, pode selecionar sempre o modelo com melhor desempenho para o guardar e implementar.

MLflow UI

Para este caso de estudo, analisámos qual o modelo com melhor desempenho em função da epoch. Na página Run da MLflow UI, podemos ver a execução e os modelos registados com os nomes corretos.

Captura de ecrã de uma execução no MLflow com parâmetros e métricas.

O separador Models mostra todos os modelos guardados e as respetivas métricas.

Captura de ecrã da vista geral das experiências no MLflow.

O separador artifacts reúne todos os ficheiros, resultados e figuras adicionais que podem ser guardados para cada modelo, como informações sobre o ambiente em que o modelo foi executado ou sobre a sua arquitetura.

Captura de ecrã da interface do MLflow com uma execução de modelo.

O MLflow também permite adicionar manualmente ficheiros/figuras a uma execução. Pode encontrá-los no separador Artifacts da execução, onde podem ser úteis para registar informações adicionais, como uma confusion matrix.

Captura de ecrã de uma matriz de confusão no MLflow.

Próximos passos

Este caso de uso mostra como pode usar o MLflow 3.0 para criar as bases de um workflow de machine learning estruturado e reproduzível. Mas há muito mais que pode fazer com MLOps para melhorar a sua plataforma.

Quer integrar mais o MLflow na sua organização? Considere:

  • Integração CI/CD para retraining & deployment automáticos;
  • Utilizar stage transitions no model registry ("Staging", "Production") para gerir melhor o ciclo de vida dos seus modelos;
  • Configurar alertas de model drift através de ferramentas de monitorização.

O que precisa depende da fase em que se encontra no seu processo de MLOps. A maturidade do seu processo de data science, a escala a que trabalha e a complexidade dos seus modelos são fatores importantes.

Principais conclusões

  • LLMs & GenAI: Várias novas funcionalidades para LLMs, incluindo o registo de prompts e a avaliação através da GenAI evaluation suite.
  • Avaliação consciente: O registo explícito em vez de autolog promove uma avaliação mais consciente dos modelos.
  • Graças à arquitetura alargada do LoggedModel, o modelo ocupa um lugar central em todo o ciclo de vida do MLflow. Isto dá-lhe controlo não só sobre as experiências, mas também sobre a gestão, o versionamento e o deployment dos modelos em produção, permitindo-lhe organizar todo o workflow de desenvolvimento de forma flexível e escalável.
  • UI: Um ambiente central onde todos os resultados relativos a modelos e execuções são apresentados de forma organizada numa UI, tornando rápida e simples a comparação entre modelos.
  • Seleção: Filtre facilmente o modelo com melhor desempenho para cada caso de uso.

Quer também começar a trabalhar com MLOps e deep learning na sua organização?

Na DSL, teremos todo o gosto em pensar consigo. Agende uma conversa inicial.

Blog

Também poderá ter interesse nisto,

Subscreva a nossa newsletter.

Quer ser a primeira pessoa a saber quando publicamos um novo artigo no blogue?

Introduza um endereço de e-mail válido.