Integração do MLflow com o Ultralytics YOLO#
Introdução#
O registo de experiências é um aspeto crucial dos fluxos de trabalho de machine learning, permitindo acompanhar várias métricas, parâmetros e artefactos. Ajuda a melhorar a reprodutibilidade dos modelos, a depurar problemas e a melhorar o desempenho dos modelos. O Ultralytics YOLO, conhecido pelas suas capacidades de deteção de objetos em tempo real, oferece agora integração com o MLflow, uma plataforma de código aberto para a gestão completa do ciclo de vida de machine learning.
Esta página de documentação é um guia completo para configurar e utilizar as capacidades de registo do MLflow no teu projeto Ultralytics YOLO.
O que é o MLflow?#
O MLflow é uma plataforma de código aberto desenvolvida pela Databricks para gerir o ciclo de vida completo de machine learning. Inclui ferramentas para acompanhar experiências, empacotar código em execuções reproduzíveis e partilhar e implementar modelos. O MLflow foi concebido para funcionar com qualquer biblioteca de machine learning e linguagem de programação.
Funcionalidades#
- Registo de métricas: Regista métricas no final de cada época e no final do treino.
- Registo de parâmetros: Regista todos os parâmetros utilizados no treino.
- Registo de artefactos: Regista os artefactos do modelo, incluindo pesos e ficheiros de configuração, no final do treino.
Configuração e pré-requisitos#
Garante que o MLflow está instalado. Caso contrário, instala-o utilizando pip:
pip install mlflowCertifica-te de que o registo do MLflow está ativado nas definições do Ultralytics. Normalmente, isto é controlado pela chave mlflow das definições. Consulta a página de definições para obter mais informações.
No ambiente Python, chama o método update no objeto settings para alterar as tuas definições:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Como utilizar#
Comandos#
-
Definir um nome de projeto: Podes definir o nome do projeto através de uma variável de ambiente:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEEm alternativa, utiliza o argumento
project=<project>ao treinar um modelo YOLO, por exemplo,yolo train project=my_project. -
Definir um nome de execução: Tal como acontece com a definição do nome do projeto, podes definir o nome da execução através de uma variável de ambiente:
export MLFLOW_RUN=YOUR_RUN_NAMEEm alternativa, utiliza o argumento
name=<name>ao treinar um modelo YOLO, por exemplo,yolo train project=my_project name=my_name. -
Iniciar um servidor MLflow local: Para começares a acompanhar, utiliza:
mlflow server --backend-store-uri runs/mlflowIsto iniciará, por predefinição, um servidor local em
http://127.0.0.1:5000e guardará todos os registos do mlflow no diretório 'runs/mlflow'. Para direcionares as tuas execuções de treino para outro servidor de acompanhamento, exportaMLFLOW_TRACKING_URIantes do treino:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Manter a execução do MLflow ativa após o treino: Por predefinição, o Ultralytics termina automaticamente a execução do MLflow quando o treino termina. Para manter a execução aberta (por exemplo, para registar métricas ou artefactos adicionais a partir do mesmo notebook), define
MLFLOW_KEEP_RUN_ACTIVEcomoTrueantes do treino:export MLFLOW_KEEP_RUN_ACTIVE=TrueOs valores
1,true,yes,on,yetativam este comportamento (sem distinção entre maiúsculas e minúsculas). Qualquer outro valor, incluindo uma variável não definida, mantém o comportamento predefinido de fechar a execução. Não te esqueças de a fechar manualmente depois commlflow.end_run().
Registo#
O registo é tratado por on_pretrain_routine_end, on_fit_epoch_end e on_train_end, que são funções de callback. Estas funções são chamadas automaticamente durante as respetivas fases do processo de treino e tratam do registo de parâmetros, métricas e artefactos.
Exemplos#
-
Registar métricas personalizadas: Podes adicionar métricas personalizadas para serem registadas, modificando o dicionário
trainer.metricsantes deon_fit_epoch_endser chamado. -
Ver experiência: Para ver os seus registos, navegue até ao seu servidor MLflow (normalmente
http://127.0.0.1:5000) e selecione a sua experiência e execução.
-
Ver execução: As execuções são modelos individuais dentro de uma experiência. Clique numa execução e veja os detalhes da execução, incluindo os artefactos carregados e os pesos do modelo.

Desativar o MLflow#
Para desativar o registo do MLflow:
yolo settings mlflow=FalseConclusão#
A integração do registo do MLflow com o Ultralytics YOLO oferece uma forma simplificada de acompanhar as tuas experiências de machine learning. Permite monitorizar eficazmente as métricas de desempenho e gerir artefactos, contribuindo assim para um desenvolvimento e uma implementação robustos de modelos. Para obteres mais informações, consulta a documentação oficial do MLflow.
Perguntas frequentes#
Para configurares o registo do MLflow com o Ultralytics YOLO, tens primeiro de garantir que o MLflow está instalado. Podes instalá-lo utilizando pip:
pip install mlflowEm seguida, ativa o registo do MLflow nas definições do Ultralytics. Isto pode ser controlado utilizando a chave
mlflow. Para obteres mais informações, consulta o guia de definições.Atualizar as definições do MLflow do Ultralyticsfrom ultralytics import settings # Update a setting settings.update({"mlflow": True}) # Reset settings to default values settings.reset()Por fim, inicia um servidor MLflow local para acompanhamento:
mlflow server --backend-store-uri runs/mlflowO Ultralytics YOLO com MLflow permite registar várias métricas, parâmetros e artefactos ao longo do processo de treino:
- Registo de métricas: Acompanha métricas no final de cada época e após a conclusão do treino.
- Registo de parâmetros: Regista todos os parâmetros utilizados no processo de treino.
- Registo de artefactos: Guarda artefactos do modelo, como pesos e ficheiros de configuração, após o treino.
Para obteres informações mais detalhadas, consulta a documentação de acompanhamento do Ultralytics YOLO.
Sim, podes desativar o registo do MLflow para o Ultralytics YOLO atualizando as definições. Eis como podes fazê-lo utilizando a CLI:
yolo settings mlflow=FalsePara obteres mais opções de personalização e repores as definições, consulta o guia de definições.
Para iniciares um servidor MLflow para acompanhar as tuas experiências no Ultralytics YOLO, utiliza o comando seguinte:
mlflow server --backend-store-uri runs/mlflowEste comando inicia, por predefinição, um servidor local em
http://127.0.0.1:5000. PrimeCtrl+Cnesse terminal para o parar.Consulta a secção de comandos para obteres mais opções de comandos.
Define a variável de ambiente
MLFLOW_KEEP_RUN_ACTIVEcomoTrueantes do treino:export MLFLOW_KEEP_RUN_ACTIVE=TruePor predefinição, isto é
False, pelo que o Ultralytics chamamlflow.end_run()quando o treino termina. ComMLFLOW_KEEP_RUN_ACTIVE=True, a execução permanece aberta para que possas registar métricas, parâmetros ou artefactos adicionais a partir da mesma sessão Python — fecha-a manualmente commlflow.end_run()quando terminares. Os valores1,true,yes,on,yetativam este comportamento (sem distinção entre maiúsculas e minúsculas).A integração do MLflow com o Ultralytics YOLO oferece várias vantagens para gerir as tuas experiências de machine learning:
- Acompanhamento aprimorado de experiências: Acompanha e compara facilmente diferentes execuções e os respetivos resultados.
- Melhor reprodutibilidade dos modelos: Garante que as tuas experiências são reproduzíveis, registando todos os parâmetros e artefactos.
- Monitorização do desempenho: Visualiza as métricas de desempenho ao longo do tempo para tomares decisões baseadas em dados e melhorares os modelos.
- Fluxo de trabalho simplificado: Automatiza o processo de registo para te concentrares mais no desenvolvimento de modelos do que no acompanhamento manual.
- Desenvolvimento colaborativo: Partilha os resultados das experiências com os membros da equipa para melhorar a colaboração e a partilha de conhecimento.
Para obteres uma visão aprofundada da configuração e utilização do MLflow com o Ultralytics YOLO, consulta a documentação sobre a Integração do MLflow com o Ultralytics YOLO.