Integrazione con ClearML
Informazioni 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 di YOLOv5 nel gestore degli esperimenti.
- 🔧 Gestisci le versioni e accedi ai tuoi dati di addestramento personalizzati con lo strumento di versionamento dei 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 una API con pochi comandi utilizzando ClearML Serving.
Usa quanti di questi strumenti desideri, da pochi a tutti: inizia solo con il gestore degli esperimenti o concatena tutto in una pipeline completa.

🦾 Configurazione
ClearML deve comunicare con un server per tracciare i tuoi esperimenti e dati. Hai due opzioni:
- Registrati al servizio ospitato di ClearML gratuito, oppure
- Distribuisci il tuo server ClearML: è open-source, quindi rimane un'opzione valida anche per dati sensibili.
Quindi installa il pacchetto Python clearml e connetti l'SDK al tuo server:
pip install clearmlGenera le credenziali in Impostazioni → Area di lavoro → Crea nuove credenziali (in alto a destra nell'interfaccia utente di ClearML), quindi esegui:
clearml-initSegui le istruzioni. Tutto qui: la configurazione è completa.
🚀 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 clearmlQuesto abiliterà l'integrazione con lo script di addestramento di YOLOv5. Ogni esecuzione di addestramento da ora in poi verrà 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 utilizza / 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 --cacheOppure con nomi personalizzati:
python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cacheOgni esecuzione cattura:
- Codice sorgente e modifiche non confermate
- Pacchetti installati
- Iperparametri
- Checkpoint del modello (usa
--save-period nper salvare ogninepoche) - Output della console
- Scalari (mAP_0.5, mAP_0.5:0.95, precision, recall, perdite, tassi di apprendimento)
- Dettagli della macchina, runtime e data di creazione
- Grafici generati come il correlogramma delle etichette e la matrice di confusione
- Immagini con riquadri di delimitazione per epoca
- Visualizzazioni a mosaico per epoca
- Immagini di validazione per epoca
Tutto appare nell'interfaccia utente 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.
🔗 Gestione delle versioni del dataset
Il versionamento dei dati separatamente dal codice rende facile recuperare l'ultima versione e garantisce una riproducibilità totale. Questo repository accetta un ID di versione del dataset, recupera i dati automaticamente se mancano e registra l'ID come parametro dell'attività, così saprai sempre quali dati sono stati utilizzati in quale esperimento.

Prepara 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 radice del repository. Dopo aver scaricato coco128, la struttura delle cartelle appare così:
..
|_ yolov5
|_ datasets
|_ coco128
|_ images
|_ labels
|_ LICENSE
|_ README.txtQualsiasi dataset funziona, a patto di mantenere questa struttura.
Successivamente, copia il file YAML del dataset nella cartella principale del dataset: ClearML legge questo file per utilizzare correttamente il dataset. 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.txtCarica il tuo dataset
Per registrare il dataset come dataset ClearML versionato, entra nella sua cartella principale 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 closeAddestra su un dataset ClearML
Con il dataset registrato, punta l'addestramento verso di esso tramite ID:
python train.py --img 640 --batch 16 --epochs 3 --data clearml://YOUR_DATASET_ID --weights yolov5s.pt --cache👀 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 totalmente riproducibili. ClearML ti consente di clonare un esperimento, modificarne i parametri e rieseguirlo automaticamente, che è la base dell'ottimizzazione degli iperparametri (HPO).
Per eseguire l'HPO localmente, usa lo script in bundle. Prima assicurati che un'attività di addestramento esista nel gestore degli esperimenti: lo script la clona e ne varia gli 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.pyPassa da task.execute_locally() a task.execute() per inviare il lavoro a una coda ClearML affinché un agente remoto lo prenda in carico.

🤯 Esecuzione remota (Avanzato)
Eseguire l'HPO localmente è comodo, ma spesso vorrai esperimenti su hardware più potente, una macchina GPU locale o un'istanza cloud. Questo è il ruolo di ClearML Agent:
Ogni esperimento tracciato contiene tutto il necessario per riprodurlo su un'altra macchina (pacchetti installati, modifiche non confermate e configurazione). Un agente ClearML ascolta una coda, raccoglie le attività in arrivo, ricrea l'ambiente, esegue il lavoro e trasmette scalari e grafici al gestore degli esperimenti.
Trasforma qualsiasi macchina (una VM cloud, una workstation GPU locale o un laptop) in un agente ClearML con:
clearml-agent daemon --queue QUEUES_TO_LISTEN_TO [--docker]Clonazione, modifica e accodamento
Con un agente in esecuzione, puoi assegnargli del lavoro direttamente dall'interfaccia utente:
- 🪄 Fai clic destro su un esperimento e clona.
- 🎯 Modifica i suoi iperparametri.
- ⏳ Fai clic destro sull'attività clonata e accodala in una coda di destinazione.

Esecuzione di un'attività da remoto
Puoi anche contrassegnare uno script in esecuzione per l'esecuzione remota a livello di codice 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.
Worker a scalabilità automatica
ClearML viene fornito con autoscaler che avviano macchine remote su AWS, GCP o Azure quando una coda ha esperimenti in sospeso, li convertono in agenti ClearML e li spengono quando il lavoro è terminato, così paghi solo per la potenza di calcolo effettivamente utilizzata.
Guarda il video introduttivo qui sotto:
Per saperne di più
Per maggiori informazioni sull'integrazione di ClearML con i modelli Ultralytics, dai un'occhiata alla nostra guida all'integrazione di ClearML ed esplora come puoi migliorare il tuo flusso di lavoro MLOps con altri strumenti di tracciamento degli esperimenti.