Photo 65.jpg
L'IA automatise tout et peut-elle remplacer les programmeurs ? Photo : Midjourney

Une équipe de chercheurs vient de publier une carte 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 prendrait discrètement en charge les tâches routinières du développement logiciel : refactorisation de code complexe, migration de systèmes existants et recherche de conditions de concurrence, laissant aux ingénieurs logiciels humains le temps 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 récentes avancées de l'IA semblent rapprocher cette vision.

Cependant, une nouvelle étude menée par des scientifiques du Computer Science and Artificial Intelligence Laboratory (CSAIL) - MIT et des instituts de recherche partenaires a montré que : pour réaliser cet avenir, nous devons d'abord regarder directement les défis très réels du temps présent.

« Beaucoup disent que les programmeurs ne sont plus nécessaires car l'IA peut tout automatiser », a déclaré 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 significatifs. Les outils dont nous disposons aujourd'hui sont bien plus puissants qu'auparavant. Mais il nous reste encore beaucoup de chemin à parcourir pour exploiter pleinement le potentiel de l'automatisation. »

Le professeur Armando Solar-Lezama soutient que l'idée reçue du génie logiciel est qu'il s'agit d'une tâche similaire à un devoir de programmation : prendre une petite fonction et écrire du code pour la gérer, ou réaliser un exercice de type LeetCode. La réalité est bien plus complexe : des refactorisations de code pour optimiser les conceptions aux migrations à grande échelle de millions de lignes de code du COBOL vers Java, qui modifient l'ensemble de la pile technologique d'une entreprise.

La mesure et la communication restent des problèmes difficiles

Les optimisations de code à l'échelle industrielle, comme les ajustements du cœur du GPU ou les améliorations multicouches du moteur Chrome V8, restent difficiles à évaluer. Les benchmarks actuels concernent principalement les petits problèmes groupés. L'indicateur le plus pratique, SWE-Bench, demande simplement à un modèle d'IA de corriger un bug sur GitHub – un exercice de programmation de bas niveau impliquant quelques centaines de lignes de code et exposant potentiellement des données, et ignorant un large éventail de scénarios réels, comme la refactorisation assistée par IA, la programmation en binôme homme-machine ou les réécritures de systèmes hautes performances comportant des millions de lignes de code. Tant que les benchmarks ne couvriront pas ces scénarios à haut risque, mesurer les progrès – et donc les accélérer – restera un défi permanent.

De plus, la communication homme-machine constitue également un obstacle majeur. Alex Gu, doctorant et auteur principal, a déclaré qu'actuellement, l'interaction avec l'IA reste fragile. Lorsqu'elle demande à l'IA de générer du code, elle reçoit souvent des fichiers volumineux et non structurés, accompagnés de quelques jeux de tests simples et approximatifs. Ce manque de clarté se reflète également dans l'incapacité de l'IA à exploiter efficacement les outils logiciels familiers aux humains, tels que les débogueurs, les analyseurs statiques, etc.

Appel à l'action de la communauté

Les auteurs soutiennent qu’il n’existe pas de solution miracle à ces problèmes et appellent à des efforts à l’échelle de la communauté : créer des données qui reflètent le processus de développement réel des programmeurs (quel code conserver, quel code supprimer, comment le code est refactorisé au fil du temps, etc.) ; des outils d’évaluation communs pour la qualité du refactoring, la durabilité des correctifs et la précision des transitions système ; et créer des outils transparents qui permettent à l’IA d’exprimer l’incertitude et d’inviter l’intervention humaine.

Le doctorant Alex Gu y voit un « appel à l'action » pour les communautés open source à grande échelle, qu'aucun laboratoire ne peut à lui seul réaliser. Solar-Lezama envisage des progrès progressifs et progressifs – « des résultats de recherche résolvant un problème à la fois » – transformant l'IA d'un simple « outil de suggestion de code » en un véritable partenaire d'ingénierie.

« Pourquoi est-ce important ? Les logiciels sont déjà à la base de la finance, des transports, de la santé et de presque toutes les activités quotidiennes. Mais l'effort humain pour les développer et les maintenir en toute sécurité devient un goulot d'étranglement », a déclaré Gu. « Une IA capable d'effectuer le gros du travail 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, nous devons comprendre que terminer un morceau de code est la partie facile ; le plus difficile, c'est tout le reste. »

(Brèvement traduit de MIT News)

Source : https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html