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

  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 seus registos, navega para o seu servidor MLflow (normalmente http://127.0.0.1:5000) e selecciona a sua 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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (6), Burhan-Q (1)

Coment√°rios