Ir al contenido

Integración de MLflow para Ultralytics YOLO

Ecosistema de 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 varias métricas, parámetros y artefactos. Ayuda a mejorar la reproducibilidad del modelo, depurar problemas y mejorar el rendimiento del modelo. Ultralytics YOLO, conocido por sus capacidades de detección de objetos en tiempo real, ahora ofrece 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 tu 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 el seguimiento de experimentos, el empaquetado de código en ejecuciones reproducibles y el intercambio e implementación de 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 las 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úrate de que MLflow esté instalado. Si no lo está, instálalo usando pip:

pip install mlflow

Asegúrese de que el registro de MLflow esté habilitado en la configuración de Ultralytics. Por lo general, esto se controla mediante la configuración mlflow clave. Consulte el ajustes página para más información.

Actualizar la configuración de Ultralytics MLflow

Dentro del entorno de python, llama al update método en el settings objeto para cambiar tus ajustes:

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Si prefieres usar la interfaz de línea de comandos, los siguientes comandos te permitirán modificar tus ajustes:

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

¿Cómo usar?

Comandos

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

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    O use el project=<project> argumento al entrenar un modelo YOLO, es decir, yolo train project=my_project.

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

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    O use el name=<name> argumento al entrenar un modelo YOLO, es decir, yolo train project=my_project name=my_name.

  3. Iniciar el servidor MLflow local: Para empezar a rastrear, utilice:

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

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

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

El registro se realiza mediante el on_pretrain_routine_end, on_fit_epoch_end, y on_train_end funciones de callback. Estas funciones se llaman automáticamente durante las respectivas etapas del proceso de entrenamiento, y se encargan del registro de parámetros, métricas y artefactos.

Ejemplos

  1. Registro de métricas personalizadas: Puedes añadir métricas personalizadas para ser registradas modificando el trainer.metrics diccionario antes on_fit_epoch_end es llamado.

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

  3. Ver ejecución: Las ejecuciones son modelos individuales dentro de un experimento. Haga clic en una ejecución y vea los detalles de la ejecución, incluidos los artefactos cargados y los pesos del modelo. Ejecución MLflow de YOLO

Desactivación de MLflow

Para desactivar el registro de MLflow:

yolo settings mlflow=False

Conclusión

La integración del registro de MLflow con Ultralytics YOLO ofrece una forma optimizada 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, lo que ayuda al desarrollo e implementación de modelos robustos. Para obtener más detalles, 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 debes asegurarte de que MLflow esté instalado. Puedes instalarlo usando pip:

pip install mlflow

A continuación, active el registro de MLflow en la configuración de Ultralytics. Esto se puede controlar utilizando el mlflow clave. Para obtener más información, consulte el 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

Finalmente, inicie un servidor MLflow local para el seguimiento:

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

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

Ultralytics YOLO con MLflow permite registrar 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 los artefactos del modelo, como los pesos y los archivos de configuración, después del entrenamiento.

Para obtener información más detallada, visita la documentación de seguimiento YOLO de Ultralytics.

¿Puedo desactivar el registro de MLflow una vez que está activado?

Sí, puedes desactivar el registro de MLflow para Ultralytics YOLO actualizando la configuración. Aquí te mostramos cómo puedes hacerlo usando la CLI:

yolo settings mlflow=False

Para obtener más información sobre la personalización y el restablecimiento de la configuración, consulta la guía de configuración.

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

Para iniciar un servidor MLflow para rastrear tus experimentos en Ultralytics YOLO, utiliza 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 necesitas detener las instancias del servidor MLflow en ejecución, utiliza el siguiente comando bash:

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

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

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

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

  • Seguimiento de experimentos mejorado: Realice un seguimiento y compare fácilmente diferentes ejecuciones y sus resultados.
  • Mayor reproducibilidad del modelo: Asegúrese de que sus experimentos sean reproducibles registrando todos los parámetros y artefactos.
  • Monitorizació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 optimizado: Automatice el proceso de registro para centrarse más en el desarrollo del modelo en lugar del seguimiento manual.
  • Desarrollo Colaborativo: Comparta los resultados de los experimentos con los miembros del equipo para una mejor colaboración e intercambio de conocimientos.

Para un análisis en profundidad de la configuración y el aprovechamiento de MLflow con Ultralytics YOLO, explore la documentación de Integración de MLflow para Ultralytics YOLO.



📅 Creado hace 1 año ✏️ Actualizado hace 4 meses

Comentarios