Integração do MLflow para Ultralytics YOLO
Introdução
O registo de experiências é um aspeto crucial dos fluxos de trabalho de aprendizagem automática que permite o acompanhamento de várias métricas, parâmetros e artefactos. Ajuda a melhorar a reprodutibilidade do modelo, a depurar problemas e a melhorar o desempenho do modelo. Ultralytics YOLO A solução MLflow, conhecida pelas suas capacidades de deteção de objectos 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 da aprendizagem automática.
Esta página de documentação é um guia completo para configurar e utilizar as capacidades de registo do MLflow para o seu projeto Ultralytics YOLO .
O que é o MLflow?
O MLflow é uma plataforma de código aberto desenvolvida pela Databricks para gerir o ciclo de vida da aprendizagem automática de ponta a ponta. 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 aprendizagem automática e linguagem de programação.
Caraterísticas
- 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 na formação.
- Registo de artefactos: Regista os artefactos do modelo, incluindo pesos e ficheiros de configuração, no final da formação.
Configuração e pré-requisitos
Certifique-se de que o MLflow está instalado. Se não estiver, instale-o utilizando o pip:
pip install mlflow
Certifique-se de que o registo do MLflow está ativado em Ultralytics settings. Normalmente, isto é controlado pelas definições mlflow
chave. Ver a definições para mais informações.
Atualizar Ultralytics Definições do MLflow
No ambiente Python , chame a função update
no método settings
para alterar as suas definições:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
Se preferir utilizar a interface de linha de comandos, os seguintes comandos permitir-lhe-ão modificar as suas definições:
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Como utilizar
Comandos
-
Definir um nome de projeto: É possível definir o nome do projeto através de uma variável de ambiente:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
Ou utilizar o
project=<project>
ao treinar um modelo YOLO , ou sejayolo train project=my_project
. -
Definir um nome de execução: De forma semelhante à definição de um nome de projeto, pode definir o nome de execução através de uma variável de ambiente:
export MLFLOW_RUN=YOUR_RUN_NAME
Ou utilizar o
name=<name>
ao treinar um modelo YOLO , ou sejayolo train project=my_project name=my_name
. -
Iniciar o servidor MLflow local: Para iniciar o rastreamento, use:
mlflow server --backend-store-uri runs/mlflow
Isso iniciará um servidor local em
http://127.0.0.1:5000
por defeito e guarda todos os registos do mlflow no diretório 'runs/mlflow'. Para especificar um URI diferente, defina a opçãoMLFLOW_TRACKING_URI
variável de ambiente. -
Eliminar instâncias do servidor MLflow: Para parar todas as instâncias do MLflow em execução, execute:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Registo
O registo é efectuado pelo on_pretrain_routine_end
, on_fit_epoch_end
e on_train_end
funções de retorno. Estas funções são chamadas automaticamente durante as respectivas fases do processo de formação e tratam do registo de parâmetros, métricas e artefactos.
Exemplos
-
Registo de métricas personalizadas: Pode adicionar métricas personalizadas para serem registadas, modificando o
trainer.metrics
dicionário anteson_fit_epoch_end
é chamado. -
Ver Experiência: Para ver os seus registos, navegue para o seu servidor MLflow (normalmente
http://127.0.0.1:5000
), selecione a sua experiência e execute-a. -
Ver corrida: 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 dos modelos.
Desativar o MLflow
Para desativar o registo do MLflow:
yolo settings mlflow=False
Conclusão
A integração do registo MLflow com o Ultralytics YOLO oferece uma forma simplificada de acompanhar as suas experiências de aprendizagem automática. Permite-lhe monitorizar as métricas de desempenho e gerir artefactos de forma eficaz, ajudando assim a desenvolver e implementar modelos robustos. Para mais pormenores, consulte a documentação oficial do MLflow.
FAQ
Como posso configurar o registo do MLflow com Ultralytics YOLO ?
Para configurar o registo do MLflow com Ultralytics YOLO , primeiro tem de garantir que o MLflow está instalado. Você pode instalá-lo usando pip:
pip install mlflow
Em seguida, active o registo do MLflow em Ultralytics settings. Isso pode ser controlado usando a opção mlflow
chave. Para mais informações, consulte a secção guia de definições.
Atualizar Ultralytics Definições do MLflow
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Por fim, inicie um servidor MLflow local para controlo:
mlflow server --backend-store-uri runs/mlflow
Que métricas e parâmetros posso registar utilizando o MLflow com Ultralytics YOLO ?
Ultralytics YOLO com o MLflow suporta o registo de várias métricas, parâmetros e artefactos ao longo do processo de formação:
- Registo de métricas: Regista as métricas no final de cada época e após a conclusão da formação.
- Registo de parâmetros: Regista todos os parâmetros utilizados no processo de formação.
- Registo de artefactos: Salva artefatos do modelo como pesos e arquivos de configuração após o treinamento.
Para obter informações mais detalhadas, visite a documentação de acompanhamentoUltralytics YOLO .
Posso desativar o registo do MLflow depois de este estar ativado?
Sim, pode desativar o registo do MLflow para Ultralytics YOLO actualizando as definições. Veja como fazer isso usando o CLI:
yolo settings mlflow=False
Para mais personalização e reposição das definições, consulte o guia de definições.
Como posso iniciar e parar um servidor MLflow para Ultralytics YOLO tracking?
Para iniciar um servidor MLflow para seguir as suas experiências em Ultralytics YOLO , utilize o seguinte comando:
mlflow server --backend-store-uri runs/mlflow
Este comando inicia um servidor local em http://127.0.0.1:5000
por defeito. Se precisar de parar de executar instâncias do servidor MLflow, utilize o seguinte comando bash :
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Consulte a secção de comandos para obter mais opções de comando.
Quais são as vantagens da integração do MLflow com Ultralytics YOLO para o acompanhamento de experiências?
A integração do MLflow com Ultralytics YOLO oferece várias vantagens para a gestão das suas experiências de aprendizagem automática:
- Acompanhamento de experiências melhorado: Acompanhe e compare facilmente diferentes execuções e os seus resultados.
- Melhoria da reprodutibilidade do modelo: Assegure-se de que as suas experiências são reproduzíveis, registando todos os parâmetros e artefactos.
- Monitorização do desempenho: Visualize as métricas de desempenho ao longo do tempo para tomar decisões baseadas em dados para melhorias do modelo.
- Fluxo de trabalho simplificado: Automatize o processo de registo para se concentrar mais no desenvolvimento de modelos do que no acompanhamento manual.
- Desenvolvimento colaborativo: Partilhe os resultados das experiências com os membros da equipa para uma melhor colaboração e partilha de conhecimentos.
Para uma análise aprofundada da configuração e utilização do MLflow com Ultralytics YOLO , explore a documentação da Integração do MLflow para Ultralytics YOLO .