Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Intégration continue (IC)

Découvrez l'intégration continue (CI) pour l'apprentissage automatique. Apprenez à automatiser les tests, à valider les données et à déployer les modèles Ultralytics pour des opérations MLOps robustes.

L'intégration continue (CI) est une pratique fondamentale dans l'ingénierie logicielle moderne, où les développeurs fusionnent fréquemment les modifications de code dans un référentiel central, déclenchant ainsi des séquences automatisées de compilation et de test. Dans le domaine spécialisé de l' apprentissage automatique (ML), la CI va au-delà de la vérification standard du code pour inclure la validation des pipelines de données, des architectures de modèles et des configurations d'entraînement. En détectant les erreurs d'intégration, les bogues de syntaxe et les régressions de performances dès le début du cycle de vie, les équipes peuvent maintenir une base de code robuste et accélérer la transition de la recherche expérimentale vers des applications de vision par ordinateur de qualité production .

L'importance de l'intelligence artificielle dans l'apprentissage automatique

Alors que les pipelines CI traditionnels se concentrent sur la compilation de logiciels et l'exécution de tests unitaires, un workflow CI centré sur le ML doit gérer les complexités uniques des systèmes probabilistes. Une modification d'un seul hyperparamètre ou d'un script de prétraitement des données peut modifier radicalement le comportement du modèle final. Par conséquent, une stratégie CI robuste garantit que chaque mise à jour du code ou des données est automatiquement vérifiée par rapport à des références établies.

Ce processus est un élément essentiel des opérations d'apprentissage automatique (MLOps), agissant comme un filet de sécurité qui empêche la dégradation des performances. Les pipelines d'intégration continue efficaces pour les projets d'IA intègrent généralement :

  • Contrôles de qualité du code : utilisation d' outils d'analyse statique et de linters pour appliquer les normes de codage et détecter les erreurs de syntaxe avant l'exécution.
  • Validation des données : vérification que les données d'entraînement entrantes respectent les schémas et les distributions statistiques attendus, ce qui permet d'éviter des problèmes tels que des fichiers image corrompus ou des annotations manquantes.
  • Tests automatisés : exécution de tests unitaires sur des fonctions utilitaires et de tests d'intégration pouvant impliquer la formation d'un petit modèle pendant quelques époques afin de garantir la convergence.
  • Benchmarking du modèle : évaluation du modèle par rapport à un ensemble de validation fixe afin de vérifier si les indicateurs clés, tels que la précision moyenne (mAP), sont passés en dessous d'un seuil acceptable.

Applications concrètes

La mise en œuvre de l'intégration continue est essentielle pour les industries où la fiabilité et la sécurité sont primordiales.

  • Systèmes de conduite autonome : dans le cadre du développement de véhicules autonomes, les ingénieurs perfectionnent en permanence les algorithmes de détection des piétons et des voies. Un pipeline d'IA permet à l'équipe de tester automatiquement de nouveaux modèles de détection d'objets par rapport à une vaste bibliothèque de scénarios de régression, tels que la conduite sous une pluie battante ou dans des conditions de faible luminosité, afin de s'assurer qu'une mise à jour du code ne réduit pas accidentellement la capacité du système à detect
  • Imagerie médicale diagnostique : pour les applications de santé, telles que la détection de tumeurs par IRM, la reproductibilité est une exigence réglementaire. L'IA garantit que chaque version du logiciel de diagnostic est traçable et testée. Si un développeur optimise le moteur d'inférence pour en accélérer la vitesse, le système d'IA vérifie que la précision du diagnostic reste inchangée avant que la mise à jour ne soit déployée dans les hôpitaux.

CI vs livraison continue (CD) vs MLOps

Il est important de distinguer l'intégration continue des concepts connexes dans le cycle de vie du développement.

  • Intégration continue (CI) : se concentre sur la phase d'intégration (fusion du code, tests automatisés et validation des builds). Elle répond à la question suivante : « Ce nouveau code perturbe-t-il les fonctionnalités existantes ? »
  • Livraison continue (CD) : suit la CI et se concentre sur la phase de publication. Elle automatise les étapes nécessaires au déploiement du modèle validé dans un environnement de production, tel qu'un serveur cloud ou un périphérique de pointe. En savoir plus sur le déploiement de modèles.
  • MLOps : il s'agit de la discipline globale qui englobe l'intégration continue (CI), la livraison continue (CD) et la surveillance continue. Alors que la CI est une pratique spécifique, le MLOps est la culture et l'ensemble des outils utilisés pour gérer l'ensemble du cycle de vie de l'IA.

Outils et plateformes pour l'intégration de l'IA

Les développeurs utilisent divers outils pour orchestrer ces pipelines. Des plateformes polyvalentes telles que GitHub Actions ou Jenkins sont couramment utilisées pour déclencher des workflows lors des commits de code. Cependant, la gestion de grands ensembles de données et la gestion des versions des modèles nécessitent souvent des outils spécialisés.

Ultralytics sert de centre névralgique qui complète les flux de travail d'IA. Elle permet aux équipes de gérer des ensembles de données, track les expériences track et de visualiser les mesures de performance. Lorsqu'un pipeline d'IA forme avec succès un nouveau modèle YOLO26, les résultats peuvent être enregistrés directement sur la plateforme, ce qui offre une vue centralisée de l'état du projet et facilite la collaboration entre les scientifiques des données.

Exemple de test automatisé

Dans un pipeline CI, vous devez souvent vérifier que votre modèle peut se charger et effectuer des inférences correctement, sans erreur. Le script Python suivant illustre un simple « contrôle de cohérence » qui peut être exécuté automatiquement chaque fois que du code est poussé vers le référentiel.

from ultralytics import YOLO

# Load the YOLO26 model (using the nano version for speed in CI tests)
model = YOLO("yolo26n.pt")

# Perform inference on a dummy image or a standard test asset
# 'bus.jpg' is a standard asset included in the package
results = model("bus.jpg")

# Assert that detections were made to ensure the pipeline isn't broken
# If len(results[0].boxes) is 0, something might be wrong with the model or input
assert len(results[0].boxes) > 0, "CI Test Failed: No objects detected!"

print("CI Test Passed: Model loaded and inference successful.")

Ce script utilise le ultralytics paquet pour charger un modèle léger et vérifier qu'il fonctionne comme prévu. Dans un environnement CI de production, cela ferait partie d'une suite de tests plus large utilisant des frameworks tels que Pytest pour garantir une couverture complète.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant