Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Callback

Explorez le rôle essentiel des callbacks dans l'apprentissage automatique—des outils qui surveillent, contrôlent et automatisent l'entraînement des modèles pour une précision, une flexibilité et une efficacité améliorées.

Dans le domaine de l'apprentissage automatique (ML), un callback est une fonction ou un bloc de code polyvalent fonction polyvalente ou un bloc de code conçu pour s'exécuter automatiquement à des étapes spécifiques d'un processus informatique. Dans le dans le contexte de la formation des réseaux neuronaux (NN), les rappels servent de "crochets" qui interagissent avec le cycle de vie de la cycle de vie de l'apprentissage pour effectuer des actions telles que l'enregistrement des métriques, la sauvegarde des résultats intermédiaires ou l'ajustement des contrôles, enregistrer les résultats intermédiaires ou ajuster les paramètres de contrôle. En découplant ces tâches auxiliaires de la boucle d'apprentissage principale, les développeurs peuvent créer des systèmes de formation modulaires et efficaces. principale, les développeurs peuvent créer des flux de travail modulaires, lisibles et hautement personnalisables sans modifier l'algorithme de base. de l'algorithme.

Fonctionnement des rappels

Un processus de formation typique itère sur un ensemble de données pendant un certain nombre de passages, appelés époques. nombre de passages, appelés époques. Au cours de ce cycle, le système système effectue des passes avant pour faire des prédictions et des passes arrière pour mettre à jour les données. rétropropagation pour mettre à jour les poids du modèle. Les rappels interviennent à des "événements" prédéfinis "prédéfinis au sein de cette boucle, tels que le début de la formation, la fin d'un lot ou l'achèvement d'une époque.

L'objet Trainer dans des frameworks comme Ultralytics gère ces événements. Lorsqu'un événement spécifique se produit, le formateur exécute toutes les fonctions de rappel enregistrées, en leur transmettant l'état actuel du modèle. l'état actuel du modèle. Ce mécanisme est fondamental pour les MLOps modernes, permettant l'observabilité l 'observabilité en temps réel et l'intervention automatisée.

Applications courantes de l'IA

Les callbacks sont indispensables pour optimiser les performances et l'utilisation des ressources dans l'apprentissage profond (DL). l 'apprentissage profond (DL).

  • Arrêt précoce: L'une des applications les plus est la prévention de l'ajustement excessif. Un callback d'arrêt d'arrêt précoce surveille le taux d'erreur sur les données de validation. Si les performances du modèle stagne ou se dégrade sur un nombre défini d'époques, le callback interrompt immédiatement l'apprentissage, ce qui permet de gagner du temps et d'économiser les coûts de l'informatique en nuage. de temps et de coûts d'informatique en nuage.
  • Programmation dynamique du taux d'apprentissage: L'ajustement de la taille du pas de l'algorithme d'optimisation de l 'algorithme d'optimisation est crucial pour convergence. Les rappels peuvent réduire le taux d'apprentissage lorsqu'un plateau est détecté, ce qui permet au modèle de se stabiliser dans une solution plus optimale. solution plus optimale.
  • Point de contrôle du modèle : Pour s'assurer que la meilleure version d'un modèle est préservée, un rappel de point de contrôle sauvegarde l'état du système chaque fois qu'une mesure clé, telle que la précision moyenne (mAP), s'améliore. Cette fonction est vitale pour les longues sessions d'entraînement sur des ensembles de données volumineux tels que ImageNet ou COCO.
  • Enregistrement des expériences : Intégration avec des outils de visualisation tels que TensorBoard, ClearMLou MLflow est souvent gérée par des rappels. Ces outils enregistrent les courbes de perte, l'utilisation l'utilisation du matériel et des échantillons de prédictions pour une analyse ultérieure.

Mise en œuvre d'un rappel personnalisé

Le ultralytics fournit une API simple pour attacher des rappels personnalisés à des modèles tels que YOLO11. Cela permet aux utilisateurs d'injecter une logique spécifique, telle que l'impression de mises à jour d'état ou l'interaction avec des API externes, directement dans le pipeline de formation.

L'exemple suivant montre comment ajouter une simple fonction de rappel qui imprime un message de confirmation à la fin de chaque épisode d'apprentissage. période d'apprentissage :

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)

Distinction par rapport aux concepts apparentés

Pour utiliser efficacement les callbacks, il est utile de les distinguer des termes similaires utilisés dans le génie logiciel et la science des données. données.

  • Les crochets: Bien que les termes "callback" et "hook" soient souvent utilisés de manière interchangeable, un hook se réfère généralement à l'endroit du code où une fonction externe peut être attachée (le point d'interception). dans le code où une fonction externe peut être attachée (le point d'interception). Le callback est la fonction spécifique fonction spécifique fournie par l'utilisateur pour être exécutée à ce crochet.
  • Réglage des hyperparamètres: Les rappels facilitent l'ajustement (par exemple, via des planificateurs de taux d'apprentissage ou l'intégration avec des bibliothèques telles que Ray Tune), mais ils ne constituent pas le processus de réglage lui-même. Le réglage implique la recherche des valeurs de configuration optimales, tandis que les rappels sont le mécanisme permettant d'appliquer les changements ou de surveiller les progrès au cours de cette recherche. de suivre les progrès réalisés au cours de cette recherche.
  • Augmentation des données: L'augmentation modifie les données d'entrée avant qu'elles n'atteignent le réseau. Alors que certains pipelines avancés utilisent des pour ajuster dynamiquement l'intensité de l'augmentation (par exemple, la probabilité de mosaïque en YOLOv5), l'augmentation standard fait généralement partie du pipeline de données plutôt qu'un événement de la boucle d'apprentissage.

Des avantages concrets

L'utilisation de rappels se traduit directement par des agents et des applications d'IA plus robustes et plus efficaces. plus robustes et plus efficaces. Par exemple, dans les véhicules autonomes, l'apprentissage de modèles le traitement de grandes quantités de données de capteurs. Les rappels permettent aux ingénieurs de sélectionner automatiquement les modèles les plus performants dans les cas difficiles, sans surveillance manuelle. sur les cas limites difficiles sans surveillance manuelle. De même, dans l'analyse l'analyse d'images médicales, les rappels peuvent déclencher des alertes ou une journalisation approfondie si le modèle commence à mémoriser les données du patient (surajustement) au lieu d'apprendre des caractéristiques généralisables, ce qui garantit une grande fiabilité pour le déploiement clinique. des caractéristiques généralisables, ce qui garantit une grande fiabilité pour le déploiement clinique.

En tirant parti des rappels, les développeurs qui utilisent des frameworks tels que PyTorch ou TensorFlow peuvent construire des systèmes autorégulés qui temps, réduisent les erreurs et maximisent les performances de leurs solutions de vision par ordinateur (VA).

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant