Pour gérer vos consentements :

BugLab : une autre approche de l’IA pour l’analyse du code source

Utiliser des réseaux antagonistes génératifs (GAN) pour détecter et corriger des erreurs dans du code ? C’est le fondement de l’approche BugLab. Récemment présentée à la conférence NeurIPS, elle émane de Microsoft Research.

BugLab s’inspire de la méthode GAN en mettant en concurrence deux modèles qui se livrent à une sorte de « cache-cache ». Le premier examine un fragment de code, décide s’il doit y introduire une erreur, où et sous quelle forme. Le second tente de détecter ces erreurs et de les corriger. Au fil des cycles, ils se renforcent l’un l’autre. L’entraînement se fait sans supervision et ne nécessite pas de jeu de données préalablement étiqueté.

L’approche BugLab ne traite pas le code comme une suite de séquences en langage naturel*. Elle l’examine comme un tout et dégage des entités (expression, symbole, identifiant…) modélisées dans un graphe. Cela permet d’exploiter des architectures de réseaux neuronaux standard.

Les modèles entraînés « en mode BugLab » se révèlent, selon les chercheurs, jusqu’à 30 % plus performants que ceux entraînés avec des erreurs introduites au hasard. Environ un quart de ces erreurs peuvent être corrigées automatiquement. Mais le taux de faux positifs est important (98 % environ sur un échantillon de dépôts GitHub non rencontrés lors de la phase d’entraînement).

La couverture fonctionnelle est encore limitée. Elle se concentre en l’occurrence sur quelques erreurs fréquentes. Parmi elles, l’usage de variables inappropriées et des mauvais opérateurs booléens.

L’échantillon RandomBugs se compose d’environ 760 000 fragments de code dérivés des fonctions issues de 600 paquets PyPi. Pour chaque fonction, on en ajoute 9 réécritures contenant un bug inséré au hasard. PyPiBugs contient quand à lui de « vraies » erreurs collectées sur l’ensemble des paquets PyPi.

* Au contraire, par exemple, de GitHub Copilot ou de CodeT5 (Salesforce).

Illustration principale © artinspiring – Adobe Stock

Recent Posts

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

1 heure ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

4 heures ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

6 heures ago

Accord Microsoft-CISPE : comment Google a tenté la dissuasion

Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…

6 heures ago

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

6 heures ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

1 jour ago