Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Callback

Esplora il ruolo essenziale dei callback nel machine learning: strumenti che monitorano, controllano e automatizzano l'addestramento del modello per una maggiore accuratezza, flessibilità ed efficienza.

Nell'apprendimento automatico (ML), un callback è una funzione versatile o blocco di codice progettato per essere eseguito automaticamente in fasi specifiche di un processo di elaborazione. Nell'ambito nel contesto dell'addestramento delle reti neurali (NN), callback servono come "ganci" che interagiscono con il ciclo di vita della ciclo di vita dell'addestramento per eseguire azioni come la registrazione delle metriche, il salvataggio dei risultati intermedi o la regolazione dei controlli, salvare i risultati intermedi o regolare i parametri di controllo. Disaccoppiando queste attività ausiliarie dal ciclo di addestramento principale, gli sviluppatori possono creare di addestramento, gli sviluppatori possono creare flussi di lavoro modulari, leggibili e altamente personalizzabili senza modificare l'algoritmo di base. algoritmo.

Come funzionano i callback

Un tipico processo di addestramento itera su un set di dati per un determinato numero di passaggi, detti epoche. Durante questo ciclo, il sistema sistema esegue dei passaggi in avanti per fare previsioni e backpropagation per aggiornare i pesi del pesi del modello. Le callback intervengono in corrispondenza di "eventi" predefiniti "eventi predefiniti all'interno di questo ciclo, come l'inizio dell'addestramento, la fine di un batch o il completamento di un'epoca.

L'oggetto Trainer in framework come Ultralytics gestisce questi eventi. Quando si verifica un evento specifico, il trainer esegue le funzioni di callback registrate, passando loro lo stato corrente del modello. loro lo stato corrente del modello. Questo meccanismo è fondamentale per i moderni MLOp moderni, in quanto consente l'osservabilità in tempo osservabilità in tempo reale e l'intervento automatizzato.

Applicazioni comuni nell'IA

Le callback sono indispensabili per ottimizzare le prestazioni e l'uso delle risorse nel deep learning (DL). deep learning (DL).

  • Arresto anticipato: Una delle applicazioni più critiche applicazioni è evitare l'overfitting. Un callback per l'arresto di arresto precoce monitora il tasso di errore sui dati di dati di convalida. Se le prestazioni del modello del modello ristagnano o degradano su un numero di epoche prestabilito, il callback interrompe immediatamente l'addestramento, risparmiando tempo e costi di cloud computing. costi di cloud computing.
  • Programmazione dinamica del tasso di apprendimento: La regolazione della dimensione del passo dell'algoritmo di algoritmo di ottimizzazione è fondamentale per convergenza. I callback possono ridurre il tasso di apprendimento quando viene rilevato un plateau, consentendo al modello di stabilizzarsi in una soluzione più ottimale. soluzione ottimale.
  • Checkpoint del modello: Per garantire che venga conservata la versione migliore di un modello, un callback di checkpoint salva lo stato del sistema ogni volta che una metrica chiave, come la precisione media (mAP), migliora. Questo è fondamentale per le lunghe sessioni di addestramento su grandi insiemi di dati come ImageNet o COCO.
  • Registrazione degli esperimenti: Integrazione con strumenti di visualizzazione come TensorBoard, ClearMLo MLflow è spesso gestita tramite callback. Questi strumenti registrano le curve di perdita, l'utilizzo hardware e le previsioni dei campioni per un'analisi successiva.

Implementazione di un callback personalizzato

Il ultralytics fornisce un'API semplice per collegare callback personalizzati a modelli quali YOLO11. Questo permette agli utenti di iniettare una logica specifica, come la stampa di aggiornamenti di stato o interazione con API esterne, direttamente nella pipeline di formazione.

L'esempio seguente mostra come aggiungere un semplice callback che stampi un messaggio di conferma alla fine di ogni di addestramento:

from ultralytics import YOLO


def on_train_epoch_end(trainer):
    """Callback function to print the current epoch number after it finishes."""
    print(f"Custom Callback: Epoch {trainer.epoch + 1} completed successfully.")


# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Register the custom callback for the 'on_train_epoch_end' event
model.add_callback("on_train_epoch_end", on_train_epoch_end)

# Train the model with the registered callback
model.train(data="coco8.yaml", epochs=2)

Distinzione dai concetti correlati

Per usare le callback in modo efficace, è utile distinguerle da termini simili nell'ingegneria del software e nella scienza dei dati. scienza dei dati.

  • Ganci: Mentre "callback" e "hook" sono spesso usati in modo intercambiabile, un hook si riferisce generalmente al punto del codice in cui una funzione esterna può essere collegata (il punto di intercettazione). nel codice dove può essere collegata una funzione esterna (il punto di intercettazione). Il callback è la funzione specifica funzione specifica fornita dall'utente da eseguire in quel punto.
  • Regolazione degli iperparametri: I callback facilitano la sintonizzazione (ad esempio, tramite schedulatori del tasso di apprendimento o l'integrazione con librerie come Ray Tune), ma non sono il processo di regolazione in sé. La messa a punto comporta la ricerca dei valori di configurazione ottimali, mentre i callback sono il meccanismo per applicare le modifiche o monitorare i progressi durante la ricerca. monitorare i progressi di questa ricerca.
  • Aumento dei dati: L'incremento modifica i dati di input prima che raggiungano la rete. Mentre alcune pipeline avanzate utilizzano callback per l'intensità dell'incremento in modo dinamico (ad esempio, la probabilità di mosaico in YOLOv5), l'incremento standard è di solito parte della pipeline di caricamento dei dati di caricamento dei dati piuttosto che un evento del ciclo di addestramento.

Vantaggi nel mondo reale

L'uso di callback si traduce direttamente in agenti e applicazioni AI più robusti ed efficienti. agenti e applicazioni di intelligenza artificiale più robusti ed efficienti. Ad esempio, nei veicoli autonomi, l'addestramento dei modelli richiede di elaborazione di grandi quantità di dati dei sensori. Le callback consentono agli ingegneri di scattare automaticamente i modelli che funzionano meglio su casi limite difficili senza monitoraggio manuale. Allo stesso modo, nell'analisi analisi delle immagini mediche, i callback possono se il modello inizia a memorizzare i dati del paziente (overfitting) invece di apprendere caratteristiche generalizzabili, garantendo un'elevata affidabilità per l'impiego clinico. caratteristiche generalizzabili, garantendo un'elevata affidabilità per l'impiego clinico.

Sfruttando le callback, gli sviluppatori che utilizzano framework come PyTorch o TensorFlow possono costruire sistemi autoregolanti che risparmiano tempo, ridurre gli errori e massimizzare le prestazioni delle loro soluzioni di soluzioni di computer vision (CV).

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora