Ir al contenido

Integración de MLflow para Ultralytics YOLO

Ecosistema MLflow

Introducción

El registro de experimentos es un aspecto crucial de los flujos de trabajo de aprendizaje automático que permite el seguimiento de diversas métricas, parámetros y artefactos. Ayuda a mejorar la reproducibilidad del modelo, depurar problemas y mejorar el rendimiento del modelo. Ultralytics YOLO MLflow, conocido por sus funciones de detección de objetos en tiempo real, ofrece ahora integración con MLflow, una plataforma de código abierto para la gestión completa del ciclo de vida del aprendizaje automático.

Esta página de documentación es una guía completa para configurar y utilizar las capacidades de registro de MLflow para su proyecto Ultralytics YOLO .

¿Qué es MLflow?

MLflow es una plataforma de código abierto desarrollada por Databricks para gestionar el ciclo de vida completo del aprendizaje automático. Incluye herramientas para rastrear experimentos, empaquetar código en ejecuciones reproducibles y compartir y desplegar modelos. MLflow está diseñado para funcionar con cualquier biblioteca de aprendizaje automático y lenguaje de programación.

Características

  • Registro de métricas: Registra métricas al final de cada época y al final del entrenamiento.
  • Registro de parámetros: Registra todos los parámetros utilizados en el entrenamiento.
  • Registro de artefactos: Registra los artefactos del modelo, incluidos los pesos y los archivos de configuración, al final del entrenamiento.

Configuración y requisitos previos

Asegúrese de que MLflow está instalado. Si no lo está, instálelo con pip:

pip install mlflow

Asegúrese de que el registro de MLflow está activado en los ajustes de Ultralytics . Normalmente, esto se controla mediante la configuración mlflow llave. Véase la ajustes para más información.

Actualizar la configuración de Ultralytics MLflow

En el entorno Python , llame a la función update en el settings para cambiar su configuración:

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Si prefiere utilizar la interfaz de línea de comandos, los siguientes comandos le permitirán modificar su configuración:

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

Cómo utilizarlo

Comandos

  1. Establecer un nombre de proyecto: Puedes establecer el nombre del proyecto a través de una variable de entorno:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    O utilice la función project=<project> al entrenar un modelo YOLO , es decir yolo train project=my_project.

  2. Establecer un nombre de ejecución: De forma similar a la configuración de un nombre de proyecto, puede establecer el nombre de ejecución a través de una variable de entorno:

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    O utilice la función name=<name> al entrenar un modelo YOLO , es decir yolo train project=my_project name=my_name.

  3. Inicie el servidor MLflow local: Para iniciar el seguimiento, utilice:

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

    Esto iniciará un servidor local en http://127.0.0.1:5000 por defecto y guarda todos los registros mlflow en el directorio 'runs/mlflow'. Para especificar un URI diferente, establezca el parámetro MLFLOW_TRACKING_URI variable de entorno.

  4. Detenga las instancias del servidor MLflow: Para detener todas las instancias de MLflow en ejecución, ejecute:

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

Registro

Del registro se encarga el on_pretrain_routine_end, on_fit_epoch_endy on_train_end funciones de devolución de llamada. Estas funciones se llaman automáticamente durante las respectivas etapas del proceso de formación y se encargan del registro de parámetros, métricas y artefactos.

Ejemplos

  1. Registro de métricas personalizadas: Puede añadir métricas personalizadas para que se registren modificando el archivo trainer.metrics diccionario antes on_fit_epoch_end se llama.

  2. Ver Experimento: Para ver sus registros, vaya a su servidor MLflow (normalmente http://127.0.0.1:5000), seleccione su experimento y ejecútelo. YOLO Experimento MLflow

  3. Ver carrera: Las ejecuciones son modelos individuales dentro de un experimento. Haga clic en un experimento para ver los detalles del experimento, incluidos los artefactos cargados y los pesos de los modelos. YOLO MLflow Run

Desactivar MLflow

Para desactivar el registro de MLflow:

yolo settings mlflow=False

Conclusión

La integración de MLflow logging con Ultralytics YOLO ofrece una forma simplificada de realizar un seguimiento de sus experimentos de aprendizaje automático. Le permite supervisar las métricas de rendimiento y gestionar los artefactos de forma eficaz, ayudando así a desarrollar y desplegar modelos sólidos. Para más información, visite la documentación oficial de MLflow.

PREGUNTAS FRECUENTES

¿Cómo configuro el registro de MLflow con Ultralytics YOLO ?

Para configurar el registro de MLflow con Ultralytics YOLO , primero debe asegurarse de que MLflow está instalado. Puede instalarlo usando pip:

pip install mlflow

A continuación, active el registro de MLflow en la configuración de Ultralytics . Esto se puede controlar mediante la opción mlflow clave. Para más información, consulte la sección guía de configuración.

Actualizar la configuración de 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

Por último, inicie un servidor MLflow local para el seguimiento:

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

¿Qué métricas y parámetros puedo registrar utilizando MLflow con Ultralytics YOLO ?

Ultralytics YOLO con MLflow soporta el registro de varias métricas, parámetros y artefactos a lo largo del proceso de entrenamiento:

  • Registro de métricas: Realiza un seguimiento de las métricas al final de cada época y al finalizar el entrenamiento.
  • Registro de parámetros: Registra todos los parámetros utilizados en el proceso de entrenamiento.
  • Registro de artefactos: Guarda artefactos del modelo como pesos y archivos de configuración después del entrenamiento.

Para obtener información más detallada, visite la documentación de seguimientoUltralytics YOLO .

¿Puedo desactivar el registro MLflow una vez activado?

Sí, puede desactivar el registro de MLflow para Ultralytics YOLO actualizando la configuración. A continuación se explica cómo hacerlo mediante la página CLI:

yolo settings mlflow=False

Para personalizar y restablecer los ajustes, consulta la guía de ajustes.

¿Cómo puedo iniciar y detener un servidor MLflow para el seguimiento de Ultralytics YOLO ?

Para iniciar un servidor MLflow para el seguimiento de sus experimentos en Ultralytics YOLO , utilice el siguiente comando:

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

Este comando inicia un servidor local en http://127.0.0.1:5000 por defecto. Si necesita detener la ejecución de instancias del servidor MLflow, utilice el siguiente comando bash :

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

Consulte la sección de comandos para ver más opciones de comandos.

¿Cuáles son las ventajas de integrar MLflow con Ultralytics YOLO para el seguimiento de experimentos?

La integración de MLflow con Ultralytics YOLO ofrece varias ventajas para la gestión de sus experimentos de aprendizaje automático:

  • Seguimiento de experimentos mejorado: Rastrea y compara fácilmente diferentes ejecuciones y sus resultados.
  • Mejora de la reproducibilidad de los modelos: Asegúrese de que sus experimentos son reproducibles registrando todos los parámetros y artefactos.
  • Supervisión del rendimiento: Visualice las métricas de rendimiento a lo largo del tiempo para tomar decisiones basadas en datos para mejorar el modelo.
  • Flujo de trabajo racionalizado: Automatice el proceso de registro para centrarse más en el desarrollo de modelos que en el seguimiento manual.
  • Desarrollo colaborativo: Comparta los resultados de los experimentos con los miembros del equipo para mejorar la colaboración y el intercambio de conocimientos.

Para obtener información detallada sobre la configuración y el uso de MLflow con Ultralytics YOLO , consulte la documentación de MLflow Integration for Ultralytics YOLO .

Creado hace 1 año ✏️ Actualizado hace 4 días

Comentarios