Controle de Experimentos de Machine Learning com o MLflow

As empresas que estão iniciando o uso de softwares de gerenciamento como o MLOps (Machine Learning Operations) pela primeira vez, podem considerar que é algo bastante desafiador. Além disso, escolher entre as diversas ferramentas open-source pode ser difícil devido às suas variadas características técnicas. Para ajudar os desenvolvedores, o OSSInsight.io criou uma lista de classificação baseada nas métricas do Github, como stars, issues e pull requests. De acordo com essa avaliação, as 5 principais ferramentas MLOps para o 2023 são: Jina, MLflow, NNI, Kubeflow e Label Studio.

Neste artigo, vamos explorar o ciclo de vida do machine learning e como o MLflow se integra a ele. Para obter informações adicionais, acesse o nosso Blog.

O ciclo de vida dos modelos de machine learning

Vamos começar pelo básico: o machine learning (ML) é uma área da inteligência artificial focada no desenvolvimento de algoritmos ou modelos para processar grandes conjuntos de dados e criar modelos de previsão sem a necessidade de realizar uma programação explícita. A categorização mais simples divide os modelos de ML em Aprendizado Supervisionado, que emprega técnicas de regressão e classificação, e Aprendizado Não Supervisionado, que se baseia em técnicas de agrupamento e redução de dimensionalidade.

A construção de modelos de ML consiste em duas etapas principais: treinamento e previsão. Na fase de treinamento, o algoritmo ou código utiliza dados de entrada e saída relevantes para os objetivos do desenvolvedor na criação de um modelo preditivo. Após a construção, sua eficiência é avaliada através de previsões com dados conhecidos para determinar sua precisão.

Contudo, a breve explicação acima é baseada na suposição de uma única “iteração” e que o resultado atende às especificações técnicas pré-estabelecidas. No entanto, no dia a dia de um desenvolvedor, criar modelos de ML envolve tarefas complexas que requerem múltiplos experimentos e tentativas. Como resultado, esse conjunto de experimentos leva a vários modelos e conjuntos de dados a serem testados para garantir a máxima eficiência, tornando-o desafiador e muitas vezes exigindo que os usuários usem planilhas de Excel para o controle de parâmetros e métricas.

Como você deve ter notado, trabalhar com projetos de ML envolve processos complexos que incluem várias etapas como a definição do problema, a coleta e a manipulação de dados, a análise de engenharia, o treinamento, a avaliação, a implementação, os testes A/B e o monitoramento, todas elas sendo parte do ciclo de vida do modelo de ML. Por essa razão, os desenvolvedores usam ferramentas como o MLflow para gerenciar eficientemente seus projetos de ML.

Introdução a softwares de workflow: MLflow

O MLflow é uma plataforma de código aberto projetada para gerenciar todo o ciclo de vida dos modelos de machine learning. Ele visa simplificar as etapas de experimentação, reprodutibilidade, implementação e gestão através de seus quatro módulos:

  • MLflow Tracking: permite rastrear os resultados de modelos de ML, registrando parâmetros e métricas, além de fornecer uma interface de usuário para facilitar a visualização dos resultados.
  • MLflow Projects: permite organizar e empacotar seu código de ML em projetos facilmente transportáveis, garantindo a reprodutibilidade em outras plataformas.
  • MLflow Models: fornece um formato padronizado para a implementação e gestão de seus modelos de ML de forma eficiente e organizada.
  • MLflow Model Registry: fornece uma ferramenta de repositório centralizada para o gerenciamento do ciclo de vida.

O MLflow foi desenvolvido para ser compatível com qualquer biblioteca de ML e pode ser integrado a uma ampla variedade de ambientes, seja executado on-premises ou na nuvem. Ele pode ser acessado por meio de sua API REST e CLI com qualquer linguagem de programação. Além disso, o MLflow disponibiliza APIs em Python, R e Java para simplificar o uso.

Vantagens do MLflow

O MLflow torna o processo de rastreamento de informação mais eficiente e simples. Ao invés de controlar manualmente o registro de dados através de planilhas, você pode registrá-los com apenas uma linha de código “mlflow.tensorflow.autolog()”. Também é possível selecionar parâmetros e métricas específicos com comandos como .log_param() e .log_metrics().

Além disso, a interface do MLflow permite que os desenvolvedores visualizem vários valores registrados, como a taxa de aprendizado, o número de epochs, a precisão de validação, entre outros. A interface é atualizada automaticamente com linhas adicionais à medida que os usuários realizam experimentos em um modelo de ML, permitindo uma análise e comparação eficazes dos resultados. O MLflow também fornece opções de filtragem baseadas em critérios específicos (por exemplo, log_loss>0,08) além de organizar experimentos com base em parâmetros ou métricas.

Desde o seu lançamento, o MLflow foi integrado a diversas plataformas, como Conda, Google Cloud, Kubernetes, Docker, TensorFlow, PyTorch, entre outras, dessa forma se mostrando uma ferramenta estável e com a capacidade de oferecer escalabilidade conforme o crescimento do projeto de ML.

Interface de usuário do MLflow. Fonte MLflow

Guia de instalação rápida 

Nesta seção, mostraremos como instalar e importar o MLflow no seu código. O tutorial utiliza o método exigido no Jupyter Notebook, portanto, se você estiver usando uma IDE diferente, recomendamos que revise a documentação correspondente.

Para instalar o MLflow basta usar o seguinte comando:

!pip install mlflow

Para conhecer a versão atual:

!mlflow --version

Após a instalação da biblioteca, o próximo passo é acessar a interface. Para acessar ao painel de controle e comparar os experimentos, basta executar o comando “mlflow ui” no terminal, iniciando assim o servidor em na URL “http://127.0.0.1:5000/”. A seguir, a interface apresentará informações como Start Time, User, Source, Parameters, Metrics e muito mais. Para visualizar informações adicionais, clique no nome do experimento.

!mlflow ui

O próximo passo é usar o MLflow para conduzir experimentos em modelos de treinamento e acompanhar as execuções na interface de usuário do MLflow.

Quais tendências podemos esperar ver nos próximos anos?

À medida que mais empresas adotam tecnologias de inteligência artificial, é provável que ocorram avanços significativos e, simultaneamente, um aumento no uso de dados. Esperamos ver a integração de conjuntos de dados cada vez mais complexos e diversificados, compilados a partir de múltiplas fontes e formatos.

Do ponto de vista da automação do fluxo de trabalho, esperamos ver um aprimoramento contínuo na criação de ferramentas intuitivas para facilitar o processo. Ao mesmo tempo, ferramentas como o MLflow vão melhorar e se tornar mais fáceis de usar, tornando-as acessíveis a uma ampla gama de usuários.

De acordo com um artigo publicado no InsideBIGDATA, Moses Guttmann, CEO e cofundador da ClearML, afirma que: “os MLOps estão aqui para ficar e seu sucesso dependerá de mais do que apenas obter uma solução moderna e avançada. Ao adotar essas práticas recomendadas, as empresas podem estabelecer uma base sólida para o crescimento sustentável dos MLOps.”

Em resumo, nos próximos anos, veremos crescimento e desenvolvimento contínuos em processamento de dados e ML, focados em melhorar a confiabilidade, transparência e ética dos sistemas de inteligência artificial.

Scroll to Top