
Un groupe de chercheurs vient de publier une cartographie complète des défis auxquels l'intelligence artificielle (IA) est confrontée dans le domaine du développement logiciel, et a proposé une feuille de route de recherche pour faire progresser davantage ce domaine.
Imaginez un avenir où l'IA prend en charge discrètement les tâches fastidieuses du développement logiciel : refactorisation de code complexe, migration de systèmes existants et détection des bogues liés à la concurrence, permettant ainsi aux ingénieurs logiciels de se concentrer pleinement 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 avoir rendu cette vision très proche.
Cependant, une nouvelle étude menée par des scientifiques du Laboratoire d'informatique et d'intelligence artificielle (CSAIL) du MIT et des instituts de recherche partenaires a montré que, pour réaliser cet avenir, nous devons d'abord faire face aux défis bien réels du moment présent.
« Nombreux sont ceux qui affirment que les programmeurs ne sont plus nécessaires car l’IA a tout automatisé », explique le professeur Armando Solar-Lezama, maître de conférences en génie électrique et informatique au MIT, chercheur principal au CSAIL et auteur principal de l’étude. « En réalité, nous avons accompli des progrès considérables. Les outils dont nous disposons aujourd’hui sont bien plus performants qu’auparavant. Mais pour exploiter pleinement le potentiel de l’automatisation, le chemin est encore long. »
Le professeur Armando Solar-Lezama soutient que l'idée dominante actuelle réduit le génie logiciel à une tâche similaire à un exercice de programmation étudiant : recevoir une petite fonction et écrire le code correspondant, ou réaliser un exercice de type LeetCode. Or, la réalité est bien plus complexe : du refactoring de code pour optimiser la conception aux migrations à grande échelle de millions de lignes de code de COBOL vers Java, qui transforment en profondeur la plateforme technologique d'une entreprise.
La mesure et la communication demeurent des problèmes complexes.
L'optimisation du code à l'échelle industrielle — comme l'ajustement des cœurs GPU ou les améliorations multi-niveaux de Chrome V8 — demeure difficile à évaluer. Les benchmarks actuels se concentrent principalement sur des problèmes mineurs et isolés. La métrique la plus pratique actuellement disponible, SWE-Bench, exige simplement qu'un modèle d'IA corrige un bug sur GitHub — ce qui équivaut à un exercice de programmation bas niveau, impliquant quelques centaines de lignes de code, avec un risque de fuites de données, et ignorant une multitude d'autres scénarios concrets tels que la refactorisation assistée par l'IA, la programmation homme-machine ou la réécriture de systèmes haute performance comportant des millions de lignes de code. Tant que les benchmarks ne seront pas étendus à des scénarios à plus haut risque, mesurer les progrès — et donc les stimuler — restera un défi de taille.
De plus, la communication homme-machine constitue un obstacle majeur. Alex Gu, doctorant et auteur principal de l'étude, explique qu'actuellement, interagir avec l'IA s'apparente à « un fil ténu de communication ». Lorsqu'il demande à l'IA de générer du code, il reçoit souvent des fichiers volumineux et non structurés, accompagnés de quelques cas de test simples et rudimentaires. Ce manque de communication se manifeste également par l'incapacité de l'IA à utiliser efficacement des outils logiciels familiers aux humains, tels que les débogueurs et les analyseurs statiques.
Un 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 est conservé, quel code est abandonné, 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 des transitions du système ; et créer des outils transparents permettant à l'IA d'exprimer l'incertitude et d'inviter à l'intervention humaine.
Alex Gu, doctorant, y voit un appel à l'action pour les grandes communautés open source, un défi qu'aucun laboratoire ne peut relever seul. Solar-Lezama envisage des progrès grâce à des étapes progressives et complémentaires – des résultats de recherche qui s'attaquent successivement à des aspects du problème – transformant ainsi l'IA d'un simple outil de recommandation de code en un véritable partenaire d'ingénierie.
« Pourquoi est-ce important ? Les logiciels sont aujourd’hui à la base de la finance, des transports, de la santé et de toutes nos activités quotidiennes. Or, les efforts humains déployés pour les concevoir et les maintenir en toute sécurité deviennent un véritable goulot d’étranglement », explique Gu. « Une IA capable de gérer les tâches les plus complexes sans générer 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 bien comprendre que la simple écriture d’un code n’est que la partie émergée de l’iceberg ; le plus difficile est tout le reste. »
(Adapté de MIT News)
Source : https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html






Comment (0)