Link to this sectionIntegrazione di ClearML#
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.

Link to this section🦾 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 Settings → Workspace → Create new credentials (in alto a destra nell'interfaccia di ClearML), quindi esegui:
clearml-initSegui 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 clearmlQuesto 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 --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 commitate
- Pacchetti installati
- Iperparametri
- Checkpoint del modello (usa
--save-period nper salvare ogninepoche) - 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.

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.txtQualsiasi 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.txtLink 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 closeLink 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 --cacheLink 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.pyPassa task.execute_locally() a task.execute() per inviare il lavoro a una coda ClearML affinché un agente remoto lo prenda.

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.

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:
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.