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 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:
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:
Cómo utilizarlo
Comandos
-
Establecer un nombre de proyecto: Puedes establecer el nombre del proyecto a través de una variable de entorno:
O utilice la función
project=<project>
al entrenar un modelo YOLO , es deciryolo train project=my_project
. -
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:
O utilice la función
name=<name>
al entrenar un modelo YOLO , es deciryolo train project=my_project name=my_name
. -
Inicie el servidor MLflow local: Para iniciar el seguimiento, utilice:
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. -
Detenga las instancias del servidor MLflow: Para detener todas las instancias de MLflow en ejecución, ejecute:
Registro
Del registro se encarga el on_pretrain_routine_end
, on_fit_epoch_end
y 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
-
Registro de métricas personalizadas: Puede añadir métricas personalizadas para que se registren modificando el archivo
trainer.metrics
diccionario anteson_fit_epoch_end
se llama. -
Ver Experimento: Para ver sus registros, vaya a su servidor MLflow (normalmente http://127.0.0.1:5000), seleccione su experimento y ejecútelo.
-
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.
Desactivar MLflow
Para desactivar el registro de MLflow:
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:
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
Por último, inicie un servidor MLflow local para el seguimiento:
¿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:
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:
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 :
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 .