Conoce YOLO26: IA de visión de nueva generación.
Ultralytics
Integraciones

Entrena y monitoriza remotamente YOLOv5 de Ultralytics usando ClearML

Explora nuestra asociación con ClearML para una experiencia mejorada con YOLOv5 de Ultralytics, con integración ML fluida, seguimiento de experimentos y más.

EQEquipo de Ultralytics
4 min read
Entrenamiento y monitorización de YOLOv5 con ClearML

En Ultralytics nos asociamos comercialmente con otras startups para ayudarnos a financiar la investigación y el desarrollo de nuestras increíbles herramientas de código abierto, como YOLOv5, para mantenerlas gratuitas para todos. Este artículo puede contener enlaces de afiliados a esos socios.

ClearML es nuestro socio más reciente: una caja de herramientas de código abierto diseñada para ahorrarte tiempo.

Con la misión de acelerar la adopción de ML, ClearML hace que integrar ML en cualquier producto de Software o Hardware sea sencillo.

Esta integración hace que sea aún más simple entrenar un modelo YOLOv5 y usar el gestor de experimentos de ClearML para rastrearlo automáticamente. Puedes especificar fácilmente un ID de versión de conjunto de datos de ClearML como entrada de datos, y se utilizará automáticamente para entrenar tu modelo.

Link to this sectionLleva el seguimiento de tus experimentos al siguiente nivel#

  • Realiza un seguimiento de cada ejecución de entrenamiento de YOLOv5 en el gestor de experimentos.
  • Versiona y accede fácilmente a tus datos de entrenamiento personalizados con la herramienta integrada de versionado de datos de ClearML.
  • Obtén el mejor mAP posible utilizando la optimización de hiperparámetros de ClearML.
  • Convierte tu modelo YOLOv5 recién entrenado en una API con solo unos pocos comandos usando ClearML Serving.

Depende de ti cuántas de estas herramientas quieras usar; puedes limitarte al gestor de experimentos o encadenarlas todas en un pipeline impresionante.

Link to this sectionConfiguración inicial#

Para realizar un seguimiento de tus experimentos y datos, ClearML necesita comunicarse con un servidor. Tienes dos opciones para esto: regístrate gratis en el servicio alojado de ClearML o configura tu propio servidor; consulta los documentos de implementación del servidor ClearML.

Incluso el servidor es de código abierto, así que si trabajas con datos sensibles, ¡no hay problema!

  1. Instala el paquete de Python clearml: pip install clearml
  2. Conecta el SDK de ClearML al servidor creando credenciales (ve arriba a la derecha a Settings → Workspace → Create new credentials), luego ejecuta el comando a continuación y sigue las instrucciones: clearml-init

¡Y voilà! Estás listo para comenzar...

Link to this sectionEntrenar YOLOv5 con ClearML#

Para habilitar el seguimiento de experimentos de ClearML, simplemente instala el paquete pip de ClearML.

pip install clearml

Esto habilitará la integración con el script de entrenamiento de YOLOv5. A partir de ahora, cada ejecución de entrenamiento será capturada y almacenada por el gestor de experimentos de ClearML. Si quieres cambiar el project_name o task_name, dirígete a nuestro logger personalizado, donde podrás cambiarlo: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Esto capturará:

  • Código fuente + cambios no confirmados
  • Paquetes instalados
  • (Hiper)parámetros
  • Archivos del modelo (usa --save-period n para guardar un punto de control cada n épocas)
  • Salida de consola
  • Escalares (mAP_0.5, mAP_0.5:0.95, precisión, recall, pérdidas, tasas de aprendizaje, ...)
  • Información general como detalles de la máquina, tiempo de ejecución, fecha de creación, etc.
  • Todas las gráficas producidas, como el correlograma de etiquetas y la matriz de confusión
  • Imágenes con BBox por época
  • Mosaico por época
  • Imágenes de validación por época

¡Nada mal! Ahora podemos visualizar toda esta información en la interfaz de usuario de ClearML para obtener una visión general de nuestro progreso de entrenamiento. Añade columnas personalizadas a la vista de tabla (como, por ejemplo, mAP_0.5) para que puedas ordenar fácilmente el modelo con mejor rendimiento. ¡O selecciona varios experimentos y compáralos directamente!

Hay aún más cosas que podemos hacer con toda esta información, como optimización de hiperparámetros y ejecución remota, ¡así que sigue leyendo para aprender cómo!

Link to this sectionGestión de versiones de datasets#

Versionar tus datos por separado de tu código es, por lo general, una buena idea y facilita también la obtención de la última versión. Este repositorio admite proporcionar un ID de versión de dataset, y se asegurará de obtener los datos si aún no están allí. Además, este flujo de trabajo también guarda el ID del dataset utilizado como parte de los parámetros de la tarea, ¡por lo que siempre sabrás con certeza qué datos se usaron en qué experimento!

Link to this sectionPrepara tu dataset#

El repositorio de YOLOv5 admite una serie de datasets diferentes mediante el uso de archivos YAML que contienen su información. Por defecto, los datasets se descargan a la carpeta ../datasets en relación con la carpeta raíz del repositorio. Así que si descargaste el dataset coco128 usando el enlace en el YAML o con los scripts proporcionados por yolov5, obtienes esta estructura de carpetas:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Pero este puede ser cualquier dataset que desees. Siéntete libre de usar el tuyo propio, siempre y cuando mantengas esta estructura de carpetas.

A continuación, ⚠️copia el archivo YAML correspondiente a la raíz de la carpeta del dataset⚠️. Estos archivos YAML contienen la información que ClearML necesitará para utilizar correctamente el dataset. Puedes crearlo tú mismo también, por supuesto; simplemente sigue la estructura de los YAML de ejemplo.

Básicamente, necesitamos las siguientes claves: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Link to this sectionSube tu dataset#

Para introducir este dataset en ClearML como un dataset versionado, ve a la carpeta raíz del dataset y ejecuta el siguiente comando:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

El comando clearml-data sync es en realidad un comando abreviado. También podrías ejecutar estos comandos uno tras otro:

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

Link to this sectionEjecuta el entrenamiento usando un dataset de ClearML#

Ahora que tienes un dataset de ClearML, puedes usarlo de forma muy sencilla para entrenar modelos YOLOv5 personalizados.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Link to this sectionOptimización de hiperparámetros#

Ahora que tenemos nuestros experimentos y la versión de los datos, ¡es hora de echar un vistazo a lo que podemos construir encima!

Usando la información del código, los paquetes instalados y los detalles del entorno, el experimento en sí es ahora completamente reproducible. De hecho, ClearML te permite clonar un experimento e incluso cambiar sus parámetros. Luego, podemos volver a ejecutarlo automáticamente con estos nuevos parámetros; ¡esto es básicamente lo que hace HPO!

Para ejecutar la optimización de hiperparámetros localmente, hemos incluido un script preconfigurado para ti. Solo asegúrate de que una tarea de entrenamiento se haya ejecutado al menos una vez, de modo que esté en el gestor de experimentos de ClearML; esencialmente, la clonaremos y cambiaremos sus hiperparámetros.

Necesitarás completar el ID de esta tarea de plantilla en el script que se encuentra en utils/loggers/clearml/hpo.py y luego simplemente ejecutarlo. Puedes cambiar task.execute_locally() a task.execute() para ponerlo en una cola de ClearML y hacer que un agente remoto trabaje en él en su lugar.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Link to this sectionEjecución remota (Avanzado)#

Ejecutar HPO localmente es muy útil, pero ¿qué pasa si queremos ejecutar nuestros experimentos en una máquina remota? Tal vez tengas acceso a una máquina GPU muy potente en tus instalaciones, o tengas algo de presupuesto para usar GPUs en la nube. Aquí es donde entra en juego el agente de ClearML.

Mira lo que puede hacer el agente aquí:

En resumen: cada experimento rastreado por el gestor de experimentos contiene suficiente información para reproducirlo en una máquina diferente (paquetes instalados, cambios no confirmados, etc.). Así que un agente de ClearML hace exactamente eso: escucha una cola en busca de tareas entrantes y, cuando encuentra una, recrea el entorno y la ejecuta mientras sigue informando escalares, gráficos, etc., al gestor de experimentos.

Puedes convertir cualquier máquina (una máquina virtual en la nube, una máquina con GPU local, tu propio portátil) en un agente de ClearML simplemente ejecutando:

clearml-agent daemon --queue [--docker]

Link to this sectionClonar, editar y poner en cola#

Con nuestro agente en funcionamiento, podemos darle algo de trabajo. ¿Recuerdas en la sección de HPO que podemos clonar una tarea y editar los hiperparámetros? ¡Podemos hacer eso desde la interfaz también!

🪄 Clona el experimento haciendo clic derecho sobre él

🎯 Edita los hiperparámetros a lo que desees

⏳ Pon la tarea en cola en cualquiera de las colas haciendo clic derecho sobre ella

Link to this sectionEjecutar una tarea de forma remota#

Ahora puedes clonar una tarea como explicamos anteriormente, o simplemente marca tu script actual añadiendo task.execute_remotely() y, al ejecutarlo, se pondrá en una cola para que el agente comience a trabajar en él.

Para ejecutar el script de entrenamiento de YOLOv5 de forma remota, todo lo que tienes que hacer es añadir esta línea al script train.py después de que se haya instanciado el logger de ClearML:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

¿Alguna pregunta? ¡Únete a nuestra comunidad y deja tu pregunta hoy mismo!

Explore solutions

Real-time AI that works with your team

IA en robótica

Potencia máquinas más inteligentes con modelos Ultralytics YOLO. La IA de visión en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Real-time AI that works with your team

IA en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La visión artificial por IA permite la inspección de paquetes, clasificación, seguimiento de vehículos y monitoreo de seguridad en almacenes en tiempo real.
Más información
Real-time AI that works with your team

IA en el sector minorista

Reimagina el comercio minorista con los modelos de Ultralytics YOLO. La visión artificial por IA potencia el seguimiento de inventario, el monitoreo de estantes, la gestión de colas y mejores perspectivas sobre los clientes.
Más información
Real-time AI that works with your team

IA en la atención sanitaria

Crea soluciones de salud con los modelos de Ultralytics YOLO. La IA de visión en la sanidad potencia imágenes médicas más rápidas, diagnósticos más inteligentes y supervisión de pacientes.
Más información
Real-time AI that works with your team

IA en la fabricación

Optimiza la fabricación con los modelos de Ultralytics YOLO. La visión artificial por IA impulsa el control de calidad, la detección de defectos, el cumplimiento del uso de PPE y la automatización de la línea de montaje.
Más información
Real-time AI that works with your operation

IA en automoción

Aplica la visión artificial en el sector automotriz con los modelos de Ultralytics YOLO. La IA de visión mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para carreteras más inteligentes.
Más información
Real-time AI tailored to your operation

IA en agricultura

Lleva la visión artificial a la agricultura inteligente con los modelos de Ultralytics YOLO. Potencia el seguimiento de cultivos, el control del ganado y la agricultura de precisión para obtener rendimientos mayores y más inteligentes.
Más información
Real-time AI that works with your team

IA en robótica

Potencia máquinas más inteligentes con modelos Ultralytics YOLO. La IA de visión en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Real-time AI that works with your team

IA en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La visión artificial por IA permite la inspección de paquetes, clasificación, seguimiento de vehículos y monitoreo de seguridad en almacenes en tiempo real.
Más información
Real-time AI that works with your team

IA en el sector minorista

Reimagina el comercio minorista con los modelos de Ultralytics YOLO. La visión artificial por IA potencia el seguimiento de inventario, el monitoreo de estantes, la gestión de colas y mejores perspectivas sobre los clientes.
Más información
Real-time AI that works with your team

IA en la atención sanitaria

Crea soluciones de salud con los modelos de Ultralytics YOLO. La IA de visión en la sanidad potencia imágenes médicas más rápidas, diagnósticos más inteligentes y supervisión de pacientes.
Más información
Real-time AI that works with your team

IA en la fabricación

Optimiza la fabricación con los modelos de Ultralytics YOLO. La visión artificial por IA impulsa el control de calidad, la detección de defectos, el cumplimiento del uso de PPE y la automatización de la línea de montaje.
Más información
Real-time AI that works with your operation

IA en automoción

Aplica la visión artificial en el sector automotriz con los modelos de Ultralytics YOLO. La IA de visión mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para carreteras más inteligentes.
Más información
Real-time AI tailored to your operation

IA en agricultura

Lleva la visión artificial a la agricultura inteligente con los modelos de Ultralytics YOLO. Potencia el seguimiento de cultivos, el control del ganado y la agricultura de precisión para obtener rendimientos mayores y más inteligentes.
Más información
Real-time AI that works with your team

IA en robótica

Potencia máquinas más inteligentes con modelos Ultralytics YOLO. La IA de visión en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Real-time AI that works with your team

IA en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La visión artificial por IA permite la inspección de paquetes, clasificación, seguimiento de vehículos y monitoreo de seguridad en almacenes en tiempo real.
Más información
Real-time AI that works with your team

IA en el sector minorista

Reimagina el comercio minorista con los modelos de Ultralytics YOLO. La visión artificial por IA potencia el seguimiento de inventario, el monitoreo de estantes, la gestión de colas y mejores perspectivas sobre los clientes.
Más información
Real-time AI that works with your team

IA en la atención sanitaria

Crea soluciones de salud con los modelos de Ultralytics YOLO. La IA de visión en la sanidad potencia imágenes médicas más rápidas, diagnósticos más inteligentes y supervisión de pacientes.
Más información
Real-time AI that works with your team

IA en la fabricación

Optimiza la fabricación con los modelos de Ultralytics YOLO. La visión artificial por IA impulsa el control de calidad, la detección de defectos, el cumplimiento del uso de PPE y la automatización de la línea de montaje.
Más información
Real-time AI that works with your operation

IA en automoción

Aplica la visión artificial en el sector automotriz con los modelos de Ultralytics YOLO. La IA de visión mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para carreteras más inteligentes.
Más información
Real-time AI tailored to your operation

IA en agricultura

Lleva la visión artificial a la agricultura inteligente con los modelos de Ultralytics YOLO. Potencia el seguimiento de cultivos, el control del ganado y la agricultura de precisión para obtener rendimientos mayores y más inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Comienza tu viaje con el futuro del aprendizaje automático