Observability
Explore l’importance de l’observabilité en IA et en ML. Apprends à déboguer des systèmes complexes, à surveiller les performances de Ultralytics YOLO26 et à obtenir des informations approfondies sur les modèles.
L'observabilité désigne la capacité à comprendre l'état interne d'un système complexe en se basant uniquement sur ses sorties externes. Dans les domaines en évolution rapide de l'intelligence artificielle (AI) et de l'apprentissage automatique (ML), l'observabilité va au-delà des simples vérifications d'état pour fournir des informations approfondies sur pourquoi un modèle se comporte d'une certaine manière. À mesure que les architectures modernes d'apprentissage profond (DL), telles que le YOLO26 à la pointe de la technologie, gagnent en sophistication, elles peuvent souvent fonctionner comme des « boîtes noires ». Les outils d'observabilité offrent une fenêtre transparente sur ces systèmes, permettant aux équipes d'ingénierie de déboguer les comportements inattendus, de remonter à la cause première des erreurs et de garantir la fiabilité en production.
Observabilité et surveillance#
Bien qu'elles soient souvent utilisées comme des synonymes, l'observabilité et la surveillance des modèles remplissent des fonctions distinctes mais complémentaires dans le cycle de vie MLOps.
- La surveillance des modèles est réactive et se concentre sur les « inconnues connues ». Elle consiste à suivre des métriques prédéfinies telles que la latence d'inférence, l'utilisation du CPU ou les taux d'erreur par rapport à des seuils établis. La surveillance répond à la question : « Le système est-il sain ? »
- L'observabilité est proactive et s'intéresse aux « inconnues inconnues ». Elle fournit les données granulaires — journaux, traces et événements à forte cardinalité — nécessaires pour examiner des problèmes nouveaux qui n'avaient pas été anticipés lors de la préparation des données d'entraînement. Comme l'explique le livre Google SRE, un système observable permet de comprendre de nouveaux comportements sans déployer de nouveau code. Elle répond à la question : « Pourquoi le système se comporte-t-il ainsi ? »
Les trois piliers de l'observabilité#
Pour obtenir une véritable observabilité dans les pipelines de vision par ordinateur (CV), les systèmes s'appuient généralement sur trois principaux types de données de télémétrie :
-
Journaux : enregistrements horodatés et immuables d'événements discrets. Dans un pipeline de détection, un journal peut enregistrer la résolution de l'image d'entrée ou la configuration spécifique de l'optimisation des hyperparamètres utilisée lors d'une exécution. La journalisation structurée, souvent au format JSON, permet d'effectuer des requêtes et des analyses complexes.
-
Métriques : données numériques agrégées mesurées au fil du temps, telles que la précision moyenne, la consommation mémoire ou l'utilisation du GPU. Des outils comme Prometheus et Grafana sont couramment utilisés pour stocker ces données de séries temporelles et visualiser les tendances.
-
Traces : le traçage suit le cycle de vie d'une requête lorsqu'elle traverse différents microservices. Pour les applications d'IA distribuées, des standards comme OpenTelemetry aident à cartographier le parcours d'une requête et mettent en évidence les goulots d'étranglement du moteur d'inférence ou les délais réseau. Des outils spécialisés comme Jaeger aident à visualiser ces transactions distribuées.
Implémenter l'observabilité dans Python#
Tu peux améliorer l'observabilité de tes pipelines d'entraînement en utilisant des callbacks pour journaliser certains états internes. L'exemple suivant montre comment ajouter un callback personnalisé à une session d'entraînement YOLO26 afin de surveiller les métriques de performance en temps réel.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Define a custom callback for observability
def on_train_epoch_end(trainer):
# Access and print specific metrics at the end of each epoch
map50 = trainer.metrics.get("metrics/mAP50(B)", 0)
print(f"Observability Log - Epoch {trainer.epoch + 1}: mAP50 is {map50:.4f}")
# Register the callback and start training
model.add_callback("on_train_epoch_end", on_train_epoch_end)
model.train(data="coco8.yaml", epochs=3)Applications concrètes#
L'observabilité est essentielle pour déployer des modèles hautes performances dans des environnements dynamiques où les données de test peuvent ne pas correspondre parfaitement aux conditions du monde réel.
- Véhicules autonomes : lors du développement de véhicules autonomes, l'observabilité permet aux ingénieurs de reconstituer l'état exact du système lors d'un événement de désengagement. En corrélant les sorties de détection d'objets avec les journaux des capteurs et les commandes de contrôle, les équipes peuvent déterminer si une erreur de freinage a été causée par du bruit des capteurs, une erreur de prédiction du modèle ou une erreur logique dans le module de planification.
- Diagnostic médical : dans le domaine de l'IA dans la santé, garantir des performances constantes est essentiel à la sécurité des patients. Les outils d'observabilité peuvent détecter une dérive des données si les performances d'un modèle se dégradent lorsqu'il est appliqué à des images provenant d'un nouveau type de scanner IRM. Les traces peuvent révéler si le problème provient d'une modification du prétraitement des données des images ou d'un changement dans la distribution des entrées, ce qui permet une résolution rapide sans compromettre la sécurité de l'IA.
Intégration avec les outils modernes#
Les workflows modernes intègrent souvent directement l'observabilité à la plateforme d'entraînement. Les utilisateurs de la plateforme Ultralytics bénéficient de la visualisation intégrée des courbes de perte, des performances du système et de l'analyse des jeux de données. De plus, les intégrations standard avec des outils comme TensorBoard et MLflow permettent aux data scientists d'assurer un suivi rigoureux des expériences et l'observabilité sur l'ensemble du cycle de vie du modèle.









