L’écriture de code n’est que la première étape de la création de quelque chose. Rechercher dans votre code les bogues et les corriger prend du temps et prend souvent plus de temps que prévu, mais c’est néanmoins une étape essentielle.
Si seulement il y avait un moyen de corriger automatiquement les bogues qui va au-delà des erreurs de syntaxe et comprend vraiment les intentions derrière votre code.
Récemment, Microsoft a développé une IA capable de détecter et de corriger les bogues dans le code en utilisant l’apprentissage en profondeur. Mais comment cette technologie révolutionnaire est-elle apparue et comment fonctionne-t-elle ?
Qu’est-ce que BugLab et comment ça marche ?
BugLab est une implémentation Python d’intelligence artificielle qui recherche et corrige les bogues dans le code. Il a été développé par Miltos Alamanis et Marc Brockschmidt, deux chercheurs de Microsoft Research. Ils ont réussi à surmonter le manque de données étiquetées souvent utilisées dans l’apprentissage automatique en recourant à l’apprentissage auto-supervisé et en permettant à BugLab de s’entraîner à travers un jeu de « cache-cache » avec des lignes de code.
BugLab a été formé à l’aide de deux modèles informatiques ; un qui cache les bogues dans des extraits de code corrects, et un autre qui recherche et corrige les bogues. Les deux modèles apprennent continuellement l’un de l’autre. Au fil du temps, le sélecteur de bogues devient meilleur pour cacher les bogues dans le code, et le détecteur devient meilleur pour les attraper et les corriger.
Comprendre le code avec BugLab
La majorité des bogues que BugLab AI est entraîné à détecter et à corriger n’entraînent pas d’erreurs logiques mais sont uniquement erronés en raison du contexte général du code. Comprendre l’intention du développeur est essentiel pour trouver ces bogues.
Le traitement des extraits de code de la même manière que le traitement des langues naturelles donne des résultats sous-optimaux. Il est toujours difficile pour l’IA de comprendre la relation entre différentes déclarations lorsqu’elles sont divisées en jetons individuels.
Au lieu de cela, BugLab examine le code dans son ensemble. De cette façon, chaque syntaxe, expression, symbole et identifiant sont représentés sous forme de points dans un graphique, permettant à l’IA de « comprendre » la connexion et la relation entre les différents nœuds.
Les architectures de réseaux de neurones sont ensuite utilisées pour entraîner l’IA de débogage. Ils sont capables de tirer des informations de la structure riche du graphe de code et de fournir des raisons pour la relation de chaque nœud avec les autres.
BugLab fonctionne-t-il sur du code réel ?
Il est important de noter que BugLab ne remplace pas un programmeur qualifié. C’est parce que les bogues complexes ne sont toujours pas à portée de main.
L’objectif de Microsoft avec l’IA est de détecter et de corriger les bogues courants tels que les opérateurs booléens incorrects, comme l’utilisation de « ou » au lieu de « et » et vice versa, en plus des comparaisons de valeurs inversées et des abus de variables.
Selon Microsoft, les résultats sont prometteurs, car BugLab est capable de détecter et de corriger automatiquement environ 26% des bogues dans un morceau de code. Pourtant, un pourcentage important de précision est toujours perdu en raison de faux positifs et de bugs manqués.
Futures applications de Microsoft BugLab
L’objectif de Microsoft avec BugLab est de faire gagner du temps aux développeurs de logiciels, souvent passé à revoir leur code à la recherche du plus petit des bogues.
Bien que le modèle de débogage de l’IA soit toujours en cours de développement, il a la possibilité de trouver et de corriger des bogues allant de gênants à catastrophiques. Mais dans quelques années, vous pouvez vous attendre à ce que BugLab devienne un incontournable dans la boîte à outils de chaque développeur, même s’il n’est pas parfait.
L’évolution exponentielle de l’IA d’auto-apprentissage
Plus les modèles d’IA comme BugLab ont de temps pour s’entraîner sur des exemples réels, meilleurs et plus précis ils produiront.
L’un des obstacles les plus difficiles rencontrés par les chercheurs de Microsoft lors du développement de BugLab était d’utiliser une compréhension humaine du code et de l’intention dans l’outil. Mais maintenant que c’est en grande partie résolu, vous pouvez vous attendre à ce que BugLab s’améliore avec le temps.
Lire la suite
A propos de l’auteur