Informations générales
Événement : 92e Congrès de l'Acfas
Type : Colloque
Section : Section 200 - Sciences naturelles, mathématiques et génie
Description :L’intégration de l’intelligence artificielle (IA) est aujourd’hui un instrument central pour résoudre des problèmes complexes, notamment en relation avec l’ingénierie des logiciels et des systèmes. L’interopération entre ces disciplines et l’IA évolue rapidement, exigeant des nouvelles méthodes pour faire face aux défis émergents. Cela est particulièrement attendu dans des domaines critiques où l’IA prend de plus en plus d’ampleur tels que l’analyse de données médicales ou les prévisions de catastrophes naturelles.
L’objectif général de ce colloque est de permettre aux membres de la communauté des chercheurs, des développeurs et des décideurs d’être mis au courant des dernières avancées en matière d’IA appliquée à l’ingénierie des logiciels et des systèmes. Nous visons à offrir l’occasion aux chercheurs dans des domaines de recherche liés à l’IA, ainsi qu’en ingénierie logicielle et des systèmes, de présenter leurs derniers travaux dans les trois thématiques suivantes : 1) l’intégration des méthodologies d’ingénierie logicielle pour concevoir des systèmes d’IA précis, fiables et robustes ; 2) l’utilisation de l’IA dans les processus de l’ingénierie des logiciels afin d’améliorer la qualité des logiciels développés (par exemple, conception, tests, maintenance, implémentation) ; et 3) les architectures systèmes distribuées du continuum nuage-périphérie (« cloud-edge ») soutenant le déploiement et l’exécution de services IA riches, performants, sécuritaires et durables (par exemple, apprentissage fédéré, exécution de modèles en périphérie, quantification de modèles, IA écoénergétique).
Ce colloque se décline en deux sessions : la première couvrira l’intersection entre l’IA et le génie logiciel (l’IA appliquée au génie logiciel et le génie logiciel pour l’IA), tandis que la deuxième se concentrera sur l’application des systèmes informatiques et distribués à l’IA.
Date :Format : Sur place et en ligne
Responsables :- Julien Gascon-Samson (ÉTS - École de technologie supérieure)
- Amir Ali-Pour (ÉTS - École de technologie supérieure)
- Manel Abdellatif (ÉTS - École de technologie supérieure)
Programme
Des optimisations de l’apprentissage automatique
-
Communication orale
Optimisation des tests des systèmes d’intelligence artificielleManel Abdellatif (ÉTS - École de technologie supérieure)
-
Communication orale
SpeedyLoader : Pipelinage efficace du prétraitement des données et de l'entraînement des modèles d'apprentissage automatiqueOana Balmau (Universite McGill), Stella Bitchebe (Université McGill), Rahma Nouaji (Universite McGill)
Le prétraitement des données, qui consiste en des tâches telles que le redimensionnement, le recadrage et le filtrage des échantillons, est une étape cruciale dans les modèles d'apprentissage automatique. Même si l'étape de prétraitement est peu considérée par les travaux de recherche qui se concentrent sur l'optimisation des algorithmes d'apprentissage, dans la pratique, pour de nombreux workloads, le prétraitement et l'apprentissage sont combinés. Les frameworks ML populaires tels que PyTorch utilisent des dataloaders pour charger les données dans le modèle d’apprentissage. Si le pipeline entre le prétraitement et l'apprentissage n'est pas réalisé avec soin, il peut entraîner des temps d'attente importants du côté du GPU. Pour remédier à cette limitation, nous présentons SpeedyLoader, un système qui parallelise le prétraitement et l'apprentissage en tirant parti du prétraitement asynchrone des données et en évitant le blocage en tête de ligne. SpeedyLoader intègre des threads dédiés pour le chargement de données, qui organisent les échantillons prétraités en files en fonction de leur temps de traitement prévu. Simultanément, les GPU récupèrent les échantillons de ces files, ce qui garantit que l'entraînement n'est pas entravé par l'achèvement du prétraitement. Par rapport au DataLoader par défaut de PyTorch, SpeedyLoader réduit le temps d'apprentissage de 30 % et augmente l'utilisation des GPU de 4,3x, tout en maintenant une précision d'évaluation constante de 91 %.
-
Communication orale
Identification et analyse des mauvaises pratiques d’utilisation des services infonuagiques pour l’apprentissage machineManel Abdellatif (ÉTS), Hadil Ben Amor (ÉTS - École de technologie supérieure), Hakim Ghlissi (ÉTS - École de technologie supérieure)
L’apprentissage machine (ML) est de plus en plus utilisé dans divers secteurs comme le traitement d’images, le diagnostic médical et les systèmes de conduite autonome. Les fournisseurs de services infonuagiques comme Amazon, Google et Microsoft proposent une large gamme de solutions ML, visant à simplifier leur intégration dans les systèmes logiciels et à démocratiser leur utilisation.
Cependant, malgré la montée en puissance des services ML, les développeurs ne suivent pas toujours les bonnes pratiques dans leur conception et leur utilisation. Ils peuvent mal utiliser ces services, ce qui affecte la qualité, la maintenabilité et l’évolutivité des systèmes.
Dans cette présentation, nous analysons la prévalence des mauvaises utilisations des services ML dans un contexte industriel. Nous introduisons un catalogue de 20 mauvaises pratiques courantes et proposons une étude basée sur trois axes : (1) une revue de la littérature, (2) une analyse de projets GitHub intégrant des services ML et (3) une enquête menée auprès de 50 professionnels.
Nos résultats révèlent une large diffusion des mauvaises pratiques, principalement dues à une méconnaissance des capacités des services, une documentation insuffisante et un manque de sensibilisation aux bonnes pratiques. Ces constats soulignent la nécessité de formation continue et de développement d’outils automatisés pour détecter et corriger ces erreurs.
-
Communication orale
Une méthodologie guidée par les patrons pour l’identification des microservices dans les systèmes monolithiques d’apprentissage automatiqueManel Abdellatif (ETS), Hakim Ghlissi (ÉTS - École de technologie supérieure), Naouel Moha (ETS)
L’avancement de l’Intelligence Artificielle (IA) a permis des progrès dans divers domaines. Toutefois, les systèmes monolithiques basés sur l’IA peinent à répondre aux exigences croissantes en raison de leur complexité et de leurs besoins computationnels élevés, nécessitant des architectures plus évolutives. Face à ces défis, les architectures à base de microservices offrent une meilleure adaptabilité et maintenabilité. Cependant, leur adoption implique une migration souvent complexe et coûteuse, où l’identification des microservices réutilisables est essentielle pour limiter le redéveloppement de ces systèmes. Bien que plusieurs études aient exploré la décomposition des systèmes monolithiques en microservices, aucune ne prend en compte les spécificités des systèmes d’IA. Le but de notre projet est de proposer une approche de migration des systèmes monolithiques à base d’IA vers les architectures à base de microservices. Pour ce faire, nous proposons une méthodologie de migration basée sur des modèles architecturaux et de conception pour identifier les microservices réutilisables dans ces systèmes monolithiques et restructurer les microservices identifiés. Nous validons notre approche sur une étude de cas et comparons qualitativement les résultats à une approche de décomposition de référence. Nos résultats montrent que notre méthodologie permet d’identifier et restructurer efficacement les microservices tout en tenant compte des spécificités des systèmes à base d’IA.
-
Communication orale
Détection des Code Smells dans les Systèmes Basés sur l'IAFlorent Avellaneda (UQÀM), Brahim Mahmoudi (ÉTS - École de technologie supérieure), Naouel Moha (ETS), Quentin Stievenart (UQÀM)
L'intégration de l'intelligence artificielle dans les systèmes logiciels offre des avantages réels mais pose aussi des problèmes de qualité. L'utilisation de frameworks comme TensorFlow et PyTorch complique les modèles d'IA, affectant la performance, la consommation d'énergie et la sécurité. Ces constats m'ont amené à étudier les défauts de code, ou "code smells", pour comprendre les erreurs dans ces systèmes.
J'ai ainsi développé un outil d'analyse statique qui détecte automatiquement ces défauts sans exécuter le code, identifiant des problèmes fréquents tels que les indexations en chaîne dans Pandas ou des erreurs de configuration dans certaines bibliothèques. Cet outil fournit des recommandations concrètes pour améliorer la qualité du code.
Parallèlement, une étude sur des projets Python open-source a révélé que plus de la moitié n'incluent pas de tests unitaires, rendant ces projets plus vulnérables aux erreurs et difficiles à maintenir. Ce constat confirme que l'absence de tests automatisés nuit à la fiabilité des systèmes d'IA.
Mon travail propose donc des solutions pratiques pour renforcer la qualité des systèmes d'IA, aidant les développeurs à mieux détecter les défauts de code, ce qui contribue à améliorer la qualité logicielle et à sécuriser l'utilisation des technologies d'intelligence artificielle.
-
Communication orale
Analyse empirique des tendances, thématiques et défis liés à l'utilisation des modèles d'intelligence artificielle de Hugging Face sur Stack OverflowManel Abdellatif (ETS), Hatem Feki (ÉTS - École de technologie supérieure), Mohammed Sayagh (ETS)
Hugging Face (HF) s'est imposé comme une plateforme essentielle pour la communauté d’Intelligence Artificielle (IA), servant de point central où les développeurs collaborent, partagent des modèles et échangent des jeux de données. Malgré son adoption rapide ces dernières années, les défis rencontrés par les développeurs lorsqu'ils travaillent avec HF restent peu étudiés. En conséquence, dans cette étude nous analysons les questions liées à HF sur StackOverflow (SO), l'une des plateformes de discussion les plus populaires, afin de mettre en évidence les thématiques abordées, les principales difficultés et les tendances émergentes. Cette compréhension permettra aux futures recherches et à la communauté HF d'améliorer l'utilisation de la plateforme en se concentrant sur les défis les plus récurrents et les plus complexes. Pour ce faire, nous appliquons une technique de modélisation de sujets afin de catégoriser les thématiques abordées. Nous évaluons ensuite la popularité et la difficulté de ces sujets pour mieux cerner les défis spécifiques rencontrés par les développeurs. Nos résultats révèlent un taux de croissance annuel moyen de 31,3 % du nombre de questions liées à HF sur SO. De plus, nous identifions huit grandes thématiques, parmi lesquelles la compréhension et l’usage des larges modèles de langage (LLMs) étant le sujet le plus populaire, tandis que le calcul distribué et la gestion des ressources pour l’IA constituent les défis les plus complexes pour les développeurs.
-
Communication orale
Génération automatique de cas de tests pour systèmes IdO : Exploration de quatre approchesZacharie Chenail-Larcher (ÉTS - École de technologie supérieure), Jean Baptiste Minani (Université Concordia), Naouel Moha (ÉTS)
Les systèmes IdO (IoT) sont de plus en plus communs et critiques, il est donc essentiel de les valider pour garantir leur bon fonctionnement et fiabilité. Les tests « End-To-End » (E2E) permettent de vérifier la fonctionnalité de ces systèmes d’un point de vue externe. Cependant, identifier et créer manuellement les cas à tester est une tâche complexe et pénible. De plus, les spécificités des systèmes IdO rendent inadaptés les outils conçus pour d’autres types de systèmes. Pour résoudre ce problème, nous avons exploré quatre approches pour automatiser la génération de cas de tests E2E pour IdO à partir de cas d’utilisation. Parmi elles, trois intègrent des « Large Language Models » (LLMs) à différentes étapes du processus : - Approche « Sur mesure » : arbres logiques, algorithmes récursifs et déductions logiques selon la structure des cas d’utilisation. - Approche « LLM Mono-phase » : utilisant un LLM pour générer les tests en une seule étape. - Approche « LLM Multi-phase » : utilisant également un LLM, mais séparant la génération en plusieurs étapes pour diminuer la complexité. - Approche hybride : combinant l’approche « Custom » et « Multi-Stage LLM ». Nous avons évalué ces approches sur un système IdO réel, en mesurant la couverture des scénarios d’utilisation et la validité des tests. Nos résultats indiquent que l’approche hybride est la plus prometteuse. Cette recherche explore l’intégration des LLMs comme outils dédiés au sein du processus de génération de cas de test.
Dîner
Présentations par affiches
-
Communication par affiche
Détection des Code Smells dans les Systèmes Basés sur l'IANaouel Moha (ETS), Quentin Stievenart (ETS), Florent Avellaneda (ETS), Brahim Mahmoudi (ÉTS - École de technologie supérieure)
L'intégration de l'intelligence artificielle dans les systèmes logiciels offre des avantages réels mais pose aussi des problèmes de qualité. L'utilisation de frameworks comme TensorFlow et PyTorch complique les modèles d'IA, affectant la performance, la consommation d'énergie et la sécurité. Ces constats m'ont amené à étudier les défauts de code, ou "code smells", pour comprendre les erreurs dans ces systèmes.
J'ai ainsi développé un outil d'analyse statique qui détecte automatiquement ces défauts sans exécuter le code, identifiant des problèmes fréquents tels que les indexations en chaîne dans Pandas ou des erreurs de configuration dans certaines bibliothèques. Cet outil fournit des recommandations concrètes pour améliorer la qualité du code.
Parallèlement, une étude sur des projets Python open-source a révélé que plus de la moitié n'incluent pas de tests unitaires, rendant ces projets plus vulnérables aux erreurs et difficiles à maintenir. Ce constat confirme que l'absence de tests automatisés nuit à la fiabilité des systèmes d'IA.
Mon travail propose donc des solutions pratiques pour renforcer la qualité des systèmes d'IA, aidant les développeurs à mieux détecter les défauts de code, ce qui contribue à améliorer la qualité logicielle et à sécuriser l'utilisation des technologies d'intelligence artificielle.
-
Communication par affiche
Identification et analyse des mauvaises pratiques d’utilisation des services infonuagiques pour l’apprentissage machineManel Abdellatif (ETS), Hadil Ben Amor (ÉTS - École de technologie supérieure), Hakim Ghlissi (ÉTS - École de technologie supérieure)
L’apprentissage machine (ML) est de plus en plus utilisé dans divers secteurs comme le traitement d’images, le diagnostic médical et les systèmes de conduite autonome. Les fournisseurs de services infonuagiques comme Amazon, Google et Microsoft proposent une large gamme de solutions ML, visant à simplifier leur intégration dans les systèmes logiciels et à démocratiser leur utilisation.
Cependant, malgré la montée en puissance des services ML, les développeurs ne suivent pas toujours les bonnes pratiques dans leur conception et leur utilisation. Ils peuvent mal utiliser ces services, ce qui affecte la qualité, la maintenabilité et l’évolutivité des systèmes.
Dans cette présentation, nous analysons la prévalence des mauvaises utilisations des services ML dans un contexte industriel. Nous introduisons un catalogue de 20 mauvaises pratiques courantes et proposons une étude basée sur trois axes : (1) une revue de la littérature, (2) une analyse de projets GitHub intégrant des services ML et (3) une enquête menée auprès de 50 professionnels.
Nos résultats révèlent une large diffusion des mauvaises pratiques, principalement dues à une méconnaissance des capacités des services, une documentation insuffisante et un manque de sensibilisation aux bonnes pratiques. Ces constats soulignent la nécessité de formation continue et de développement d’outils automatisés pour détecter et corriger ces erreurs.
-
Communication par affiche
Une méthodologie guidée par les patrons pour l’identification des microservices dans les systèmes monolithiques d’apprentissage automatiqueManel Abdellatif (ETS), Hakim Ghlissi (ÉTS - École de technologie supérieure), Naouel Moha (ETS)
L’avancement de l’Intelligence Artificielle (IA) a permis des progrès dans divers domaines. Toutefois, les systèmes monolithiques basés sur l’IA peinent à répondre aux exigences croissantes en raison de leur complexité et de leurs besoins computationnels élevés, nécessitant des architectures plus évolutives. Face à ces défis, les architectures à base de microservices offrent une meilleure adaptabilité et maintenabilité. Cependant, leur adoption implique une migration souvent complexe et coûteuse, où l’identification des microservices réutilisables est essentielle pour limiter le redéveloppement de ces systèmes. Bien que plusieurs études aient exploré la décomposition des systèmes monolithiques en microservices, aucune ne prend en compte les spécificités des systèmes d’IA. Le but de notre projet est de proposer une approche de migration des systèmes monolithiques à base d’IA vers les architectures à base de microservices. Pour ce faire, nous proposons une méthodologie de migration basée sur des modèles architecturaux et de conception pour identifier les microservices réutilisables dans ces systèmes monolithiques et restructurer les microservices identifiés. Nous validons notre approche sur une étude de cas et comparons qualitativement les résultats à une approche de décomposition de référence. Nos résultats montrent que notre méthodologie permet d’identifier et restructurer efficacement les microservices tout en tenant compte des spécificités des systèmes à base d’IA.
-
Communication par affiche
Analyse empirique des tendances, thématiques et défis liés à l'utilisation des modèles d'intelligence artificielle de Hugging Face sur Stack OverflowManel Abdellatif (ETS), Hatem Feki (ÉTS - École de technologie supérieure), Mohammed Sayagh (ETS)
Hugging Face (HF) s'est imposé comme une plateforme essentielle pour la communauté d’Intelligence Artificielle (IA), servant de point central où les développeurs collaborent, partagent des modèles et échangent des jeux de données. Malgré son adoption rapide ces dernières années, les défis rencontrés par les développeurs lorsqu'ils travaillent avec HF restent peu étudiés. En conséquence, dans cette étude nous analysons les questions liées à HF sur StackOverflow (SO), l'une des plateformes de discussion les plus populaires, afin de mettre en évidence les thématiques abordées, les principales difficultés et les tendances émergentes. Cette compréhension permettra aux futures recherches et à la communauté HF d'améliorer l'utilisation de la plateforme en se concentrant sur les défis les plus récurrents et les plus complexes. Pour ce faire, nous appliquons une technique de modélisation de sujets afin de catégoriser les thématiques abordées. Nous évaluons ensuite la popularité et la difficulté de ces sujets pour mieux cerner les défis spécifiques rencontrés par les développeurs. Nos résultats révèlent un taux de croissance annuel moyen de 31,3 % du nombre de questions liées à HF sur SO. De plus, nous identifions huit grandes thématiques, parmi lesquelles la compréhension et l’usage des larges modèles de langage (LLMs) étant le sujet le plus populaire, tandis que le calcul distribué et la gestion des ressources pour l’IA constituent les défis les plus complexes pour les développeurs.
-
Communication par affiche
Génération automatique de cas de tests pour systèmes IdO : Exploration de quatre approchesZacharie Chenail-Larcher (ÉTS - École de technologie supérieure), Jean Baptiste Minani (Université Concordia), Naouel Moha (ÉTS)
Les systèmes IdO (IoT) sont de plus en plus communs et critiques, il est donc essentiel de les valider pour garantir leur bon fonctionnement et fiabilité. Les tests « End-To-End » (E2E) permettent de vérifier la fonctionnalité de ces systèmes d’un point de vue externe. Cependant, identifier et créer manuellement les cas à tester est une tâche complexe et pénible. De plus, les spécificités des systèmes IdO rendent inadaptés les outils conçus pour d’autres types de systèmes. Pour résoudre ce problème, nous avons exploré quatre approches pour automatiser la génération de cas de tests E2E pour IdO à partir de cas d’utilisation. Parmi elles, trois intègrent des « Large Language Models » (LLMs) à différentes étapes du processus : - Approche « Sur mesure » : arbres logiques, algorithmes récursifs et déductions logiques selon la structure des cas d’utilisation. - Approche « LLM Mono-phase » : utilisant un LLM pour générer les tests en une seule étape. - Approche « LLM Multi-phase » : utilisant également un LLM, mais séparant la génération en plusieurs étapes pour diminuer la complexité. - Approche hybride : combinant l’approche « Custom » et « Multi-Stage LLM ». Nous avons évalué ces approches sur un système IdO réel, en mesurant la couverture des scénarios d’utilisation et la validité des tests. Nos résultats indiquent que l’approche hybride est la plus prometteuse. Cette recherche explore l’intégration des LLMs comme outils dédiés au sein du processus de génération de cas de test.
-
Communication par affiche
Utilisation d'IA en noeuds aux resources limitéesSébastien Favron (ÉTS - École de technologie supérieure)
L’essor des modèles d’IA, notamment les LLM et les technologies STT/TTS, transforme les interactions homme-machine. Leur exécution sur des dispositifs aux ressources limitées pose des défis en calcul, mémoire et énergie. Contrairement aux architectures cloud, ces systèmes doivent fonctionner de manière autonome avec des contraintes de latence et de confidentialité.
L’optimisation repose sur des techniques comme la quantification, qui réduit la taille des poids, ou encore le fine-tuning et la distillation, qui adaptent les modèles tout en limitant la charge. Ces approches permettent d’exécuter des LLM sur des dispositifs comme le Jetson Orin Nano ou le Raspberry Pi.
Les technologies de reconnaissance et de synthèse vocale nécessitent des optimisations pour fonctionner efficacement sur des systèmes limités. Cela passe par la compression et l’accélération matérielle afin de réduire la charge et garantir un traitement fluide (ex.: Whisper, Piper). L’enjeu est d’assurer de bonnes performances, même hors ligne.
L’exécution locale de modèles IA demande des infrastructures adaptées pour optimiser les inférences et réduire l’empreinte mémoire. L’architecture logicielle doit être modulaire et tirer parti de solutions optimisées (ex.: Ollama). Ces avancées ouvrent la voie à diverses applications : assistants vocaux, domotique, accessibilité, surveillance. L’avenir des chatbots IA repose sur la convergence entre ingénierie logicielle et IA, garantissant des solutions autonomes et efficaces.
Utilisation de l’apprentissage automatique pour le développement et l’optimisation de logiciels
-
Communication orale
Les challenges de la revue de code à UbisoftArezou Amini (Ubisoft), Doriane Olewicki (Ubisoft)
La Forge est un département de recherche d’Ubisoft qui réunit des experts de l’industrie et du milieu académique pour travailler sur des enjeux liés au développement de jeux vidéo. Parmi les nombreux sujets explorés, La Forge s'intéresse notamment au sujet de l’ingénierie logicielle. Comme de nombreuses autres entreprises du domaine du développement logiciel, Ubisoft s’appuie sur un processus d’intégration de code à grande échelle, impliquant plusieurs milliers de collaborateurs à travers le monde et couvrant des dizaines de franchises. Dans ce cadre, la revue de code par les pairs est une étape essentielle pour garantir la qualité du code. Cependant, ce processus présente des défis importants, notamment en raison du volume de code à examiner et du nombre de développeurs impliqués. Notre mandat de recherche consiste à identifier les défis relatifs à l'ingénierie logicielle et à explorer des solutions innovantes pour assister nos développeurs dans leur travail. En particulier, nous nous intéressons aux approches basées sur l’intelligence artificielle et la génération automatique pour assister la revue de code, en suggérant des commentaires pertinents et des corrections de code. À travers cette présentation, nous exposerons nos approches et leurs évaluations menées au sein d’Ubisoft.
-
Communication orale
Modèles de langue et requis logiciels: opportunités et défisPierre André Ménard (ÉTS - École de technologie supérieure)
L’avancement récent des grands modèles de langue a permis des percées notables pour certains aspects du développement logiciel tel que la programmation et la documentation, mais qu’en est-il des requis logiciels? Est-ce que l’approche statistique de ces modèles est adaptée aux problématiques de vérification des requis telles que l'ambiguïté des énoncés, la sous-spécification, les requis implicites, l’intégrité intra et inter requis et les contradictions? Une présentation de l’état de l’art de ces problématiques mettra en relief les progrès et les défis inhérents à ce domaine à l’intersection du génie logiciel et du traitement des langues naturelles.
-
Communication orale
Rizemind: transformer les jeux de données stratégiques et fragmentées en intelligence collectiveMichael Duchesne (T-RIZE Group)
T-RIZE développe une nouvelle itération de l’apprentissage fédéré pour ses clients institutionnels avec une architecture qui met l’emphase sur la collaboration, la décentralisation, la monétisation ainsi que la transparence.
Cette solution vise à unifier des jeux de données à forte valeur aujourd’hui isolés en raison de contraintes légales ou de considérations concurrentielles. Reposant sur le principe de l’apprentissage fédéré, elle permet l’entraînement local des modèles sans aucun partage de données.
Cependant, déployer une telle approche dans un environnement concurrentiel comme la finance présente de nombreux défis. C’est pourquoi T-RIZE intègre des fonctionnalités avancées telles que: le calcul et la rémunération des contributions de chaque entraîneur, une traçabilité renforcée grâce a la chaîne de blocs et l’intégration d’une inférence vérifiable et respectueuse de la vie privée grâce aux « zero-knowledge proofs.»