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 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 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.
Características
- Registo de métricas: Regista as 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
Certifica-te de que o MLflow está instalado. Se não estiver, instala-o utilizando o pip:
Certifica-te de que o registo do MLflow está ativado nas definições de Ultralytics . Normalmente, isto é controlado pelas definições mflow
chave. Vê a definições para mais informações.
Actualiza Ultralytics MLflow Settings
No ambiente Python , chama o comando update
no método settings
para alterar as tuas definições:
Como utilizar
Comandos
-
Define um nome de projeto: Podes definir o nome do projeto através de uma variável de ambiente:
Ou utiliza o botão project=<project>
quando treinas um modelo YOLO , ou seja yolo train project=my_project
.
-
Define um nome de execução: De forma semelhante à definição de um nome de projeto, podes definir o nome de execução através de uma variável de ambiente:
Ou utiliza o botão name=<name>
quando treinas um modelo YOLO , ou seja yolo train project=my_project name=my_name
.
-
Inicia o servidor MLflow local: Para iniciar o rastreamento, usa:
Isto irá iniciar um servidor local em http://127.0.0.1:5000 por predefinição e guarda todos os registos do mlflow no diretório 'runs/mlflow'. Para especificar um URI diferente, define o parâmetro MLFLOW_TRACKING_URI
variável de ambiente.
-
Desliga as instâncias do servidor MLflow: Para parar todas as instâncias do MLflow em execução, executa:
Registo
O registo é efectuado pelo on_pretrain_routine_end
, on_fit_epoch_end
e on_train_end
funções de retorno de chamada. 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: Podes 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, navega para o seu servidor MLflow (normalmente http://127.0.0.1:5000) e selecciona a sua experiência e executa-a.
-
Ver correr: As execuções são modelos individuais dentro de uma experiência. Clica numa execução e vê os detalhes da execução, incluindo os artefactos carregados e os pesos dos modelos.
Desativar o MLflow
Para desativar o registo do MLflow:
Conclusão
A integração do registo do MLflow com 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 no desenvolvimento e implementação de modelos robustos. Para mais informações, consulta a documentação oficial do MLflow.