Observabilité
Découvrez l'importance de l'observabilité dans l'IA et le ML. Apprenez à déboguer des systèmes complexes, à surveiller les performances Ultralytics 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 rapide évolution de l'
l'intelligence artificielle (IA)
et de l' apprentissage automatique (ML), l'observabilité va au-delà des simples vérifications d'état pour fournir des informations approfondies sur les raisons pour lesquelles un modèle se comporte d'une
certaine manière. Dans le cadre de l'
architectures d'apprentissage profond (DL)
, telles que l'architecture de pointe
YOLO26, deviennent de plus en plus sophistiquées, elles peuvent souvent fonctionner comme des « boîtes noires ». Les outils d'observabilité créent
une fenêtre transparente sur ces systèmes, permettant aux équipes d'ingénieurs de déboguer les comportements inattendus, de remonter à la source des
erreurs et de garantir la fiabilité des environnements de production.
Observabilité vs surveillance
Bien qu'ils soient souvent utilisés de manière interchangeable, les termes « observabilité » et «
surveillance des modèles ont des objectifs distincts
mais complémentaires au sein du
cycle de vie des MLOps .
-
La surveillance des modèles
est réactive et se concentre sur les « inconnues connues ». Elle implique le suivi de mesures prédéfinies telles que
latence d'inférence, CPU ou les taux d'erreur par rapport à des seuils établis. La surveillance répond à la question suivante : « Le système est-il
en bon état ? »
-
L'observabilité est proactive et traite les « inconnues inconnues ». Elle fournit les données granulaires
(journaux, traces et événements à cardinalité élevée) nécessaires pour enquêter sur les nouveaux problèmes qui n'avaient pas été anticipés lors de la
formation des données d'entraînement données d'entraînement . Comme
décrit dans le
Google Book, un système observable vous permet de comprendre de nouveaux comportements sans avoir à déployer de nouveau code. Il répond à la question :
« Pourquoi le système agit-il de cette manière ? »
Les trois piliers de l'observabilité
Pour parvenir à une véritable observabilité dans le domaine de la
pipelines de vision par ordinateur (CV) , les
systèmes s'appuient généralement sur trois types principaux de données télémétriques :
-
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 les
réglage des hyperparamètres
utilisé pendant une exécution. Journalisation structurée, souvent au format
format JSON , permet des requêtes
et des analyses
-
Mesures : données numériques agrégées mesurées au fil du temps, telles que la précision moyenne
précision, la consommation de mémoire ou la
GPU .
Des outils tels que Prometheus et
Grafana sont couramment utilisés pour stocker ces données chronologiques afin de
visualiser les tendances.
-
Traces : le traçage suit le cycle de vie d'une requête à mesure qu'elle circule à travers divers microservices. Pour les
applications d'IA distribuées, des normes telles que
OpenTelemetry aident à cartographier le cheminement d'une requête, en mettant en évidence les
goulots d'étranglement dans le
moteur d'inférence ou les
retards du réseau. Des outils spécialisés tels que Jaeger aident à visualiser
ces transactions distribuées.
Mise en œuvre de l'observabilité en Python
Vous pouvez améliorer l'observabilité de vos pipelines de formation en utilisant des rappels pour enregistrer des états internes spécifiques. L'
exemple suivant montre comment ajouter un rappel personnalisé à un
session de formation YOLO26 pour surveiller les
mesures 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 haute performance dans des environnements dynamiques où
les données de test ne correspondent pas parfaitement aux
conditions réelles.
-
Véhicules autonomes : Dans le développement des
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 la
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 un bruit du capteur, une
erreur de prédiction du modèle ou une erreur logique dans le module de planification.
-
Diagnostic médical : dans le
IA dans le domaine de la santé, il est essentiel de garantir des performances constantes pour la sécurité des patients. Les outils d'observabilité permettent de detect
la 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'un changement
dans le
pré-traitement des données d'image ou d'un changement
dans la distribution des entrées, ce qui permet une correction rapide sans compromettre la
sécurité de l'IA.
Intégration avec des outils modernes
Les flux de travail modernes intègrent souvent l'observabilité directement dans la plateforme de formation. Les utilisateurs de la
Ultralytics bénéficient d'une
visualisation intégrée des courbes de perte, des performances du système et de l'analyse des ensembles de données. De plus, des intégrations standard avec des outils
tels que TensorBoard et
MLflow permettent aux scientifiques des données de
maintenir un suivi rigoureux des expériences et une observabilité tout au long du cycle de vie du modèle.