Segurança pronta para empresas: Compatível com ISO 27001 + SOC 2 Tipo I.

Link to this sectionIntegração do MLflow com o Ultralytics YOLO#

MLflow experiment tracking with Ultralytics YOLO

Link to this sectionIntrodução#

O registro de experimentos é um aspecto crucial dos fluxos de trabalho de machine learning que permite o acompanhamento de várias métricas, parâmetros e artefatos. Isso ajuda a melhorar a reprodutibilidade do modelo, depurar problemas e aumentar o desempenho do modelo. O Ultralytics YOLO, conhecido pelas suas capacidades de object detection em tempo real, oferece agora integração com o MLflow, uma plataforma open-source para a gestão completa do ciclo de vida de machine learning.

Esta página de documentação é um guia abrangente para configurar e utilizar as capacidades de registro do MLflow no teu projeto Ultralytics YOLO.

Link to this sectionO que é o MLflow?#

MLflow é uma plataforma open-source desenvolvida pela Databricks para gerir o ciclo de vida completo de machine learning. Inclui ferramentas para rastrear experimentos, empacotar código em execuções reproduzíveis, e partilhar e implementar modelos. O MLflow foi concebido para funcionar com qualquer biblioteca de machine learning e linguagem de programação.

Link to this sectionRecursos#

  • Registro de Métricas: Registra métricas no final de cada época e no final do treinamento.
  • Registro de Parâmetros: Registra todos os parâmetros utilizados no treinamento.
  • Registro de Artefatos: Registra artefatos do modelo, incluindo pesos e arquivos de configuração, no final do treinamento.

Link to this sectionConfiguração e Pré-requisitos#

Certifica-te de que o MLflow está instalado. Caso contrário, instala-o usando pip:

pip install mlflow

Certifica-te de que o registro do MLflow está ativado nas definições do Ultralytics. Normalmente, isto é controlado pela chave mlflow nas definições. Vê a página de settings para mais informações.

Atualizar Definições do MLflow no Ultralytics

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

Link to this sectionComo usar#

Link to this sectionComandos#

  1. Definir 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 argumento project=<project> ao treinar um modelo YOLO, ex: yolo train project=my_project.

  2. Definir um Nome de Execução: Semelhante à definição do nome do projeto, podes definir o nome da execução através de uma variável de ambiente:

    export MLFLOW_RUN=YOUR_RUN_NAME

    Ou utiliza o argumento name=<name> ao treinar um modelo YOLO, ex: yolo train project=my_project name=my_name.

  3. Iniciar Servidor Local MLflow: Para iniciar o rastreio, utiliza:

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

    Isto iniciará um servidor local em http://127.0.0.1:5000 por padrão e guardará todos os registros do MLflow no diretório 'runs/mlflow'. Para apontar as tuas execuções de treinamento para um servidor de rastreio diferente, exporta MLFLOW_TRACKING_URI antes do treinamento:

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  4. Manter a Execução do MLflow Ativa Após o Treinamento: Por padrão, o Ultralytics termina a execução do MLflow automaticamente quando o treinamento termina. Para manter a execução aberta (por exemplo, para registrar métricas adicionais ou artefatos do mesmo notebook), define MLFLOW_KEEP_RUN_ACTIVE como True antes do treinamento:

    export MLFLOW_KEEP_RUN_ACTIVE=True

    O valor é lido sem distinguir maiúsculas de minúsculas; apenas a string true ativa este comportamento, e qualquer outro valor (incluindo não definido) mantém o padrão de fechar a execução. Lembra-te de fechá-la manualmente depois com mlflow.end_run().

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

Link to this sectionRegistro (Logging)#

The logging is taken care of by the on_pretrain_routine_end, on_fit_epoch_end, and on_train_end callback functions. These functions are automatically called during the respective stages of the training process, and they handle the logging of parameters, metrics, and artifacts.

Link to this sectionExemplos#

  1. Registro de Métricas Personalizadas: Podes adicionar métricas personalizadas para serem registradas modificando o dicionário trainer.metrics antes da chamada de on_fit_epoch_end.

  2. Ver Experimento: Para visualizar os teus registros, navega até ao teu servidor MLflow (normalmente http://127.0.0.1:5000) e seleciona o teu experimento e execução. Interface de rastreio de experimentos MLflow para YOLO

  3. Ver Execução: As execuções são modelos individuais dentro de um experimento. Clica numa Execução e vê os detalhes da mesma, incluindo artefatos carregados e pesos do modelo. Detalhes da execução do MLflow com artefatos YOLO

Link to this sectionDesativar o MLflow#

Para desativar o registro do MLflow:

yolo settings mlflow=False

Link to this sectionConclusão#

A integração de registro do MLflow com o Ultralytics YOLO oferece uma forma simplificada de manter o controle dos teus machine learning experiments. Permite-te monitorizar métricas de desempenho e gerir artefatos de forma eficaz, auxiliando assim no desenvolvimento e implementação robustos de modelos. Para mais detalhes, por favor visita a documentação oficial do MLflow.

Link to this sectionFAQ#

Link to this sectionComo configuro o registro do MLflow com o Ultralytics YOLO?#

Para configurar o registro do MLflow com o Ultralytics YOLO, primeiro precisas de garantir que o MLflow está instalado. Podes instalá-lo usando pip:

pip install mlflow

A seguir, ativa o registro do MLflow nas definições do Ultralytics. Isto pode ser controlado usando a chave mlflow. Para mais informações, vê o guia de definições.

Atualizar Definições do MLflow no Ultralytics
from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Finalmente, inicia um servidor local MLflow para rastreio:

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

Link to this sectionQue métricas e parâmetros posso registrar usando o MLflow com o Ultralytics YOLO?#

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

  • Registro de Métricas: Rastreia métricas no final de cada epoch e após a conclusão do treinamento.
  • Registro de Parâmetros: Registra todos os parâmetros utilizados no processo de treinamento.
  • Registro de Artefatos: Guarda artefatos do modelo, como pesos e arquivos de configuração, após o treinamento.

Para informações mais detalhadas, visita a documentação de rastreio do Ultralytics YOLO.

Link to this sectionPosso desativar o registro do MLflow depois de ativado?#

Sim, podes desativar o registro do MLflow para o Ultralytics YOLO atualizando as definições. Eis como podes fazê-lo usando a CLI:

yolo settings mlflow=False

Para mais personalização e reposição de definições, consulta o guia de definições.

Link to this sectionComo posso iniciar e parar um servidor MLflow para rastreio no Ultralytics YOLO?#

Para iniciar um servidor MLflow para rastrear os teus experimentos no Ultralytics YOLO, usa 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 instâncias do servidor MLflow em execução, usa o seguinte comando bash:

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

Consulta a secção de comandos para mais opções de comandos.

Link to this sectionComo mantenho a execução do MLflow ativa após o término do treinamento?#

Define a variável de ambiente MLFLOW_KEEP_RUN_ACTIVE como True antes do treinamento:

export MLFLOW_KEEP_RUN_ACTIVE=True

Por padrão, isto é False, pelo que o Ultralytics chama mlflow.end_run() assim que o treinamento termina. Com MLFLOW_KEEP_RUN_ACTIVE=True, a execução permanece aberta para que possas registrar métricas, parâmetros ou artefatos adicionais a partir da mesma sessão Python — fecha-a tu mesmo com mlflow.end_run() quando terminares. O valor é lido sem distinguir maiúsculas de minúsculas; apenas true ativa este comportamento.

Link to this sectionQuais são os benefícios de integrar o MLflow com o Ultralytics YOLO para rastreio de experimentos?#

Integrar o MLflow com o Ultralytics YOLO oferece vários benefícios para gerir os teus experimentos de machine learning:

  • Rastreio de Experimentos Melhorado: Rastreia e compara facilmente diferentes execuções e os seus resultados.
  • Reprodutibilidade do Modelo Melhorada: Garante que os teus experimentos são reproduzíveis através do registro de todos os parâmetros e artefatos.
  • Monitorização de Desempenho: Visualiza métricas de desempenho ao longo do tempo para tomar decisões baseadas em dados para melhorias do modelo.
  • Fluxo de Trabalho Simplificado: Automatiza o processo de registro para te focares mais no desenvolvimento do modelo em vez do rastreio manual.
  • Desenvolvimento Colaborativo: Partilha os resultados dos experimentos com membros da equipa para uma melhor colaboração e partilha de conhecimentos.

Para uma visão aprofundada sobre a configuração e aproveitamento do MLflow com o Ultralytics YOLO, explora a documentação de Integração do MLflow com o Ultralytics YOLO.

Comentários