Meet YOLO26: next-gen vision AI.

Link to this sectionIntegrazione di ClearML#

ClearML MLOps experiment tracking platform

Link to this sectionInformazioni su ClearML#

ClearML è una piattaforma MLOps open-source creata per ottimizzare i flussi di lavoro di machine learning e risparmiare tempo di ingegneria.

  • 🔨 Traccia ogni esecuzione di addestramento YOLOv5 nel gestore degli esperimenti.
  • 🔧 Versiona e accedi ai tuoi dati di addestramento personalizzati con lo strumento di versionamento dati integrato di ClearML.
  • 🔦 Addestra e monitora da remoto le esecuzioni di YOLOv5 utilizzando ClearML Agent.
  • 🔬 Trova il miglior mAP con l'ottimizzazione degli iperparametri di ClearML.
  • 🔭 Trasforma il tuo modello YOLOv5 addestrato in un'API con pochi comandi utilizzando ClearML Serving.

Usa quanti di questi strumenti ti servono: inizia solo con il gestore degli esperimenti o concatena tutto in una pipeline completa.

Dashboard degli scalari di ClearML che mostra le metriche di addestramento di YOLOv5

Link to this section🦾 Configurazione#

ClearML deve comunicare con un server per tracciare i tuoi esperimenti e dati. Hai due opzioni:

Quindi installa il pacchetto Python clearml e connetti l'SDK al tuo server:

pip install clearml

Genera le credenziali in Settings → Workspace → Create new credentials (in alto a destra nell'interfaccia di ClearML), quindi esegui:

clearml-init

Segui le istruzioni. Fatto, la configurazione è completa.

Link to this section🚀 Addestramento di YOLOv5 con ClearML#

Per abilitare il tracciamento degli esperimenti, installa il pacchetto pip di ClearML se non l'hai già fatto:

pip install clearml

Questo abiliterà l'integrazione con lo script di addestramento YOLOv5. Ogni esecuzione di addestramento da ora in poi sarà catturata e archiviata dal gestore degli esperimenti di ClearML.

Per personalizzare i nomi del progetto e dell'attività, passa --project e --name a train.py. I valori predefiniti sono YOLOv5 e Training. ClearML usa / come delimitatore di sottoprogetto, quindi evita / nei nomi di progetto personalizzati.

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

Oppure con nomi personalizzati:

python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

Ogni esecuzione cattura:

  • Codice sorgente e modifiche non commitate
  • Pacchetti installati
  • Iperparametri
  • Checkpoint del modello (usa --save-period n per salvare ogni n epoche)
  • Output della console
  • Scalari (mAP_0.5, mAP_0.5:0.95, precisione, recall, perdite, tassi di apprendimento)
  • Dettagli macchina, runtime e data di creazione
  • Grafici generati come il correlogramma delle etichette e la matrice di confusione
  • Immagini con bbox per epoca
  • Visualizzazioni mosaic per epoca
  • Immagini di validazione per epoca

Tutto appare nell'interfaccia di ClearML così puoi monitorare l'addestramento in un unico posto. Aggiungi colonne personalizzate (ad esempio, mAP_0.5) per ordinare in base al modello con le prestazioni migliori, o seleziona più esperimenti per confrontarli fianco a fianco.

Continua a leggere per l'ottimizzazione degli iperparametri e l'esecuzione remota.

Link to this section🔗 Gestione delle versioni dei dataset#

Versionare i dati separatamente dal codice rende semplice recuperare l'ultima versione e assicura una piena riproducibilità. Questo repository accetta un ID di versione del dataset, recupera i dati automaticamente se mancano e registra l'ID come parametro dell'attività in modo che tu sappia sempre quali dati sono stati usati in quale esperimento.

Interfaccia di gestione delle versioni dei dataset di ClearML

Link to this sectionPrepara il tuo dataset#

Il repository YOLOv5 supporta molti dataset tramite file di configurazione YAML. Per impostazione predefinita, i dataset vengono scaricati nella cartella ../datasets relativa alla root del repository. Dopo aver scaricato coco128, la struttura della cartella appare come:

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

Qualsiasi dataset funziona, a patto che tu mantenga questa struttura.

Successivamente, copia il file YAML del dataset nella cartella root del dataset — ClearML legge questo file per utilizzare il dataset correttamente. Puoi scrivere il tuo YAML seguendo il layout di esempio, assicurandoti che definisca path, train, test, val, nc e names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml  # <---- HERE
        |_ LICENSE
        |_ README.txt

Link to this sectionCarica il tuo dataset#

Per registrare il dataset come dataset ClearML versionato, spostati nella sua cartella root ed esegui:

cd ../datasets/coco128
clearml-data sync --project YOLOv5 --name coco128 --folder .

clearml-data sync è un'abbreviazione per la seguente sequenza, che puoi anche eseguire esplicitamente:

# Add --parent <parent_dataset_id> to base this version on a previous one.
# Duplicate files are not re-uploaded.
clearml-data create --name coco128 --project YOLOv5
clearml-data add --files .
clearml-data close

Link to this sectionAddestra su un dataset ClearML#

Con il dataset registrato, punta l'addestramento su di esso tramite ID:

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

Link to this section👀 Ottimizzazione degli iperparametri#

Con esperimenti e dati versionati, puoi costruire sopra di essi. Poiché ogni esperimento tracciato cattura l'intero ambiente (codice, pacchetti installati e configurazione), le esecuzioni sono pienamente riproducibili. ClearML ti permette di clonare un esperimento, cambiare i suoi parametri e rieseguirlo automaticamente, che è la base dell'ottimizzazione degli iperparametri (HPO).

Per eseguire HPO localmente, usa lo script incluso. Per prima cosa assicurati che un'attività di addestramento esista nel gestore degli esperimenti: lo script la clona e varia i suoi iperparametri.

Inserisci l'ID dell'attività modello in utils/loggers/clearml/hpo.py, quindi esegui:

# Install Optuna or change the optimizer to RandomSearch.
pip install optuna
python utils/loggers/clearml/hpo.py

Passa task.execute_locally() a task.execute() per inviare il lavoro a una coda ClearML affinché un agente remoto lo prenda.

Dashboard HPO di ClearML con metriche YOLOv5

Link to this section🤯 Esecuzione remota (Avanzato)#

Eseguire HPO localmente è comodo, ma spesso vorrai esperimenti su hardware più potente — una macchina GPU on-prem o un'istanza cloud. Questo è il ruolo del ClearML Agent:

Ogni esperimento tracciato contiene tutto il necessario per riprodurlo su un'altra macchina (pacchetti installati, modifiche non commitate e configurazione). Un agente ClearML ascolta una coda, raccoglie le attività in arrivo, ricrea l'ambiente, esegue il lavoro e trasmette scalari e grafici di ritorno al gestore degli esperimenti.

Trasforma qualsiasi macchina — una VM cloud, una box GPU locale o un laptop — in un agente ClearML con:

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

Link to this sectionClonazione, Modifica e Accodamento#

Con un agente in esecuzione, puoi assegnargli lavoro direttamente dall'interfaccia:

  • 🪄 Fai clic destro su un esperimento e clonalo.
  • 🎯 Modifica i suoi iperparametri.
  • ⏳ Fai clic destro sull'attività clonata e accodala in una coda di destinazione.

Accoda un'attività dall'interfaccia

Link to this sectionEsecuzione di un'attività da remoto#

Puoi anche contrassegnare uno script in esecuzione per l'esecuzione remota a livello programmatico aggiungendo task.execute_remotely() dopo che il logger di ClearML è stato istanziato. Aggiungi la riga evidenziata a train.py:

# ...
# 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
        # data_dict is None unless the user selected a ClearML dataset, in which case ClearML fills it in.
        data_dict = loggers.clearml.data_dict
# ...

Dopo questa modifica, l'esecuzione dello script di addestramento procede fino a quella riga, impacchetta il codice e lo invia alla coda.

Link to this sectionWorker di autoscaling#

ClearML viene fornito con autoscaler che avviano macchine remote in AWS, GCP o Azure quando una coda ha esperimenti in sospeso, li convertono in agenti ClearML e li spengono quando il lavoro è finito — così paghi solo per la potenza di calcolo effettivamente in esecuzione.

Guarda il video introduttivo qui sotto:

Guarda il video

Link to this sectionUlteriori informazioni#

Per ulteriori informazioni sull'integrazione di ClearML con i modelli Ultralytics, consulta la nostra guida all'integrazione di ClearML ed esplora come puoi migliorare il tuo flusso di lavoro MLOps con altri strumenti di tracciamento degli esperimenti.

Collaboratori

Commenti