Ir para o conteúdo

Integração do MLflow para Ultralytics YOLO

Ecossistema MLflow

Introdução

O registro de experimentos é um aspecto crucial dos fluxos de trabalho de aprendizado de máquina que permite o rastreamento de várias métricas, parâmetros e artefatos. Ajuda a aprimorar a reprodutibilidade do modelo, depurar problemas e melhorar o desempenho do modelo. O Ultralytics YOLO, conhecido por seus 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 de documentação é um guia abrangente para configurar e utilizar os recursos de registro do MLflow para o seu projeto Ultralytics YOLO.

O que é MLflow?

MLflow é uma plataforma de código aberto desenvolvida pela Databricks para gerenciar o ciclo de vida de machine learning de ponta a ponta. Inclui ferramentas para rastrear experimentos, empacotar código em execuções reproduzíveis e compartilhar e implantar modelos. O MLflow foi projetado para funcionar com qualquer biblioteca de machine learning e linguagem de programação.

Recursos

  • 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.
  • Registro de Artefatos: Registra artefatos do modelo, incluindo pesos e arquivos de configuração, ao final do treinamento.

Configuração e Pré-requisitos

Certifique-se de que o MLflow está instalado. Caso contrário, instale-o usando o pip:

pip install mlflow

Certifique-se de que o registo do MLflow está ativado nas configurações do Ultralytics. Normalmente, isso é controlado pelas configurações mlflow chave. Veja o configurações página para mais informações.

Atualizar as Configurações do Ultralytics MLflow

Dentro do 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()

Se você preferir usar a interface de linha de comando, os seguintes comandos permitirão que você modifique suas configurações:

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

Como Usar

Comandos

  1. Definir um Nome de Projeto: Pode definir o nome do projeto através de uma variável de ambiente:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    Ou use o project=<project> argumento ao treinar um modelo YOLO, i.e. yolo train project=my_project.

  2. Definir um Nome para a Execução: Semelhante à definição de um nome de projeto, você pode definir o nome da execução por meio de uma variável de ambiente:

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    Ou use o name=<name> argumento ao treinar um modelo YOLO, i.e. yolo train project=my_project name=my_name.

  3. Iniciar Servidor MLflow Local: Para começar o rastreamento, use:

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

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

  4. Encerrar 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
    

Logging

O registro é feito pelo on_pretrain_routine_end, on_fit_epoch_end, e on_train_end funções de callback. Essas funções são chamadas automaticamente durante os respectivos estágios do processo de treinamento e lidam com o registro de parâmetros, métricas e artefatos.

Exemplos

  1. Logging de Métricas Personalizadas: Pode adicionar métricas personalizadas a serem registadas modificando o trainer.metrics dicionário antes on_fit_epoch_end é chamado.

  2. Visualizar Experimento: Para visualizar os seus logs, navegue até ao seu servidor MLflow (normalmente http://127.0.0.1:5000) e selecione seu experimento e execute. Experimento YOLO MLflow

  3. Visualizar Execução: Execuções são modelos individuais dentro de um experimento. Clique em uma Execução e veja os detalhes da Execução, incluindo artefatos carregados e pesos do modelo. Execução YOLO MLflow

Desativando o MLflow

Para desativar o registro do MLflow:

yolo settings mlflow=False

Conclusão

A integração do registro MLflow com Ultralytics YOLO oferece uma maneira simplificada de acompanhar seus experimentos de aprendizado de máquina. Ele permite que você monitore as métricas de desempenho e gerencie os artefatos de forma eficaz, auxiliando assim no desenvolvimento e implantação robustos do modelo. Para mais detalhes, visite a documentação oficial do MLflow.

FAQ

Como configurar o registro MLflow com Ultralytics YOLO?

Para configurar o registro MLflow com Ultralytics YOLO, primeiro você precisa garantir que o MLflow esteja instalado. Você pode instalá-lo usando o pip:

pip install mlflow

Em seguida, ative o registro do MLflow nas configurações do Ultralytics. Isso pode ser controlado usando o mlflow chave. Para mais informações, consulte o guia de configurações.

Atualizar as Configurações do Ultralytics 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

Finalmente, inicie um servidor MLflow local para rastreamento:

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

Quais métricas e parâmetros posso registrar usando MLflow com Ultralytics YOLO?

O Ultralytics YOLO com MLflow suporta o registro de várias métricas, parâmetros e artefatos ao longo do processo de treinamento:

  • Registo de Métricas: Monitoriza 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.
  • Registro de Artefatos: 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 rastreamento YOLO da Ultralytics.

Posso desativar o registro do MLflow depois que ele é ativado?

Sim, você pode desativar o registro do MLflow para Ultralytics YOLO atualizando as configurações. Veja como você pode fazer isso usando a CLI:

yolo settings mlflow=False

Para mais personalização e redefinição de configurações, consulte o guia de configurações.

Como posso iniciar e parar um servidor MLflow para rastreamento Ultralytics YOLO?

Para iniciar um servidor MLflow para rastrear seus experimentos no Ultralytics YOLO, use 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 você precisar interromper a execução de instâncias do servidor MLflow, use o seguinte comando bash:

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

Consulte a seção de comandos para obter mais opções de comando.

Quais são os benefícios de integrar o MLflow com o Ultralytics YOLO para rastreamento de experimentos?

Integrar o MLflow com o Ultralytics YOLO oferece vários benefícios para gerenciar seus experimentos de machine learning:

  • Rastreamento de Experimentos Aprimorado: Rastreie e compare facilmente diferentes execuções e seus resultados.
  • Reprodutibilidade Aprimorada do Modelo: Garanta que seus experimentos sejam reproduzíveis registrando todos os parâmetros e artefatos.
  • Monitoramento de Desempenho: Visualize métricas de desempenho ao longo do tempo para tomar decisões orientadas por dados para melhorias no modelo.
  • Workflow Otimizado: Automatize o processo de registro para se concentrar mais no desenvolvimento do modelo do que no rastreamento manual.
  • Desenvolvimento Colaborativo: Compartilhe os resultados dos experimentos com os membros da equipe para melhor colaboração e compartilhamento de conhecimento.

Para uma análise aprofundada sobre como configurar e aproveitar o MLflow com Ultralytics YOLO, explore a documentação de Integração do MLflow para Ultralytics YOLO.



📅 Criado há 1 ano ✏️ Atualizado há 3 meses

Comentários