Integración de MLflow para Ultralytics YOLO
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
-
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
. -
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
. -
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 elMLFLOW_TRACKING_URI
variable de entorno. -
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
-
Registro de métricas personalizadas: Puedes añadir métricas personalizadas para ser registradas modificando el
trainer.metrics
diccionario anteson_fit_epoch_end
es llamado. -
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. -
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.
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.