Salta para o conteúdo

Integração do MLflow para Ultralytics YOLO

Ecossistema MLflow

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:

pip install mlflow

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:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Se preferires utilizar a interface de linha de comandos, os seguintes comandos permitem-te modificar as tuas definições:

# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Como utilizar

Comandos

  1. Define um nome de projeto: Podes definir o nome do projeto através de uma variável de ambiente:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

    Ou utiliza o botão project=<project> quando treinas um modelo YOLO , ou seja yolo train project=my_project.

  2. 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:

    export MLFLOW_RUN=<your_run_name>
    

    Ou utiliza o botão name=<name> quando treinas um modelo YOLO , ou seja yolo train project=my_project name=my_name.

  3. Inicia o servidor MLflow local: Para iniciar o rastreamento, usa:

    mlflow server --backend-store-uri runs/mlflow'
    

    Isto irá iniciar um servidor local em http://127.0.0.1:5000 por padrão e salva todos os logs do mlflow no diretório 'runs/mlflow'. Para especificar um URI diferente, define o parâmetro MLFLOW_TRACKING_URI variável de ambiente.

  4. Desliga as 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
    

Registo

O registo é efectuado pelo on_pretrain_routine_end, on_fit_epoch_ende 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

  1. Registo de métricas personalizadas: Podes adicionar métricas personalizadas para serem registadas, modificando o trainer.metrics dicionário antes on_fit_epoch_end é chamado.

  2. Ver experiência: Para ver os teus registos, navega para o teu servidor MLflow (normalmente http://127.0.0.1:5000), selecciona a tua experiência e executa-a. YOLO Experiência MLflow

  3. 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. YOLO MLflow Run

Desativar o MLflow

Para desativar o registo do MLflow:

yolo settings mlflow=False

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.

FAQ

Como posso configurar o registo do MLflow com Ultralytics YOLO ?

Para configurar o registo do MLflow com Ultralytics YOLO , primeiro tens de garantir que o MLflow está instalado. Podes instalá-lo utilizando o pip:

pip install mlflow

Em seguida, ativa o registo do MLflow em Ultralytics settings. Isso pode ser controlado usando a opção mlflow chave. Para mais informações, consulta a secção guia de definições.

Actualiza Ultralytics MLflow Settings

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Por fim, inicia um servidor MLflow local para rastreio:

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 do treino.
  • Registo de parâmetros: Regista todos os parâmetros utilizados no processo de treino.
  • Registo de artefactos: Salva artefatos do modelo como pesos e arquivos de configuração após o treinamento.

Para obter informações mais detalhadas, visita a documentação de acompanhamentoUltralytics YOLO .

Posso desativar o registo do MLflow depois de este estar ativado?

Sim, podes desativar o registo do MLflow para Ultralytics YOLO actualizando as definições. Eis como o podes fazer utilizando o CLI:

yolo settings mlflow=False

Para mais personalização e reposição das definições, consulta 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 tuas experiências em Ultralytics YOLO , utiliza o seguinte comando:

mlflow server --backend-store-uri runs/mlflow

Este comando inicia um servidor local em http://127.0.0.1:5000 por padrão. Se precisares de parar de executar instâncias do servidor MLflow, utiliza o seguinte comando bash :

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

Consulta a secção de comandos para obteres 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 gerir as suas experiências de aprendizagem automática:

  • Acompanhamento de experiências melhorado: Acompanha e compara facilmente diferentes execuções e os seus resultados.
  • Melhoria da reprodutibilidade do modelo: Assegura 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 tomar decisões baseadas em dados para melhorar o modelo.

Para uma análise aprofundada da configuração e utilização do MLflow com Ultralytics YOLO , explora a documentação da Integração do MLflow para Ultralytics YOLO .



Criado em 2023-11-12, Atualizado em 2024-07-05
Autores: glenn-jocher (8), Burhan-Q (1)

Comentários