Integração do MLflow com Ultralytics YOLO#
Introdução#
O registro de experimentos é um aspecto essencial dos fluxos de trabalho de aprendizado de máquina, permitindo acompanhar várias métricas, parâmetros e artefatos. Isso ajuda a aumentar a reprodutibilidade dos modelos, depurar problemas e melhorar o desempenho dos modelos. O Ultralytics YOLO, conhecido pelos recursos de detecção de objetos em tempo real, agora oferece integração com o MLflow, uma plataforma de código aberto para gerenciamento completo do ciclo de vida do aprendizado de máquina.
Esta página da documentação é um guia abrangente para configurar e usar os recursos de registro do MLflow no teu projeto Ultralytics YOLO.
O que é MLflow?#
O MLflow é uma plataforma de código aberto desenvolvida pela Databricks para gerenciar o ciclo de vida completo do aprendizado de máquina. Inclui ferramentas para acompanhar experimentos, empacotar código em execuções reproduzíveis e compartilhar e implantar modelos. O MLflow foi projetado para funcionar com qualquer biblioteca de aprendizado de máquina e linguagem de programação.
Recursos#
- Registro de métricas: Registra taxas de aprendizado, perdas de treinamento e métricas de validação ao final de cada época.
- Registro de parâmetros: Registra todos os parâmetros usados no treinamento.
- Registro de artefatos: Registra artefatos do modelo, incluindo pesos e arquivos de configuração, ao final do treinamento.
Configuração e pré-requisitos#
Verifica se o MLflow está instalado. Caso contrário, instala-o usando pip:
pip install mlflowVerifica se o registro do MLflow está ativado nas configurações da Ultralytics. Normalmente, isso é controlado pela chave mlflow nas configurações. Consulta a página de configurações para mais informações.
No ambiente Python, chama o método update no objeto settings para alterar as configurações:
from ultralytics import settings
# Atualizar uma configuração
settings.update({"mlflow": True})
# Redefinir as configurações para os valores padrão
settings.reset()Como usar#
Comandos#
-
Definir um nome de projeto: Podes definir o nome do projeto por meio de uma variável de ambiente:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEOu usa o argumento
project=<project>ao treinar um modelo YOLO, por exemplo,yolo train project=my_project. -
Definir um nome de execução: Assim como no nome do projeto, podes definir o nome da execução por meio de uma variável de ambiente:
export MLFLOW_RUN=YOUR_RUN_NAMEOu usa 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çar a acompanhar, usa:
mlflow server --backend-store-uri runs/mlflowIsso iniciará um servidor local em
http://127.0.0.1:5000por padrão e salvará todos os registros do MLflow no diretório 'runs/mlflow'. Para direcionar as execuções de treinamento a outro servidor de acompanhamento, defineMLFLOW_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, a Ultralytics encerra automaticamente a execução do MLflow quando o treinamento termina. Para manter a execução aberta (por exemplo, para registrar métricas ou artefatos adicionais no mesmo notebook), define
MLFLOW_KEEP_RUN_ACTIVEcomoTrueantes do treinamento:export MLFLOW_KEEP_RUN_ACTIVE=TrueOs valores
1,true,yes,on,yetativam esse comportamento (sem distinção entre maiúsculas e minúsculas). Qualquer outro valor, inclusive uma variável não definida, mantém o comportamento padrão de fechar a execução. Lembra-te de fechá-la manualmente depois commlflow.end_run().
Registro de dados#
O registo é feito pelas funções on_pretrain_routine_end, on_train_epoch_end, on_fit_epoch_end e on_train_end de retorno de chamada. Essas funções são chamadas automaticamente durante as respetivas etapas do processo de treino e tratam do registo de parâmetros, métricas e artefactos.
Exemplos#
-
Registo de métricas personalizadas: podes adicionar métricas personalizadas para registo modificando o dicionário
trainer.metricsantes da chamada deon_fit_epoch_end. -
Ver a experiência: para veres os teus registos, acede ao teu servidor MLflow (normalmente
http://127.0.0.1:5000) e seleciona a tua experiência e a execução.
-
Ver a execução: as execuções são modelos individuais dentro de uma experiência. Clica numa execução para veres os respetivos detalhes, 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 aprendizagem automática. Permite monitorizar métricas de desempenho e gerir artefactos de forma eficaz, contribuindo para um desenvolvimento e uma implementação robustos de modelos. Para mais detalhes, consulta a documentação oficial do MLflow.
Perguntas frequentes#
Para configurar o registo do MLflow com o Ultralytics YOLO, primeiro tens de garantir que o MLflow está instalado. Podes instalá-lo com pip:
pip install mlflowEm seguida, ativa o registo do MLflow nas definições do Ultralytics. Podes controlá-lo com a chave
mlflow. Para mais informações, consulta o guia de definições.Atualizar as configurações do MLflow da Ultralyticsfrom ultralytics import settings # Atualizar uma configuração settings.update({"mlflow": True}) # Redefinir as configurações para os valores padrão 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 as métricas no final de cada época e quando o treino termina.
- 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 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 fazê-lo com a CLI:
yolo settings mlflow=FalsePara personalizar mais e repor as definições, consulta o guia de definições.
Para iniciares um servidor MLflow e acompanhar as tuas experiências no Ultralytics YOLO, utiliza o seguinte comando:
mlflow server --backend-store-uri runs/mlflowPor predefinição, este comando inicia um servidor local em
http://127.0.0.1:5000. PrimeCtrl+Cnesse terminal para o parar.Consulta a secção de comandos para veres 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, esta variável tem o valor
False, pelo que o Ultralytics chamamlflow.end_run()quando o treino termina. ComMLFLOW_KEEP_RUN_ACTIVE=True, a execução permanece aberta para poderes registar métricas, parâmetros ou artefactos adicionais na mesma sessão Python — fecha-a tu commlflow.end_run()quando terminares. Os valores1,true,yes,on,yetativam esse 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 aprendizagem automática:
- Acompanhamento melhorado de experiências: acompanha e compara facilmente diferentes execuções e os respetivos resultados.
- Maior reprodutibilidade dos modelos: garante a reprodutibilidade das tuas experiências 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 dos modelos do que no acompanhamento manual.
- Desenvolvimento colaborativo: partilha os resultados das experiências com os membros da equipa para facilitar a colaboração e a partilha de conhecimentos.
Para conheceres em profundidade a configuração e utilização do MLflow com o Ultralytics YOLO, consulta a documentação Integração do MLflow com o Ultralytics YOLO.