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 apprentissage automatique

instagram viewer
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.

Architectures de réseaux de neurones sont ensuite utilisés 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 variables abus.

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 recherche et correction de bugs qui vont de gênant à catastrophique. 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 du 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.

Apprentissage en profondeur vs. Apprentissage automatique vs. IA: comment vont-ils ensemble ?

Vous essayez de faire la différence entre l'intelligence artificielle, l'apprentissage automatique et l'apprentissage en profondeur? Voici ce qu'ils signifient tous.

Lire la suite

PartagerTweeterE-mail
Rubriques connexes
  • La programmation
  • Microsoft
  • Conseils de codage
  • Intelligence artificielle
A propos de l'auteur
Anina Ot (89 articles publiés)

Anina est rédactrice indépendante en technologie et sécurité Internet chez MakeUseOf. Elle a commencé à écrire sur la cybersécurité il y a 3 ans dans l'espoir de la rendre plus accessible à la personne moyenne. Désireux d'apprendre de nouvelles choses et un énorme nerd d'astronomie.

Plus de Anina Ot

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner