
Une équipe de chercheurs vient de publier une cartographie complète des défis auxquels est confrontée l'intelligence artificielle (IA) dans le développement de logiciels, et a proposé une feuille de route de recherche pour faire progresser le domaine.
Imaginez un avenir où l'IA prend discrètement en charge les tâches fastidieuses du développement logiciel : refactorisation de code complexe, migration des systèmes existants et détection des conflits d'accès, permettant ainsi aux ingénieurs logiciels de se concentrer sur l'architecture système, la conception et les problèmes créatifs que les machines ne peuvent pas encore résoudre. Les progrès récents en IA semblent rendre cette vision plus concrète.
Cependant, une nouvelle étude menée par des scientifiques du Laboratoire d'informatique et d'intelligence artificielle (CSAIL) du MIT et d'instituts de recherche partenaires a montré que : pour réaliser cet avenir, nous devons d'abord regarder de près les défis très réels de l'époque actuelle.
« Nombreux sont ceux qui affirment que les programmeurs ne sont plus nécessaires car l’IA automatise tout », explique Armando Solar-Lezama, professeur de génie électrique et d’informatique au MIT, chercheur principal au CSAIL et auteur principal de l’étude. « En réalité, nous avons réalisé des progrès considérables. Les outils sont bien plus performants qu’auparavant. Mais le chemin est encore long avant d’exploiter pleinement le potentiel de l’automatisation. »
Le professeur Armando Solar-Lezama soutient que la vision dominante réduit le génie logiciel à un simple exercice de programmation étudiant : écrire le code correspondant à une petite fonction, ou réaliser un exercice de type LeetCode. La réalité est pourtant bien plus complexe : elle englobe les refactorisations de code pour optimiser les conceptions, ainsi que les migrations à grande échelle, avec des millions de lignes de code transférées de COBOL à Java, qui transforment radicalement l’infrastructure technologique d’une entreprise.
La mesure et la communication restent des problèmes difficiles
Les optimisations de code à l'échelle industrielle, telles que les modifications apportées aux cœurs des GPU ou les améliorations multicouches du moteur Chrome V8, restent difficiles à évaluer. Les benchmarks actuels concernent principalement des problèmes simples et bien délimités. La métrique la plus pratique, SWE-Bench, consiste simplement à demander à un modèle d'IA de corriger un bug sur GitHub : un exercice de programmation bas niveau impliquant quelques centaines de lignes de code, pouvant exposer des données, et ignorant un large éventail de scénarios réels, comme la refactorisation assistée par l'IA, la programmation en binôme homme-machine ou la réécriture de systèmes haute performance comportant des millions de lignes de code. Tant que les benchmarks ne couvriront pas les scénarios à haut risque, mesurer les progrès, et donc les accélérer, restera un défi.
De plus, la communication homme-machine représente un obstacle majeur. Alex Gu, doctorant et auteur principal de l'étude, explique qu'actuellement, interagir avec l'IA s'apparente encore à une « ligne de communication fragile ». Lorsqu'il demande à une IA de générer du code, il reçoit souvent des fichiers volumineux et non structurés, accompagnés de quelques jeux de tests rudimentaires et sommaires. Ce manque de communication se manifeste également par l'incapacité de l'IA à exploiter efficacement des outils logiciels familiers aux humains, tels que les débogueurs et les analyseurs statiques.
Appel à l'action de la communauté
Les auteurs affirment qu'il n'existe pas de solution miracle à ces problèmes et appellent à des efforts à l'échelle de la communauté : constituer des données reflétant le processus de développement réel des programmeurs (quel code conserver, quel code supprimer, comment le code est remanié au fil du temps, etc.) ; des outils d'évaluation communs pour la qualité du remaniement, la durabilité des correctifs et la précision de la migration du système ; et créer des outils transparents permettant à l'IA d'exprimer l'incertitude et de solliciter une intervention humaine.
Alex Gu, doctorant, y voit un appel à l'action pour les grandes communautés open source, un appel qu'aucun laboratoire ne peut répondre à lui seul. Solar-Lezama envisage des progrès progressifs, par petites étapes – « des résultats de recherche qui résolvent le problème un à un » – transformant ainsi l'IA d'un simple outil de suggestion de code en un véritable partenaire technique.
« Pourquoi est-ce important ? Les logiciels sont déjà à la base de la finance, des transports, de la santé et de presque toutes nos activités quotidiennes. Mais l’effort humain nécessaire pour les concevoir et les maintenir en toute sécurité devient un goulot d’étranglement », a déclaré Gu. « Une IA capable de prendre en charge les tâches les plus complexes sans commettre d’erreurs cachées permettrait aux programmeurs de se concentrer sur la créativité, la stratégie et l’éthique. Mais pour y parvenir, il faut comprendre que terminer un morceau de code est la partie facile ; le plus difficile, c’est tout le reste. »
(Traduction abrégée de MIT News)
Source : https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html






Comment (0)