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 de développement logiciel dans laquelle les développeurs fusionnent fréquemment leurs modifications de code dans un référentiel central, après quoi des constructions et des tests automatisés sont exécutés. Ce processus est crucial dans le développement de logiciels modernes, y compris les projets d'IA et d'apprentissage automatique (ML), car il permet d'identifier et de corriger rapidement les bugs, d'améliorer la qualité des logiciels et de réduire le temps nécessaire pour valider et publier de nouvelles mises à jour logicielles. En intégrant les modifications de code en continu, les équipes peuvent éviter l'"enfer de l'intégration" qui se produit souvent lorsque les gens attendent la fin d'un projet pour fusionner leurs modifications.

Aspects clés de l'intégration continue

L'intégration continue implique plusieurs pratiques clés. Tout d'abord, les développeurs livrent le code à un dépôt partagé plusieurs fois par jour. Chaque validation est ensuite vérifiée par une compilation automatisée, ce qui permet aux équipes de détecter rapidement les problèmes. Les tests automatisés sont une autre pierre angulaire de l'IC, englobant les tests unitaires, les tests d'intégration et d'autres formes de tests automatisés pour s'assurer que le logiciel reste fonctionnel après chaque mise à jour. Le retour d'information continu est essentiel, car il permet aux développeurs d'avoir un aperçu immédiat de l'impact de leurs modifications. Cette boucle de rétroaction rapide permet de résoudre rapidement les problèmes et de maintenir un niveau élevé de qualité du code.

Avantages de l'intégration continue dans l'IA/ML

Dans le contexte de l'IA et de la ML, l'intégration continue offre de nombreux avantages. Elle rationalise le flux de développement en automatisant l'entraînement et la validation des modèles, en veillant à ce que tout nouveau code s'intègre parfaitement au système existant. C'est particulièrement important dans les projets de ML, où les modèles doivent être fréquemment réentraînés avec de nouvelles données. L'IC permet de maintenir la qualité du code en exécutant automatiquement des tests qui vérifient l'exactitude des modèles, les performances et d'autres paramètres critiques. Elle facilite également la collaboration entre les membres de l'équipe en fournissant un processus de développement cohérent et transparent. En détectant les problèmes à un stade précoce, l'IC réduit le risque que des problèmes majeurs surviennent plus tard dans le cycle de développement, ce qui permet en fin de compte d'obtenir des systèmes d'IA/ML plus fiables et plus robustes.

Intégration continue et termes connexes

Bien que l'intégration continue soit une pratique puissante, elle est souvent abordée en même temps que d'autres concepts connexes tels que la livraison continue (CD) et le déploiement continu. La livraison continue étend l'IC en garantissant que le logiciel peut être mis en production à tout moment, souvent en déployant automatiquement chaque modification dans un environnement de test ou de mise en scène. Le déploiement continu va encore plus loin en diffusant automatiquement chaque modification qui passe toutes les étapes du pipeline de production dans l'environnement réel. Alors que l'IC se concentre sur les phases de construction et de test, le CD et le déploiement continu se concentrent sur les phases de publication et de déploiement. Ensemble, ces pratiques forment un pipeline connu sous le nom de CI/CD, qui constitue une pratique exemplaire pour le développement de logiciels modernes, y compris les projets d'IA/ML.

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é. Par exemple, une entreprise qui développe un système de détection d'objets à l'aide de Ultralytics YOLO peut utiliser l'intégration continue pour tester automatiquement les nouvelles modifications du code par rapport à une série de critères de performance, afin de s'assurer que les mises à jour ne dégradent pas la précision ou la vitesse du modèle. Chaque validation de code déclenche un processus de construction automatisé qui entraîne le modèle sur un ensemble de données de validation et évalue ses performances, telles que la précision moyenne (mAP). Cette approche garantit l'amélioration continue du modèle et sa fiabilité.

Un autre exemple se trouve dans le domaine du traitement du langage naturel (NLP), où une équipe peut travailler sur un modèle d'analyse des sentiments. En mettant en œuvre l'IC, chaque modification du code est automatiquement testée pour déterminer son impact sur la capacité du modèle à classer avec précision les sentiments. Il peut s'agir d'exécuter le modèle mis à jour sur un ensemble de données de test et de comparer ses performances à celles des versions précédentes. Le retour d'information continu de ces tests aide l'équipe à identifier et à corriger rapidement tout problème, ce qui permet de s'assurer que le modèle reste précis et efficace.

Outils et plateformes pour l'intégration continue

Plusieurs outils et plateformes prennent en charge l'intégration continue. Jenkins est un serveur d'automatisation open-source qui fournit des centaines de plugins pour prendre en charge la construction, le déploiement et l'automatisation des projets. Travis CI est un autre choix populaire, connu pour sa facilité d'utilisation et son intégration à GitHub. GitLab CI/CD est intégré à GitLab et offre une solution complète pour les pipelines CI/CD. CircleCI prend en charge différentes langues et plateformes, ce qui offre une certaine flexibilité pour les différents besoins des projets. GitHub Actions te permet d'automatiser ton flux de travail directement dans ton dépôt GitHub, ce qui en fait une option pratique pour les projets hébergés sur GitHub. Ces outils aident les équipes à mettre en œuvre l'IC de manière efficace, en veillant à ce que leurs modèles d'IA/ML soient testés et améliorés en permanence. De plus, des plateformes comme Ultralytics HUB peuvent être intégrées aux pipelines CI pour rationaliser l' entraînement et le déploiement des modèles, ce qui améliore encore l'efficacité du processus de développement.

Tout lire