Glossaire

Intégration continue (CI)

Améliore les flux de travail en IA/ML grâce à l'intégration continue. Automatise les tests, améliore la qualité du code et rationalise le développement des modèles sans effort.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

L'intégration continue (CI) est une pratique fondamentale dans le développement de logiciels modernes et est de plus en plus cruciale dans les domaines de l'intelligence artificielle (IA) et de l'apprentissage automatique (ML). Elle consiste à fusionner fréquemment les modifications de code de plusieurs contributeurs dans un référentiel central, après quoi des builds et des tests automatisés sont exécutés. L'objectif principal de l'IC est de détecter rapidement les problèmes d'intégration, d'améliorer la qualité du code et de rationaliser le flux de développement. Cette automatisation et cette boucle de rétroaction rapide sont particulièrement bénéfiques pour les projets complexes, tels que ceux qui impliquent la formation et le déploiement. Ultralytics YOLO pour les tâches de vision par ordinateur.

Pourquoi l'intégration continue est-elle importante en IA/ML ?

La nature itérative du développement de l'IA/ML, qui implique des expériences avec des données, des modèles et des paramètres (comme le réglage des hyperparamètres et l'augmentation des données), rend l'IC particulièrement utile. L'intégration de l'IC permet d'obtenir un retour d'information rapide sur les changements, ce qui garantit que le nouveau code s'intègre correctement à la base de code existante et que les performances du modèle ne se dégradent pas de façon inattendue. Les principaux avantages sont les suivants :

  • Détection précoce des bogues : Les tests automatisés détectent les erreurs rapidement après la fusion des modifications du code, ce qui réduit les coûts et les efforts nécessaires pour les corriger plus tard.
  • Amélioration de la qualité du code : Des tests et une intégration cohérents encouragent de meilleures pratiques de codage et des bases de code faciles à maintenir. Les outils tels que les linters et les analyseurs statiques font souvent partie du pipeline de CI.
  • Cycles de développement plus rapides : L'automatisation réduit les efforts de tests manuels et permet aux développeurs de se concentrer sur la création de fonctionnalités.
  • Performances constantes des modèles : Les pipelines d'IC peuvent inclure des étapes pour évaluer la précision du modèle, la précision, le rappel et d'autres métriques pertinentes, en empêchant les régressions. Il s'agit souvent de vérifier des mesures telles que le score F1 ou la précision moyenne (mAP).
  • Collaboration améliorée : L'intégration fréquente minimise les conflits de fusion et permet à l'équipe de travailler sur une base de code à jour.

Comment fonctionne l'IC dans les projets d'IA/ML

Dans un projet AI/ML typique utilisant l'IC, le processus commence souvent lorsqu'un développeur commet des modifications de code (y compris des scripts de modèle, des fichiers de configuration ou même de nouvelles étapes de traitement des données) dans un système de contrôle de version partagé comme Git. Cette validation déclenche automatiquement un pipeline de CI, souvent géré par des plateformes telles que Jenkins, GitLab CI/CD ou GitHub Actions. Le pipeline effectue généralement plusieurs étapes :

  1. Construire : Compile le code et construit les artefacts nécessaires (par exemple, les images Docker).
  2. Tests unitaires : Exécute de petits tests isolés sur des composants de code individuels.
  3. Test d'intégration : Teste l'interaction entre les différentes parties du système.
  4. Validation du modèle : Exécute des tests spécifiques au modèle ML, comme la vérification de l'intégrité des données, la validation de l'architecture du modèle ou l'exécution de l'inférence sur un petit ensemble de données de test.
  5. Test de performance : Évalue les mesures de performance du modèle(mAP, précision, latence) par rapport à des points de référence prédéfinis ou à des versions antérieures. Cela peut impliquer des modes d'analyse comparative.
  6. Rapports : Notifie à l'équipe les résultats de la construction et des tests, en intégrant souvent des outils de communication comme Slack.

Ultralytics utilise beaucoup l'IC ; tu peux en savoir plus sur nos processus dans le Guide de l'IC d'Ultralytics .

Applications concrètes de l'intégration continue en IA/ML

L'intégration continue est utilisée dans diverses applications IA/ML du monde réel pour améliorer l'efficacité et la fiabilité.

  • Développement d'un système de détection d'objets : Une entreprise qui développe un système de détection d'objets, peut-être en utilisant Ultralytics YOLO11pourrait utiliser l'IC pour tester automatiquement les nouvelles modifications du code. Chaque validation pourrait déclencher un pipeline qui réapprend ou valide le modèle sur un sous-ensemble de données (comme COCO128), exécute des évaluations pour vérifier le mAP et la vitesse d'inférence, et s'assure que les changements n'ont pas d'impact négatif sur les performances avant de les fusionner. Cela permet de maintenir la qualité du modèle pour les applications d'IA automobile ou de sécurité.
  • Raffinement du modèle de traitement du langage naturel (NLP) : Une équipe qui travaille sur un modèle d'analyse des sentiments à l'aide de techniques de traitement du langage naturel peut mettre en œuvre l'IC. Chaque mise à jour du code (par exemple, l'ajustement de l 'extraction des caractéristiques ou de l'architecture du modèle) déclenche automatiquement des tests. Ces tests peuvent exécuter le modèle mis à jour sur un ensemble de données de validation, en comparant sa précision de classification des sentiments et son score F1 aux résultats de référence. Cela permet de contrôler et d'améliorer en permanence l'efficacité du modèle.

Intégration continue et livraison/déploiement continus (CD)

Bien qu'étroitement liée, l'IC se distingue de la livraison continue et du déploiement continu (CD).

  • Intégration continue (CI) : Se concentre sur l'intégration fréquente des modifications de code et leur test automatique. Le résultat est une construction validée prête pour les étapes suivantes.
  • Livraison continue (CD) : Étend l'IC en préparant automatiquement les modifications de code validées pour les diffuser dans un environnement de mise en scène ou de production. Le déploiement vers la production est généralement déclenché manuellement. Tu peux en savoir plus sur les différences dans ce guide d'Atlassian.
  • Déploiement continu (CD) : Va plus loin en déployant automatiquement chaque changement validé directement en production sans intervention manuelle.

Les pratiques CI et CD sont des éléments essentiels des opérations d'apprentissage automatique (MLOps), qui visent à rationaliser l'ensemble du cycle de vie de l'apprentissage automatique, du développement au déploiement et à la surveillance. Des plateformes comme Ultralytics HUB peuvent aider à gérer certaines parties de ce cycle de vie, notamment la formation et le déploiement des modèles.

Tout lire