Registar experiências YOLO do Ultralytics utilizando a integração do MLflow

Abirami Vina

4 min ler

30 de dezembro de 2024

Explore como a integração e o registo do MLflow podem elevar as suas experiências Ultralytics YOLO, permitindo um rastreio superior para aplicações de visão por computador.

Pode pensar-se num projeto de visão computacional como um puzzle. Essencialmente, ensina-se as máquinas a compreender os dados visuais juntando as peças do puzzle, como a recolha de um conjunto de dados, o treino de um modelo e a sua implementação. Quando tudo se encaixa, obtém-se um sistema que pode efetivamente analisar e dar sentido a imagens e vídeos.

Mas, tal como um verdadeiro puzzle, nem todas as partes de um projeto de visão por computador são simples. Tarefas como o acompanhamento de experiências (manter um registo das definições, configurações e dados) e o registo (capturar resultados e métricas de desempenho) podem exigir muito tempo e esforço. Embora estes passos sejam fundamentais para melhorar e aperfeiçoar os seus modelos de visão por computador, podem por vezes parecer um estrangulamento.

É aqui que entram em ação os modelos YOLO da Ultralytics e a sua integração com o MLflow. Modelos como o Ultralytics YOLO11 suportam uma vasta gama de tarefas de visão computacional, incluindo deteção de objectos, segmentação de instâncias e classificação de imagens. Estas capacidades permitem a criação de aplicações de visão computacional interessantes. Ter a opção de confiar em integrações como a do MLflow permite que os engenheiros de visão se concentrem no modelo em si, em vez de se perderem nos pormenores. 

Em particular, a integração do MLflow simplifica o processo através do registo de várias métricas, parâmetros e artefactos ao longo do processo de formação. Neste artigo, vamos explorar como funciona a integração do MLflow, as suas vantagens e como pode utilizá-la para otimizar os seus fluxos de trabalho do Ultralytics YOLO.

O que é o MLflow?

O MLflow é uma plataforma de código aberto (desenvolvida pela Databricks) concebida para simplificar e gerir todo o ciclo de vida da aprendizagem automática. Abrange o processo de desenvolvimento, implementação e manutenção de modelos de aprendizagem automática. 

O MLflow inclui os seguintes componentes principais:

  • Acompanhamento de experiências: Este componente concentra-se no registo de detalhes importantes, como definições do modelo, resultados e ficheiros para cada execução de treino do modelo. Ajuda-o a comparar modelos, a ver como as alterações afectam o desempenho e a encontrar o melhor.
  • Registo de modelos: É como um sistema de armazenamento para os seus modelos, onde pode manter um registo das diferentes versões e organizá-las por fases como teste, preparação e produção.
  • Empacotamento de projectos: O MLflow facilita o agrupamento dos seus projectos de aprendizagem automática, incluindo o código, as definições e as ferramentas necessárias, para que possam ser partilhados e utilizados de forma consistente entre equipas e ambientes.
  • Implementação de modelos: O MLflow fornece ferramentas para implementar rapidamente os seus modelos treinados em locais como estações de trabalho ou plataformas de nuvem, como AWS e Azure, tornando-os prontos para utilização no mundo real.
__wf_reserved_inherit
Fig. 1. Componentes do MLflow.

Os componentes do MLflow tornam o processo de aprendizagem automática mais fácil e mais eficiente de gerir. Através desta integração, o Ultralytics torna possível utilizar a funcionalidade de acompanhamento de experiências do MLflow para registar parâmetros, métricas e artefactos durante o treino de modelos YOLO. Torna simples o controlo e a comparação de diferentes versões do modelo YOLO.

A integração do MLflow simplifica a formação

Agora que já falámos sobre o que é o MLflow, vamos analisar os pormenores da integração do MLflow e as funcionalidades que oferece. 

A integração do MLflow foi criada para tornar o processo de formação mais eficiente e organizado, acompanhando e registando automaticamente aspectos importantes das suas experiências de visão computacional. Facilita três tipos principais de registo: métricas, parâmetros e artefactos.

Eis uma análise mais pormenorizada de cada tipo de registo:

  • Registo de métricas: As métricas são valores quantitativos que medem o desempenho do seu modelo durante o treino. Por exemplo, métricas como exatidão, precisão, recuperação ou perda são monitorizadas no final de cada época (uma passagem completa pelo seu conjunto de dados).
  • Registo de parâmetros: Parâmetros são as configurações que você define antes do início do treinamento do modelo, como taxa de aprendizado, tamanho do lote (o número de amostras processadas em uma etapa de treinamento) e o número de épocas. Esses parâmetros afetam significativamente o comportamento e o desempenho do seu modelo.
  • Registo de artefactos: Os artefactos são os resultados ou ficheiros gerados durante o treino. Isto inclui ficheiros essenciais como os pesos do modelo (os valores numéricos que o seu modelo aprende durante o treino), ficheiros de configuração (que armazenam as definições de treino) e outros dados relevantes.
__wf_reserved_inherit
Fig. 2. Principais caraterísticas de registo da integração do MLflow. Imagem do autor.

Como funciona a integração do MLflow

Pode explorar a documentação do Ultralytics para obter instruções passo a passo sobre como ativar a integração do MLflow. Uma vez configurada, a integração rastreia e regista automaticamente os principais detalhes das suas experiências de treino, conforme referido anteriormente. Isto elimina a necessidade de controlo manual e ajuda-o a concentrar-se no aperfeiçoamento dos seus modelos.

Com a integração do MLflow, todas as suas execuções de treino são armazenadas num único local, facilitando a comparação de resultados e a avaliação de diferentes configurações. Ao comparar os resultados registados, pode identificar as configurações com melhor desempenho e utilizar essas informações para melhorar os seus modelos. Isto garante que o seu fluxo de trabalho é mais eficiente, bem documentado e reproduzível.

Especificamente, cada sessão de treino é organizada numa experiência, que funciona como um contentor para várias execuções. Dentro de uma experiência, pode ver todas as execuções associadas, comparar o seu desempenho lado a lado e analisar tendências em diferentes configurações. 

Por exemplo, se estiver a testar várias taxas de aprendizagem ou tamanhos de lote com o Ultralytics YOLOv8, todas as execuções relacionadas são agrupadas na mesma experiência para facilitar a comparação e a análise, conforme mostrado abaixo.

__wf_reserved_inherit
Figura 3. Pode visualizar as experiências utilizando a integração do MLflow.

Entretanto, ao nível da execução individual, o MLflow fornece informações detalhadas sobre a sessão de treino específica. Pode visualizar métricas como a exatidão, a perda e a precisão ao longo das épocas, verificar os parâmetros de treino utilizados (por exemplo, tamanho do lote e taxa de aprendizagem) e aceder a artefactos gerados, como pesos de modelos e ficheiros de configuração. Estes detalhes são armazenados num formato organizado, tornando simples a revisão ou reprodução de qualquer execução.

Escolher a integração do MLflow: porque é que se destaca

À medida que percorre a documentação do Ultralytics e explora as integrações disponíveis, poderá dar por si a perguntar: O que distingue a integração do MLflow e porque é que a devo escolher para o meu fluxo de trabalho?

Com integrações como o TensorBoard, que também fornecem ferramentas para acompanhar métricas e visualizar resultados, é importante compreender as qualidades únicas que fazem com que a integração do MLflow se destaque. 

Eis por que razão o MLflow pode ser a escolha ideal para os seus projectos YOLO:

  • Interface de fácil utilização: O painel de controlo do MLflow facilita a visualização de experiências, a comparação de execuções e a análise de resultados, ajudando-o a identificar rapidamente as configurações com melhor desempenho.
  • Registo de métricas personalizadas: Os engenheiros de visão podem registar métricas personalizadas para além das métricas padrão, permitindo uma análise mais aprofundada específica para as necessidades do seu projeto.
  • Suporte para fluxos de trabalho em vários idiomas: O MLflow é compatível com várias linguagens de programação, incluindo Python, R e Java, facilitando a integração em diversos pipelines de aprendizagem automática.

Aplicações práticas do YOLO11 e da integração do MLflow

Para compreender melhor quando pode utilizar a integração do MLflow, consideremos uma aplicação de IA no sector da saúde em que é necessário treinar o YOLO11 para detetar tumores em imagens de raios X ou de tomografia computorizada. 

Neste cenário, o conjunto de dados consistiria em imagens médicas anotadas. Teria de experimentar várias configurações, como ajustar as taxas de aprendizagem, o tamanho dos lotes e as técnicas de pré-processamento de imagens, para obter uma precisão óptima. Uma vez que os riscos são elevados nos cuidados de saúde e a precisão e fiabilidade são fundamentais, o acompanhamento manual de cada experiência pode rapidamente tornar-se incontrolável.

__wf_reserved_inherit
Fig. 4. Deteção de tumores com o Ultralytics YOLO11.

A integração do MLflow responde a este desafio registando automaticamente os parâmetros, as métricas e os artefactos de cada experiência. Por exemplo, se modificar a taxa de aprendizagem ou aplicar uma nova estratégia de aumento, o MLflow regista estas alterações juntamente com as métricas de desempenho. Além disso, o MLflow guarda os pesos e as configurações dos modelos treinados, garantindo que os modelos bem sucedidos podem ser facilmente reproduzidos e implementados. 

Este é apenas um exemplo de como a integração do MLflow melhora a gestão de experiências em aplicações de visão de IA. As mesmas caraterísticas aplicam-se a outras aplicações de visão por computador, incluindo:

  • Condução autónoma: O YOLO11 pode ser utilizado para detetar e classificar peões, veículos e sinais de trânsito em tempo real para melhorar a segurança e a eficiência dos sistemas de condução autónoma.
  • Análise de retalho: Os modelos de deteção de objectos podem monitorizar o comportamento do cliente, acompanhar a colocação de produtos e otimizar o inventário, analisando a atividade na loja através de feeds de vídeo.
  • Segurança e vigilância: Os modelos podem ser treinados para detetar anomalias ou monitorizar a atividade em tempo real em áreas sensíveis para aumentar a segurança.

Vantagens da integração do MLflow

A integração do MLflow com os modelos YOLO torna a gestão das experiências de aprendizagem automática mais fácil e mais eficiente. Ao automatizar as principais tarefas e manter tudo organizado, permite-lhe concentrar-se na criação e melhoria dos seus modelos. Eis um resumo das principais vantagens:

  • Escalas para grandes projectos: A plataforma lida com várias experiências e modelos de forma eficiente, tornando-a adequada para equipas maiores e fluxos de trabalho complexos.
  • Histórico detalhado das experiências: A plataforma mantém um histórico completo de experiências, permitindo-lhe revisitar execuções anteriores, analisar configurações anteriores e aprender com resultados anteriores.
  • Opções de desativação e reposição: O registo do MLflow pode ser facilmente desativado quando não é necessário e as definições podem ser repostas para os valores predefinidos, oferecendo flexibilidade para se adaptar a requisitos de fluxo de trabalho variáveis.

Principais conclusões

A integração do MLflow torna a gestão e otimização das experiências Ultralytics YOLO mais fácil e eficiente. Ao rastrear automaticamente detalhes importantes, como parâmetros, métricas e artefatos, simplifica o processo e elimina o incômodo do gerenciamento manual de experimentos. 

Quer esteja a trabalhar em soluções de cuidados de saúde como a deteção de tumores, a melhorar os sistemas de condução autónoma ou a melhorar a análise de retalho, esta integração ajuda a manter tudo organizado e reproduzível. Com a sua interface intuitiva e flexibilidade, o MLflow permite que os programadores se concentrem na criação de melhores modelos e na promoção da inovação em aplicações de IA de visão.

Junte-se à nossa comunidade e consulte o nosso repositório GitHub para aprender sobre IA. Também pode explorar mais aplicações da visão computacional no fabrico ou da IA em carros autónomos nas nossas páginas de soluções.

Vamos construir juntos o futuro
da IA!

Comece a sua viagem com o futuro da aprendizagem automática

Comece gratuitamente
Ligação copiada para a área de transferência