Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Callback

Entdecken Sie die wesentliche Rolle von Callbacks im Machine Learning – Tools, die das Modelltraining überwachen, steuern und automatisieren, um Genauigkeit, Flexibilität und Effizienz zu verbessern.

Beim maschinellen Lernen (ML) ist ein Callback eine eine vielseitige Funktion oder ein Codeblock, der automatisch in bestimmten Phasen eines Rechenprozesses ausgeführt wird. Innerhalb von Zusammenhang mit dem Training neuronaler Netze (NN), dienen Rückrufe als "Haken", die mit dem Lebenszyklus des Trainings interagieren, um Aktionen wie die Protokollierung von Metriken, Speichern von Zwischenergebnissen oder Anpassen von Steuerparametern. Durch die Entkopplung dieser Hilfsaufgaben von der Haupt Trainingsschleife können Entwickler modulare, lesbare und hochgradig anpassbare Workflows erstellen, ohne den Kernalgorithmus zu Algorithmus.

Wie Rückrufe funktionieren

Ein typischer Trainingsprozess iteriert über einen Datensatz für eine bestimmte Anzahl von Durchläufen, die als Epochen bezeichnet werden. Während dieses Zyklus führt das System Vorwärtsdurchläufe, um Vorhersagen zu treffen und Backpropagation zur Aktualisierung Modellgewichte. Rückrufe greifen bei vordefinierten "Ereignissen" innerhalb dieser Schleife - wie dem Beginn des Trainings, dem Ende eines Stapels oder dem Abschluss einer Epoche.

Das Trainer-Objekt in Frameworks wie Ultralytics verwaltet diese Ereignisse. Wenn ein bestimmtes Ereignis eintritt, führt der Trainer alle registrierten Callback-Funktionen aus und übergibt den aktuellen Zustand des Modells. Dieser Mechanismus ist grundlegend für moderne MLOps und ermöglicht Echtzeit Beobachtbarkeit und automatisierte Intervention.

Gemeinsame Anwendungen im Bereich AI

Rückrufe sind unverzichtbar für die Optimierung von Leistung und Ressourcenverbrauch bei Deep Learning (DL).

  • Frühzeitiges Anhalten: Eine der kritischsten Anwendungen ist die Vermeidung von Überanpassungen. Ein Früh Frühstopp-Callback überwacht die Fehlerrate bei Validierungsdaten. Wenn die Leistung des Modells Leistung des Modells stagniert oder sich über eine bestimmte Anzahl von Epochen verschlechtert, hält der Callback das Training sofort an und spart so Zeit und Cloud-Computing-Kosten.
  • Dynamische Planung der Lernrate: Die Anpassung der Schrittweite des Optimierungsalgorithmus ist entscheidend für Konvergenz. Rückrufe können die Lernrate verringern, wenn ein Plateau erkannt wird, so dass sich das Modell auf eine optimalen Lösung einpendelt.
  • Modell-Checkpointing: Um sicherzustellen, dass die beste Version eines Modells erhalten bleibt, speichert ein Checkpoint-Callback den Systemstatus immer dann, wenn eine Schlüsselmetrik, wie mittlere durchschnittliche Genauigkeit (mAP), verbessert. Dies ist wichtig für lange Trainingssitzungen auf großen Datensätzen wie ImageNet oder COCO.
  • Protokollierung von Experimenten: Integration mit Visualisierungstools wie TensorBoard, ClearMLoder MLflow wird oft über Callbacks abgewickelt. Diese Werkzeuge zeichnen Verlustkurven, System Hardware-Nutzung und Beispielvorhersagen für eine spätere Analyse.

Implementieren eines benutzerdefinierten Rückrufs

Die ultralytics Bibliothek bietet eine unkomplizierte API für das Anhängen von benutzerdefinierten Rückrufen an Modelle wie YOLO11. Dies ermöglicht es den Benutzern, spezifische Logik, wie wie das Drucken von Statusaktualisierungen oder die Interaktion mit externen APIs, direkt in die Schulungspipeline einfügen.

Das folgende Beispiel zeigt, wie man einen einfachen Callback hinzufügt, der eine Bestätigungsmeldung am Ende jeder Trainingsepoche ausgibt:

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)

Abgrenzung zu verwandten Konzepten

Um Callbacks effektiv zu nutzen, ist es hilfreich, sie von ähnlichen Begriffen aus der Softwaretechnik und der Datenwissenschaft zu unterscheiden. Wissenschaft.

  • Haken: Während "Callback" und "Hook" oft synonym verwendet werden, bezieht sich ein Hook im Allgemeinen auf die Stelle im Code, an den eine externe Funktion angehängt werden kann (der Abfangpunkt). Der Rückruf ist die spezifische Funktion, die vom Benutzer an diesem Hook ausgeführt werden soll.
  • Abstimmung der Hyperparameter: Rückrufe erleichtern die Abstimmung (z. B. über Lernraten-Scheduler oder Integration mit Bibliotheken wie Ray Tune), aber sie sind nicht der eigentliche Abstimmungsprozess. Die Abstimmung beinhaltet die Suche nach optimalen Konfigurationswerten, während Rückrufe den Mechanismus darstellen, um Änderungen anzuwenden oder Fortschritt während dieser Suche zu überwachen.
  • Datenerweiterung: Bei der Datenerweiterung werden die Eingabedaten geändert, bevor sie das Netzwerk erreichen. Während einige fortgeschrittene Pipelines Callbacks verwenden, um Augmentierungsintensität dynamisch anzupassen (z. B. die Mosaikwahrscheinlichkeit in YOLOv5), ist die Standard-Augmentation in der Regel Teil der Daten Datenladepipeline und nicht ein Ereignis in der Trainingsschleife.

Vorteile in der realen Welt

Die Verwendung von Rückrufen führt direkt zu robusteren und effizienteren KI-Agenten und -Anwendungen. Zum Beispiel in autonomen Fahrzeugen erfordert das Training von Modellen Verarbeitung großer Mengen von Sensordaten. Rückrufe ermöglichen es Ingenieuren, automatisch Schnappschüsse von Modellen zu erstellen, die in schwierigen Grenzfällen ohne manuelle Überwachung. In ähnlicher Weise können bei medizinischen Bildanalyse können Rückrufe Warnmeldungen oder eine umfassende Protokollierung auslösen, wenn das Modell beginnt, sich Patientendaten einzuprägen (Overfitting), anstatt verallgemeinerbare Merkmale zu lernen. verallgemeinerbare Merkmale zu erlernen, was eine hohe Zuverlässigkeit für den klinischen Einsatz gewährleistet.

Durch den Einsatz von Callbacks können Entwickler, die Frameworks wie PyTorch oder TensorFlow können selbstregulierende Systeme aufbauen, die Zeit sparen Zeit sparen, Fehler reduzieren und die Leistung ihrer Computer Vision (CV) Lösungen maximieren.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten