IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'IA n'est pas prête à remplacer les développeurs humains pour le débogage, selon des chercheurs de Microsoft.
Elle ne peut pas déboguer les logiciels de manière fiable même si elle a accès à des outils

Le , par Stéphane le calme

20PARTAGES

8  0 
Alors que les modèles d’intelligence artificielle générative comme ChatGPT, Claude, Gemini ou CodeWhisperer font déjà figure d’assistants prometteurs pour l’écriture de code, une nouvelle étude menée par des chercheurs de Microsoft met un sérieux bémol à l’enthousiasme ambiant : l’IA n’est pas encore à la hauteur lorsqu’il s’agit de déboguer efficacement du code réel.

La prolifération continue des outils de codage de l'IA ne stimule pas seulement l'efficacité des développeurs, elle signale également un avenir où l'IA générera une part croissante de tout nouveau code. Thomas Dohmke, PDG de GitHub, l'a prédit en 2023, lorsqu'il a déclaré que « tôt ou tard, 80 % du code sera écrit par Copilot ».

Les petites et grandes entreprises de logiciels utilisent déjà largement l'IA pour générer du code. Garry Tan, de Y Combinator, a noté que 95 % du code d'un quart des dernières start-ups de Y Combinator était écrit par de grands modèles de langage.

En fait, selon Microsoft, la plupart des développeurs passent la majeure partie de leur temps à déboguer le code, et non à l'écrire. Des chercheurs de son écurie déclare d'ailleurs :

« En tant que mainteneurs de dépôts de logiciels libres populaires, nous nous sentons concernés par ce constat. Mais que se passerait-il si un outil d'IA pouvait proposer des correctifs pour des centaines de problèmes ouverts, et si nous n'avions qu'à les approuver avant de les fusionner ? C'est ce qui nous a incités à maximiser les gains de temps potentiels des outils de codage IA en leur apprenant à déboguer le code.

« Par débogage, nous entendons le processus interactif et itératif de correction du code. Les développeurs émettent généralement des hypothèses sur la raison du plantage de leur code, puis rassemblent des preuves en parcourant le programme et en examinant les valeurs des variables. Ils utilisent souvent des outils de débogage tels que pdb (débogueur Python) pour les aider à recueillir des informations. Ce processus est répété jusqu'à ce que le code soit corrigé.

« Les outils de codage IA d'aujourd'hui stimulent la productivité et excellent à suggérer des solutions aux bogues sur la base du code disponible et des messages d'erreur. Cependant, contrairement aux développeurs humains, ces outils ne recherchent pas d'informations supplémentaires lorsque les solutions échouent, ce qui laisse certains bogues sans réponse, comme vous pouvez le voir dans cette démonstration simple qui montre comment une colonne mal étiquetée fait échouer les outils de codage d'aujourd'hui. Les utilisateurs peuvent ainsi avoir l'impression que les outils de codage de l'IA ne comprennent pas tout le contexte des problèmes qu'ils tentent de résoudre ».


Debug-gym : un environnement pour les outils de codage de l'IA afin d'apprendre à déboguer le code comme des programmeurs

Il existe peu de domaines dans lesquels l'IA a été déployée de manière aussi robuste que dans celui du développement de logiciels. Du « vibe coding » (une nouvelle pratique dans laquelle des personnes, dont certaines ont une expérience limitée du codage, développent rapidement des logiciels à l'aide d'outils de codage assistés par l'IA, sans se préoccuper de l'efficacité du code tant qu'il est fonctionnel) à GitHub Copilot, en passant par les startups qui créent des applications rapides avec l'aide de LLM, l'IA est déjà profondément intégrée. Même Google a déclaré avoir généré 25% de son code par IA.

Toutefois, ceux qui prétendent que nous ne sommes qu'à quelques mois du remplacement de la plupart des développeurs par des agents d'IA devraient revoir leurs attentes, car les modèles ne sont pas assez performants en matière de débogage, et le débogage occupe la majeure partie du temps d'un développeur. C'est ce que suggère Microsoft Research, qui a créé un nouvel outil appelé debug-gym pour tester et améliorer la façon dont les modèles d'IA peuvent déboguer les logiciels.

Debug-gym (disponible sur GitHub et détaillé dans un billet de blog) est un environnement qui permet aux modèles d'IA d'essayer de déboguer n'importe quel dépôt de code existant en ayant accès à des outils de débogage qui ne font pas historiquement partie du processus pour ces modèles. Microsoft a constaté que sans cette approche, les modèles sont très mauvais dans les tâches de débogage. Avec cette approche, ils s'améliorent, mais sont encore loin de ce que peut faire un développeur humain expérimenté.

Voici comment les chercheurs de Microsoft décrivent debug-gym :

« Une question de recherche naturelle émerge : dans quelle mesure les LLM peuvent-ils utiliser des outils de débogage interactifs tels que pdb ? Pour explorer cette question, nous avons lancé debug-gym - un environnement qui permet aux agents de réparation de code d'accéder à des outils pour un comportement actif de recherche d'informations. Debug-gym élargit l'espace d'action et d'observation d'un agent grâce au retour d'information de l'utilisation des outils, ce qui permet de définir des points d'arrêt, de naviguer dans le code, d'imprimer des valeurs variables et de créer des fonctions de test. Les agents peuvent interagir avec les outils pour étudier le code ou le réécrire, s'ils ont confiance. Nous pensons que le débogage interactif avec des outils appropriés peut permettre aux agents de codage de s'attaquer à des tâches réelles de génie logiciel et qu'il est au cœur de la recherche sur les agents basée sur le LLM. Les corrections proposées par un agent de codage doté de capacités de débogage, puis approuvées par un programmeur humain, seront fondées sur le contexte de la base de code, de l'exécution du programme et de la documentation, plutôt que de s'appuyer uniquement sur des suppositions basées sur des données d'entraînement vues précédemment ».

Vous trouverez ci-dessous les résultats des tests effectués avec debug-gym.


Les agents qui utilisent des outils de débogage sont nettement plus performants que ceux qui n'en utilisent pas, mais leur taux de réussite n'est pas encore assez élevé

Une approche efficace mais qui souligne les limites de l'outil

Cette approche est beaucoup plus efficace que celle qui consiste à s'appuyer sur les modèles tels qu'ils sont habituellement utilisés, mais lorsque votre meilleur cas est un taux de réussite de 48,4 %, vous n'êtes pas prêt pour le primetime. Les limites sont probablement dues au fait que les modèles ne comprennent pas parfaitement comment utiliser au mieux les outils et que leurs données d'entraînement actuelles ne sont pas adaptées à ce cas d'utilisation.

« Nous pensons que cela est dû à la rareté des données représentant un comportement décisionnel séquentiel (par exemple, les traces de débogage) dans le corpus d'entraînement LLM actuel », indique le billet de blog. « Cependant, l'amélioration significative des performances... valide le fait qu'il s'agit d'une direction de recherche prometteuse ».

Ce rapport initial n'est que le début des efforts, affirme le billet. L'étape suivante consiste à « affiner un modèle de recherche d'informations spécialisé dans la collecte des informations nécessaires à la résolution des bogues ». Si le modèle est volumineux, la meilleure solution pour réduire les coûts d'inférence pourrait être de « construire un modèle de recherche d'informations plus petit qui puisse fournir des informations pertinentes au modèle plus important ».

Ce n'est pas la première fois que nous voyons des résultats qui suggèrent que certaines des idées ambitieuses sur les agents d'IA remplaçant directement les développeurs sont assez éloignées de la réalité. De nombreuses études ont déjà montré que même si un outil d'IA peut parfois créer une application qui semble acceptable à l'utilisateur pour une tâche précise, les modèles ont tendance à produire un code chargé de bogues et de vulnérabilités de sécurité, et ils ne...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de RenarddeFeu
Membre averti https://www.developpez.com
Le 14/04/2025 à 11:50
L'IA, c'est le cancre qui a triché lors de l'examen en copiant sur son petit camarade sans réfléchir. Des fois le code marche, d'autres non.
4  0