top of page
Rechercher

Projets logiciels et projets IA

Photo du rédacteur: Herve BlancHerve Blanc

Dernière mise à jour : 20 févr. 2024


Réunion journalière projet IA

Les projets logiciels et les projets d’IA partagent de nombreuses similitudes, mais il existe également des différences importantes entre les deux qui méritent d’être soulignées.

Une différence clé est le niveau de complexité impliqué dans les projets d’IA. Les projets d’IA nécessitent souvent des connaissances spécialisées dans des domaines tels que le traitement du signal, la science des données, l’apprentissage automatique, l’apprentissage profond et le traitement du langage naturel, qui ne sont pas nécessaires aux développements de logiciels traditionnels.


De plus, les projets d’IA nécessitent souvent de grandes quantités de données pour l’entrainement de modèles, ce qui peut présenter des défis uniques en termes de stockage, de traitement et de gestion des données.

C’est pourquoi les projets d’IA ont tendance à être davantage axés sur la recherche, en mettant davantage l’accent sur l’expérimentation et l’innovation. Cela peut rendre les projets d’IA plus imprévisibles et moins déterministes que les projets logiciels traditionnels, qui sont souvent axés sur la fourniture d’un ensemble spécifique de fonctionnalités dans un délai prédéterminé.

Malgré ces différences, de nombreux principes fondamentaux du développement logiciel s’appliquent toujours aux projets d’IA. Les deux nécessitent une planification, une documentation, des tests et une maintenance minutieux pour assurer leur succès à long terme.


(Projets logiciels et projets IA) Similarités


Codage project IA

Les principaux attributs qu’on retrouve en IA et dans les projets logiciels traditionnels sont les suivants:

  • Les deux nécessitent une planification minutieuse :

Que vous construisiez une application logicielle ou développiez un modèle d’IA, une planification minutieuse est essentielle. Cela comprend la définition des exigences, la détermination de la portée du projet et la création d’une feuille de route de développement.

  • Les deux impliquent la conception et le développement de systèmes complexes:

les projets logiciels et les projets d’IA impliquent tous deux la conception et le développement de systèmes complexes, bien que la nature spécifique de la complexité puisse différer.

  • Les deux impliquent le codage et les tests:

Les projets logiciels et les projets d’IA nécessitent un codage et des tests pour s’assurer que le système fonctionne correctement et répond aux exigences souhaitées.

  • Les deux nécessitent une maintenance continue :

une fois qu’une application logicielle ou un modèle d’IA est déployé, une maintenance continue est nécessaire pour assurer son bon fonctionnement et pour corriger les bogues ou les problèmes qui surviennent.

  • Les deux peuvent bénéficier des méthodologies de développement agiles:

Les méthodologies de développement agile, telles que Scrum ou Kanban, peuvent être utilisées pour les projets logiciels et d’IA afin de promouvoir la collaboration, la flexibilité et l’amélioration continue.

  • Les deux bénéficient des bonnes pratiques telles que l’intégration continue et le déploiement continu CI/CD

Elles sont des pratiques cruciales dans les déploiements de modèles ML, car elles permettent des mises à jour et des améliorations de modèle plus rapides et plus efficaces. CI/CD garantit que les modèles sont soigneusement testés et validés avant d’être déployés dans un environnement de production.

  • Les deux peuvent être basés sur des outils et des bibliothèques open source :

les outils et bibliothèques open source sont largement utilisés dans le développement de logiciels et d’IA pour augmenter la productivité, améliorer la qualité et réduire les coûts.


Après tout, l’IA est un logiciel, il est donc compréhensible que le cycle de vie du développement de produits logiciels fasse partie du cycle de vie des produits d’IA, le plus communément appelé MLOps.


(Projets IA) Spécificités


Visualisation 3D

Pourtant, les projets d’IA ont des spécificités que nous ne voyons pas dans les projets logiciels


  • Collecte de données :

Cela implique la collecte de sources de données pertinentes et diverses qui peuvent être utilisées pour entrainer et tester les modèles de ML.

  • Annotation de données :

Cela implique d’étiqueter les données avec des informations significatives qui peuvent être utilisées par les algorithmes ML pour apprendre des modèles et des caractéristiques.

  • Prétraitement des données :

Cela implique le nettoyage, la transformation, la mise à l’échelle, l’encodage et la division des données en ensembles de formation, de validation et de test.

  • Sélection du modèle:

Cela implique de choisir le meilleur algorithme ML ou architecture DL pour le problème et les données à traiter.

  • Réglage du modèle :

Il s’agit de trouver les hyperparamètres ou la configuration optimale pour le modèle choisi à l’aide de techniques telles que la recherche de grille ou la recherche aléatoire.

  • Évaluation du modèle :

Il s’agit de mesurer la performance ou l’exactitude du modèle ML (sur des données n’ayant pas servi lors de la phase d’apprentissage), à l’aide de métriques adaptées telles que la précision, le rappel, le score F1 ou la courbe ROC.

Il faudra convertir les métriques en impact business: il est en effet clé de comprendre quel est l'impact d'une erreur de prédiction du modèle, et s'assurer avec les métiers, que ses performances/impacts sont acceptables.

  • Déploiement du modèle :

Cela implique le déploiement du modèle ML entraîné en tant que service Web ou API accessible à d’autres applications ou utilisateurs. Le jargon est un peu différent: DevOps dans le cas de projets purement logiciels, MLOps ou LLMOps pour les projets IA.

  • Monitorage du modèle :

Une fois le modèle déployé, on doit s'assurer de son fonctionnement. L'inférence du modèle mis en disponibilité derrière une API doit remplir ses conditions de SLA (Service Licence Agreement) avec par exemple une disponibilité de 99.9%. En plus de cela, on doit vérifier que la distribution statistique des données de production sont similaires à celle utilisées lors de l'entrainement, sinon il faudra prévoir une mise à jour du modèle.


Nous prendrons le temps dans les prochains articles de zoomer sur certaines spécificités de ces projets d’IA. D’ici là, n’hésitez pas à nous contacter et à poser des questions que vous aimeriez voir abordées sur ce blog.


Posts récents

Voir tout

Comments


bottom of page