Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Integraciones

Entrena y monitoriza Ultralytics YOLOv5 de forma remota con ClearML

Aprende a hacer un seguimiento de experimentos, versionar conjuntos de datos, ajustar hiperparámetros y entrenar modelos Ultralytics YOLOv5 en máquinas remotas con ClearML.

Nuvola LadiNuvola Ladi7 min de lectura
Entrenamiento y monitorización de YOLOv5 con ClearML

En Ultralytics colaboramos comercialmente con otras startups para financiar la investigación y el desarrollo de nuestras herramientas de código abierto, como YOLOv5, y mantenerlas gratuitas para todo el mundo. Este artículo puede contener enlaces de afiliados a esas empresas colaboradoras.

ClearML es nuestro nuevo colaborador: un conjunto de herramientas de código abierto diseñado para ahorrarte tiempo.

Con la misión de acelerar la adopción del aprendizaje automático (ML), ClearML facilita la integración del aprendizaje automático en cualquier producto de software o hardware.

Esta integración simplifica aún más el entrenamiento de un modelo YOLOv5 y el uso del gestor de experimentos ClearML para hacer un seguimiento automático. Puedes especificar fácilmente como entrada de datos un ID de versión de un conjunto de datos de ClearML, que se utilizará automáticamente para entrenar el modelo.

Lleva el seguimiento de tus experimentos al siguiente nivel#

  • Registra cada ejecución de entrenamiento de YOLOv5 en el gestor de experimentos.
  • Versiona tus datos de entrenamiento personalizados y accede a ellos fácilmente con la herramienta integrada de control de versiones de datos de ClearML.
  • Consigue el mejor mAP con la optimización de hiperparámetros de ClearML.
  • Convierte tu modelo YOLOv5 recién entrenado en una API con solo unos comandos mediante ClearML Serving.

Tú decides cuántas de estas herramientas quieres usar: puedes limitarte al gestor de experimentos o encadenarlas todas para crear una canalización impresionante.

Configuración#

Para hacer un seguimiento de tus experimentos y datos, ClearML necesita comunicarse con un servidor. Tienes dos opciones: registrarte gratis en el servicio alojado de ClearML o configurar tu propio servidor.

El servidor también es de código abierto, así que no hay problema si trabajas con datos sensibles.

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

Ya puedes empezar.

Entrenar YOLOv5 con ClearML#

Para habilitar el seguimiento de experimentos de ClearML, solo tienes que instalar el paquete ClearML de pip.

pip install clearml

Esto habilitará la integración con el script de entrenamiento de YOLOv5. A partir de ahora, el gestor de experimentos de ClearML capturará y almacenará cada ejecución de entrenamiento. Si quieres cambiar project_name o task_name, ve a nuestro registrador personalizado para modificarlo: utils/loggers/clearml/clearml_utils.py

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

Esto registrará:

  • Código fuente + cambios sin confirmar
  • 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 (mAP50, mAP50-95, precisión, exhaustividad, pérdidas, tasas de aprendizaje, ...)
  • Información general, como detalles de la máquina, tiempo de ejecución, fecha de creación, etc.
  • Todos los gráficos generados, como el correlograma de etiquetas y la matriz de confusión
  • Imágenes con cuadros delimitadores por época
  • Mosaico por época
  • Imágenes de validación por época

Ahora podemos visualizar toda esta información en la interfaz de ClearML para obtener una visión general del progreso del entrenamiento. Añade columnas personalizadas a la vista de tabla (como mAP50) para ordenar fácilmente los modelos según sus resultados. ¡O selecciona varios experimentos y compáralos directamente!

Podemos hacer aún más cosas con toda esta información, como optimizar hiperparámetros y ejecutar tareas de forma remota. ¡Sigue leyendo para descubrir cómo!

Gestión de versiones de conjuntos de datos#

Por lo general, es buena idea versionar los datos por separado del código, y así también resulta fácil obtener la versión más reciente. Este repositorio permite indicar el ID de una versión del conjunto de datos y se encargará de obtener los datos si aún no están disponibles. Además, este flujo de trabajo también guarda el ID del conjunto de datos utilizado como parte de los parámetros de la tarea, ¡así siempre sabrás con certeza qué datos se usaron en cada experimento!

Prepara tu conjunto de datos#

El repositorio YOLOv5 admite varios conjuntos de datos mediante archivos YAML que contienen su información. De forma predeterminada, los conjuntos de datos se descargan en la carpeta ../datasets, relativa a la carpeta raíz del repositorio. Así que, si has descargado el conjunto de datos COCO128 mediante el enlace del archivo YAML o con los scripts proporcionados por YOLOv5, tendrás esta estructura de carpetas:

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

Pero puedes usar cualquier conjunto de datos que quieras. Siéntete libre de usar el tuyo, siempre que mantengas esta estructura de carpetas.

A continuación, copia el archivo YAML correspondiente en la raíz de la carpeta del conjunto de datos. Estos archivos YAML contienen la información que ClearML necesita para usar correctamente el conjunto de datos. También puedes crear uno tú mismo; solo tienes que seguir la estructura de los archivos YAML de ejemplo.

El archivo YAML necesita las siguientes claves: path, train, test, val, nc y names.

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

Sube tu conjunto de datos#

Para añadir este conjunto de datos a ClearML como un conjunto de datos versionado, ve a la carpeta raíz del conjunto de datos y ejecuta el siguiente comando:

cd coco128

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

En realidad, el comando clearml-data sync es un atajo. También puedes 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

Ejecuta el entrenamiento con un conjunto de datos de ClearML#

Ahora que tienes un conjunto de datos de ClearML, puedes usarlo para entrenar modelos YOLOv5 personalizados.

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

Optimización de hiperparámetros#

Ahora que tenemos nuestros experimentos y una versión de los datos, ¡es hora de ver qué podemos crear a partir de ellos!

Con la información del código, los paquetes instalados y los detalles del entorno, el experimento es ahora completamente reproducible. De hecho, ClearML te permite clonar un experimento e incluso cambiar sus parámetros. Después podemos volver a ejecutarlo automáticamente con estos nuevos parámetros, que es básicamente lo que hace la optimización de hiperparámetros (HPO).

Para ejecutar la optimización de hiperparámetros localmente, hemos incluido un script listo para usar. Asegúrate de haber ejecutado una tarea de entrenamiento al menos una vez para que aparezca en el gestor de experimentos ClearML; el script la clona y modifica sus hiperparámetros.

Tendrás que indicar el ID de esta tarea de plantilla en el script que encontrarás en utils/loggers/clearml/hpo.py y, después, ejecutarlo. Puedes cambiar task.execute_locally() por task.execute() para añadirlo a una cola de ClearML y hacer que un agente remoto se encargue de ello.

# 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

Ejecución remota (avanzado)#

Ejecutar HPO localmente es muy práctico, pero ¿y si queremos ejecutar nuestros experimentos en una máquina remota? Quizá tengas acceso a una máquina con una GPU muy potente en tus instalaciones o dispongas de presupuesto para usar GPU en la nube. Aquí es donde entra en juego ClearML Agent.

Descubre aquí qué puede hacer el agente:

En resumen: cada experimento registrado por el gestor de experimentos contiene información suficiente para reproducirlo en otra máquina (paquetes instalados, cambios sin confirmar, etc.). Así que ClearML Agent hace precisamente eso: escucha una cola en busca de tareas y, cuando encuentra una, recrea el entorno y la ejecuta, mientras sigue enviando escalares, gráficos, etc. al gestor de experimentos.

Puedes convertir cualquier máquina (una VM en la nube, una máquina local con GPU o tu propio portátil) en un agente de ClearML con solo ejecutar:

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

Clonar, editar y poner en cola#

Con nuestro agente en marcha, podemos asignarle trabajo. ¿Recuerdas que en la sección de HPO vimos que podíamos clonar una tarea y editar los hiperparámetros? ¡También podemos hacerlo desde la interfaz!

  1. Clona el experimento haciendo clic derecho sobre él.
  2. Edita los hiperparámetros y asígnales los valores que quieras.
  3. Añade la tarea a cualquiera de las colas haciendo clic derecho sobre ella.

Ejecutar una tarea de forma remota#

Ahora puedes clonar una tarea como hemos explicado antes o simplemente marcar tu script actual añadiendo task.execute_remotely(); al ejecutarlo, se añadirá a una cola para que el agente empiece a trabajar en él.

Para ejecutar el script de entrenamiento de YOLOv5 de forma remota, solo tienes que añadir esta línea al script train.py después de inicializar el registrador de ClearML:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # instancia de registradores
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ AÑADE ESTA LÍNEA

¿Tienes alguna pregunta? Únete a nuestra comunidad y publícala hoy mismo.

Escrito por

Nuvola Ladi
Nuvola Ladi

Responsable de contenidos digitales · Ultralytics

Nuvola Ladi es responsable de contenidos digitales en Ultralytics, donde crea contenido sobre IA visual y Ultralytics YOLO, y representa a la empresa en eventos del sector como PyTorch Conference 2025. Reside en España y tiene un máster en Medios Visuales y Digitales por IE University. Antes de incorporarse a Ultralytics, ocupó puestos en organizaciones como XVA Gallery & Hotel y Rolex.

Comentarios

Haz una pregunta, comparte tus resultados o ayuda a otra persona.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual 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
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático