Are Large Language Models Robust in Understanding Code Against Semantics-Preserving Mutations?
Ce papier révèle que, bien que les modèles de langage de grande taille les plus avancés atteignent une haute précision prédictive sur les tâches de code, ils reposent fréquemment sur un raisonnement défectueux et présentent une fragilité significative, modifiant souvent leurs prédictions lorsqu'ils sont confrontés à des mutations de code préservant la sémantique.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous avez un étudiant très talentueux capable de résoudre des problèmes mathématiques complexes et de rédiger des essais qui semblent incroyablement intelligents. Vous lui demandez d'expliquer comment il a résolu un problème, et il vous fournit une histoire parfaite, étape par étape. Vous vous sentez confiant qu'il comprend véritablement la matière.
Mais que se passerait-il si vous disiez à ce même étudiant : « D'accord, maintenant résolvez exactement le même problème, mais au lieu d'utiliser le mot « pomme », utilisez le mot « fruit », et au lieu de dire « ajouter », dites « additionner » ? »
Si l'étudiant devient soudainement confus, change sa réponse ou donne une explication complètement différente (et erronée), vous réaliseriez qu'il ne comprenait pas réellement la logique des mathématiques. Il se contentait de mémoriser les mots spécifiques et les modèles que vous aviez utilisés auparavant.
C'est exactement ce que les chercheurs de l'Université d'Oxford ont découvert à propos des grands modèles de langage (LLM) lorsqu'ils leur ont demandé de comprendre le code informatique.
Le piège du « Vibe Coding »
Aujourd'hui, beaucoup de gens utilisent des outils d'IA pour écrire du code, une tendance appelée « vibe coding ». Nous faisons confiance à ces modèles d'IA pour corriger les bugs et écrire des programmes. Mais les chercheurs se sont posé une question effrayante : Ces modèles d'IA comprennent-ils réellement comment fonctionne le code, ou sont-ils simplement très doués pour deviner en se basant sur des modèles ?
Pour le découvrir, ils ont traité l'IA comme un étudiant passant un examen, mais avec une particularité.
Le test du « Métamorphose »
Les chercheurs ont pris un ensemble de programmes informatiques et ont effectué cinq « tours de magie » spécifiques sur eux. Ces tours ont changé l'apparence du code (la syntaxe) mais ont conservé exactement le même sens et le même résultat (la sémantique). C'est comme prendre une phrase, « Le chat s'est assis sur le tapis », et la réécrire sous la forme : « Sur le tapis, le félin s'est reposé ». Le sens est identique, mais les mots sont différents.
Les cinq tours qu'ils ont utilisés étaient :
- Renommage des variables : Changer
ma_listeenx9z2. - Miroir des comparaisons : Changer
si x > 5ensi 5 < x. - Échange de logique : Inverser les parties « si » et « sinon » d'une décision.
- Conversion de boucle : Transformer une boucle « pour » en une boucle « tant que ».
- Déroulement de boucle : Écrire manuellement les dernières étapes d'une boucle au lieu de laisser l'ordinateur les répéter.
Les résultats : De bons devineurs, pas de vrais penseurs
Lorsque les chercheurs ont soumis ces tests à neuf modèles d'IA différents (y compris les plus célèbres comme GPT-5.2 et Gemini-3), ils ont découvert des tendances inquiétantes :
- Le problème du « raisonnement défectueux » : Même lorsque l'IA donnait la bonne réponse, elle le faisait souvent pour de mauvaises raisons. En fait, entre 10 % et 50 % du temps, l'IA produisait une réponse correcte basée sur une explication complètement cassée ou absurde. C'était comme un étudiant qui devine la bonne réponse à un test de mathématiques mais écrit une formule inventée pour la justifier.
- Le problème de la « fragilité » : Lorsque le code était « métamorphosé » à l'aide des tours ci-dessus, les performances de l'IA s'effondraient. Certains modèles ont vu leur précision chuter de jusqu'à 70 %.
- Analogie : Imaginez un chef qui peut parfaitement cuire un steak si vous dites « cuire le bœuf ». Mais si vous dites « cuire la vache », il panique et brûle la cuisine. Les modèles d'IA sont comme ce chef ; ils sont confus par de simples changements de formulation, même si le « repas » (le résultat du programme) est exactement le même.
- La sensibilité aux « noms de variables » : Les modèles étaient étonnamment sensibles aux noms de variables. Changer un nom de
totalàsomme_totaleles faisait souvent échouer, même si la logique du code était identique. Fait intéressant, les humains sont également légèrement perturbés par un mauvais nommage, mais la réaction de l'IA était beaucoup plus extrême.
Les « meilleurs élèves » ne sont pas parfaits non plus
Les chercheurs ont testé à la fois des modèles gratuits et open source et des modèles privés coûteux (comme GPT-5.2 et Gemini-3).
- Les modèles coûteux étaient les meilleurs pour obtenir la bonne réponse et fournir de bonnes explications sur le code original.
- Cependant, lorsque le code était légèrement modifié, même ces « meilleurs élèves » trébuchaient lourdement. Leurs performances chutaient considérablement, prouvant qu'une haute précision sur un test standard ne signifie pas qu'ils comprennent véritablement la logique sous-jacente.
La conclusion
L'article conclut que les modèles d'IA actuels sont fragiles. Ils excellent à reconnaître des modèles et à imiter le raisonnement humain, mais ils manquent d'une compréhension « formelle » de la façon dont le code fonctionne réellement.
Si vous leur demandez de résoudre un problème d'une certaine manière, ils pourraient avoir raison. Mais si vous posez la même question d'une manière légèrement différente (même si le sens est identique), ils pourraient échouer complètement. Cela suggère que pour l'instant, nous ne devrions pas faire aveuglément confiance à ces modèles pour comprendre le code en profondeur ; ils ressemblent davantage à des perroquets très avancés capables de réciter les bonnes réponses, mais qui ne savent pas toujours pourquoi ces réponses sont justes.
Les chercheurs suggèrent que pour rendre l'IA véritablement fiable pour le codage, nous devons combiner leur puissance d'apprentissage avec des règles strictes et formelles (comme un professeur de mathématiques qui vérifie le travail, pas seulement la réponse) pour s'assurer qu'ils ne font pas que deviner.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.