Integração do MLflow com o Ultralytics YOLO#
Introdução#
O registro de experimentos é um aspecto crucial dos fluxos de trabalho de machine learning que permite rastrear várias métricas, parâmetros e artefatos. Ele ajuda a melhorar a reprodutibilidade do modelo, depurar problemas e aprimorar o desempenho do modelo. O Ultralytics YOLO, conhecido por suas capacidades de detecção de objetos em tempo real, agora oferece integração com o MLflow, uma plataforma de código aberto para o gerenciamento completo do ciclo de vida de machine learning.
Esta página de documentação é um guia abrangente para configurar e utilizar as capacidades de registro do MLflow no teu projeto Ultralytics YOLO.
O que é o MLflow?#
O MLflow é uma plataforma de código aberto desenvolvida pela Databricks para gerenciar o ciclo de vida de ponta a ponta de machine learning. Ela inclui ferramentas para rastrear experimentos, empacotar código em execuções reprodutíveis e compartilhar e implantar modelos. O MLflow foi projetado para funcionar com qualquer biblioteca de machine learning e linguagem de programação.
Recursos#
- Registro de Métricas: Registra métricas no final de cada época e no final do treinamento.
- Registro de Parâmetros: Registra todos os parâmetros utilizados no treinamento.
- Registro de Artefatos: Registra artefatos do modelo, incluindo pesos e arquivos de configuração, no final do treinamento.
Configuração e Pré-requisitos#
Certifica-te de que o MLflow está instalado. Caso contrário, instala-o usando pip:
pip install mlflowCertifique-se de que o registro do MLflow esteja ativado nas configurações do Ultralytics. Normalmente, isso é controlado pela chave de configurações mlflow. Consulte a página de configurações para obter mais informações.
No ambiente Python, chame o método update no objeto settings para alterar suas configurações:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Como usar#
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_NAMEOu use o argumento
project=<project>ao treinar um modelo YOLO, ou seja,yolo train project=my_project. -
Definir um Nome de Execução: Semelhante à 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_NAMEOu use o argumento
name=<name>ao treinar um modelo YOLO, ou seja,yolo train project=my_project name=my_name. -
Iniciar Servidor Local MLflow: Para iniciar o rastreio, utiliza:
mlflow server --backend-store-uri runs/mlflowIsso iniciará um servidor local em
http://127.0.0.1:5000por padrão e salvará todos os logs do mlflow no diretório 'runs/mlflow'. Para apontar suas execuções de treinamento para um servidor de rastreamento diferente, exporteMLFLOW_TRACKING_URIantes do treinamento:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Manter a Execução do MLflow Ativa Após o Treinamento: Por padrão, o Ultralytics encerra a execução do MLflow automaticamente quando o treinamento termina. Para manter a execução aberta (por exemplo, para registrar métricas ou artefatos adicionais do mesmo notebook), defina
MLFLOW_KEEP_RUN_ACTIVEcomoTrueantes do treinamento:export MLFLOW_KEEP_RUN_ACTIVE=TrueO valor é analisado sem diferenciar maiúsculas de minúsculas; apenas a string
trueativa esse comportamento, e qualquer outro valor (incluindo não definido) mantém o padrão de fechar a execução. Lembre-se de fechá-la manualmente depois commlflow.end_run(). -
Encerrar Instâncias do Servidor MLflow: Para parar todas as instâncias do MLflow em execução, executa:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Registro (Logging)#
O registro é feito pelas funções de callback on_pretrain_routine_end, on_fit_epoch_end e on_train_end. Essas funções são chamadas automaticamente durante os respectivos estágios do processo de treinamento e cuidam do registro de parâmetros, métricas e artefatos.
Exemplos#
-
Registrando Métricas Personalizadas: Você pode adicionar métricas personalizadas para serem registradas modificando o dicionário
trainer.metricsantes queon_fit_epoch_endseja chamado. -
Visualizar Experimento: Para visualizar seus logs, navegue até o seu servidor MLflow (geralmente
http://127.0.0.1:5000) e selecione seu experimento e execução.
-
Ver Execução: As execuções são modelos individuais dentro de um experimento. Clica numa Execução e vê os detalhes da mesma, incluindo artefatos carregados e pesos do modelo.

Desativar o MLflow#
Para desativar o registro do MLflow:
yolo settings mlflow=FalseConclusão#
A integração de registro do MLflow com o Ultralytics YOLO oferece uma maneira simplificada de acompanhar seus experimentos de machine learning. Ela capacita você a monitorar métricas de desempenho e gerenciar artefatos de forma eficaz, auxiliando assim no desenvolvimento e implantação robustos de modelos. Para mais detalhes, visite a documentação oficial do MLflow.
FAQ#
Como configuro o registro do MLflow com o Ultralytics YOLO?#
Para configurar o registro do MLflow com o Ultralytics YOLO, primeiro precisas de garantir que o MLflow está instalado. Podes instalá-lo usando pip:
pip install mlflowEm seguida, ative o registro do MLflow nas configurações do Ultralytics. Isso pode ser controlado usando a chave mlflow. Para obter mais informações, consulte o guia de configurações.
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Finalmente, inicia um servidor local MLflow para rastreio:
mlflow server --backend-store-uri runs/mlflowQue métricas e parâmetros posso registrar usando o MLflow com o Ultralytics YOLO?#
O Ultralytics YOLO com MLflow suporta o registro de várias métricas, parâmetros e artefatos durante todo o processo de treinamento:
- Registro de Métricas: Rastreia métricas no final de cada época e após a conclusão do treinamento.
- Registro de Parâmetros: Registra todos os parâmetros utilizados no processo de treinamento.
- Registro de Artefatos: Guarda artefatos do modelo, como pesos e arquivos de configuração, após o treinamento.
Para informações mais detalhadas, visite a documentação de rastreamento do Ultralytics YOLO.
Posso desativar o registro do MLflow depois de ativado?#
Sim, podes desativar o registro do MLflow para o Ultralytics YOLO atualizando as definições. Eis como podes fazê-lo usando a CLI:
yolo settings mlflow=FalsePara mais personalizações e redefinição de configurações, consulte o guia de configurações.
Como posso iniciar e parar um servidor MLflow para rastreio no Ultralytics YOLO?#
Para iniciar um servidor MLflow para rastrear os teus experimentos no Ultralytics YOLO, usa o seguinte comando:
mlflow server --backend-store-uri runs/mlflowEste comando inicia um servidor local em http://127.0.0.1:5000 por padrão. Se precisares de parar instâncias do servidor MLflow em execução, usa o seguinte comando bash:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9Consulte a seção de comandos para mais opções de comandos.
Como mantenho a execução do MLflow ativa após o término do treinamento?#
Defina a variável de ambiente MLFLOW_KEEP_RUN_ACTIVE como True antes de treinar:
export MLFLOW_KEEP_RUN_ACTIVE=TruePor padrão, isto é False, por isso o Ultralytics chama mlflow.end_run() assim que o treinamento termina. Com MLFLOW_KEEP_RUN_ACTIVE=True, a execução permanece aberta para que possas registar métricas, parâmetros ou artefatos adicionais da mesma sessão Python — fecha-a tu próprio com mlflow.end_run() quando terminares. O valor é analisado ignorando maiúsculas e minúsculas; apenas true ativa este comportamento.
Quais são os benefícios de integrar o MLflow com o Ultralytics YOLO para rastreio de experimentos?#
Integrar o MLflow com o Ultralytics YOLO oferece vários benefícios para gerir os teus experimentos de machine learning:
- Rastreio de Experimentos Melhorado: Rastreia e compara facilmente diferentes execuções e os seus resultados.
- Reprodutibilidade do Modelo Melhorada: Garante que os teus experimentos são reproduzíveis através do registro de todos os parâmetros e artefatos.
- Monitorização de Desempenho: Visualiza métricas de desempenho ao longo do tempo para tomar decisões baseadas em dados para melhorias do modelo.
- Fluxo de Trabalho Simplificado: Automatiza o processo de registro para te focares mais no desenvolvimento do modelo em vez do rastreio manual.
- Desenvolvimento Colaborativo: Partilha os resultados dos experimentos com membros da equipa para uma melhor colaboração e partilha de conhecimentos.
Para uma análise aprofundada de como configurar e tirar partido do MLflow com o Ultralytics YOLO, explora a documentação MLflow Integration for Ultralytics YOLO.