Microsoft développe une IA capable de trouver des bugs dans le code

Icône de temps de lecture 2 minute. lis


Les lecteurs aident à prendre en charge MSpoweruser. Nous pouvons recevoir une commission si vous achetez via nos liens. Icône d'info-bulle

Lisez notre page de divulgation pour savoir comment vous pouvez aider MSPoweruser à soutenir l'équipe éditoriale En savoir plus

Des chercheurs de Microsoft ont développé une IA qui peut trouver des bogues dans le code, aidant les développeurs à déboguer leurs applications avec plus de précision et d'efficacité.

Les chercheurs Miltos Allamanis, chercheur principal et Marc Brockschmidt, directeur principal de la recherche ont développé leur IA, BugLabs, à peu près de la même manière que les réseaux antagonistes génératifs (GAN).

Microsoft a dressé deux réseaux l'un contre l'autre - l'un conçu pour introduire de petits bogues dans le code existant et l'autre visant à trouver ces bogues. Les deux réseaux sont devenus de mieux en mieux, résultant en une IA qui était bonne pour identifier les bogues cachés dans le code réel.

L'avantage de cette approche était que le processus était entièrement auto-supervisé et n'avait pas besoin de données étiquetées.

Ils rapportent les résultats ci-dessous :

En théorie, nous pourrions appliquer largement le jeu de cache-cache, en apprenant à une machine à identifier des bogues arbitrairement complexes. Cependant, de tels bogues sont toujours hors de portée des méthodes d'IA modernes. Au lieu de cela, nous nous concentrons sur un ensemble de bogues apparaissant couramment. Ceux-ci incluent des comparaisons incorrectes (par exemple, en utilisant « <= » au lieu de « < » ou « > »), des opérateurs booléens incorrects (par exemple, en utilisant « et » au lieu de « ou » et vice versa), des utilisations abusives de variables (par exemple, en utilisant de manière incorrecte "i" au lieu de "j") et quelques autres. Pour tester notre système, nous nous concentrons sur le code Python.

Une fois notre détecteur formé, nous l'utilisons pour détecter et réparer les bogues dans le code réel. Pour mesurer les performances, nous annotons manuellement un petit ensemble de données de bogues de packages dans le Python Package Index avec de tels bogues et montrons que les modèles entraînés avec notre méthode "cache-cache" sont jusqu'à 30 % meilleurs par rapport à d'autres alternatives, par exemple, détecteurs formés avec des bogues insérés au hasard. Les résultats sont prometteurs, montrant qu'environ 26 % des bogues peuvent être détectés et corrigés automatiquement. Parmi les bogues que notre détecteur a trouvés, il y avait 19 bogues jusque-là inconnus dans le code GitHub open source réel. Cependant, les résultats ont également montré de nombreux avertissements de faux positifs, suggérant que de nouvelles avancées sont nécessaires avant que de tels modèles puissent être déployés dans la pratique.

Ils concluent que leur approche est prometteuse, même si bien sûr beaucoup plus de travail est nécessaire pour rendre ces détecteurs fiables pour une utilisation pratique. Donné Le GPT-3 de Microsoft fonctionne sur GitHub cependant, il est tout à fait possible que ce travail soit éventuellement commercialisé.

Lire leur article complet ici.

En savoir plus sur les sujets : ai, mobiles, microsoft