Predicting Program Comprehension with Foundation Models of Human Cognition
Cet article démontre que Centaur, un modèle de fondation de la cognition humaine entraîné sur des données psychologiques générales, surpasse son modèle de base Llama 3.1 dans la prédiction du comportement des développeurs lors de la compréhension de programmes, suggérant que les régularités cognitives apprises à partir d'expériences psychologiques larges peuvent se transférer efficacement aux tâches complexes de génie logiciel.
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 essayez de deviner ce qu'un ami dira ensuite dans une conversation. Vous pourriez essayer de mémoriser chaque conversation qu'il a jamais eue, ou vous pourriez essayer de comprendre les règles générales de la façon dont les humains pensent, parlent et réagissent. Pendant des décennies, les chercheurs tentant de prédire comment les développagers de logiciels comprennent le code sont restés bloqués dans le premier camp : ils ont construit de petits modèles spécifiques pour des tâches précises, ou ils ont essayé de mesurer la « complexité » du code comme on compterait le nombre de virgules dans une phrase. Mais ces méthodes sont comme essayer de prédire un film entier en ne regardant que la couleur des chaussures des acteurs : soit elles ne passent pas à l'échelle, soit elles ne correspondent pas très bien à la réalité.
Entrez dans une nouvelle idée issue du monde de la psychologie. Au lieu de construire un modèle pour seulement le codage, et si nous entraînions un modèle sur la façon dont les humains agissent dans toutes sortes de situations ? C'est exactement ce que les chercheurs de ce papier ont fait. Ils ont pris une IA super intelligente appelée Centaur, qui avait été entraînée sur des données provenant de 1�160 expériences psychologiques différentes (comme des jeux de mémoire ou des puzzles de prise de décision), et ont posé une grande question : ce « simulateur de cerveau humain général » peut-il comprendre comment les développeurs lisent le code, même s'il n'a jamais vu une seule ligne de code pendant son entraînement ?
La Grande Découverte
La réponse, suggère le papier, est un « oui » retentissant. Lorsqu'ils ont testé Centaur contre 9 études différentes impliquant de vrais développeurs lisant du code, Centaur a prédit comment les humains réagiraient bien mieux que son modèle « parent », Llama 3.1, qui n'avait pas été entraîné sur ces expériences psychologiques. En fait, à travers tous les essais, les prédictions de Centaur étaient significativement plus proches du comportement humain. Pensez-y de cette façon : Llama 3.1 est un étudiant brillant qui connaît beaucoup de faits mais n'a pas appris comment les gens pensent réellement. Centaur est ce même étudiant, mais après avoir suivi un semestre de « Psychologie humaine 101 », il comprend soudainement comment les gens réagissent, même dans un sujet totalement nouveau comme la programmation.
Ce que ce n'est PAS
Voici la partie la plus importante : le papier écarte explicitement quelques éléments.
- Il ne s'agit pas seulement de deviner la réponse. Les chercheurs craignaient que Centaur ne soit pas simplement bon pour deviner des réponses communes (comme « Oui » ou « Non ») parce qu'il en a beaucoup vu lors de son entraînement. Mais ils ont prouvé cela faux. Lorsqu'ils ont retiré le code et les instructions de la tâche, Centaur ne s'est pas contenté de s'appuyer sur des « biais de réponse ». Il est devenu meilleur pour utiliser le code lui-même et les descriptions de la tâche pour trouver la réponse.
- Ce n'est pas une boule de cristal magique. Le papier prend soin de dire qu'il s'agit d'une « suggestion » et d'un « transfert » de modèles, et non d'une théorie finale et résolue de l'esprit humain. Ils ont constaté que pour certains schémas de code particulièrement complexes et déroutants (appelés « Atomes de Confusion »), Centaur n'était pas aussi performant que Llama. Cela suggère que si la pensée humaine générale aide, il existe encore des particularités de codage très spécifiques que le modèle n'a pas encore apprises.
Comment ils l'ont testé
Pour en être sûrs, les chercheurs ont joué au jeu du « retrait ». Ils ont fourni aux modèles le même code et les mêmes questions, mais ont supprimé différentes informations :
- Le Code : Les extraits de programmation réels.
- Les Instructions : Le texte expliquant quoi faire.
- L'Historique : Ce que le développeur a fait dans les questions précédentes.
Ils ont découvert que Centaur s'appuyait moins sur l'historique des réponses précédentes (ce que Llama adorait utiliser) et plus sur le code et les instructions réels. C'est un indice majeur : cela signifie que Centaur a appris une manière plus profonde de comprendre la tâche, plutôt que de simplement suivre un schéma de type « qu'ai-je dit la dernière fois ? ».
Les Chiffres
Les résultats ont été mesurés à l'aide d'un score appelé « log-vraisemblance négative » (negative log likelihood), où un score plus bas est meilleur. À travers toutes les études, Centaur a obtenu un score moyen de 1,63, tandis que Llama 3.1 a obtenu 1,85. Dans 7 des 9 études examinées, Centaur était significativement meilleur. La différence n'était pas un simple coup de chance ; l'« effet de taille » statistique était de 0,17, ce que le papier note comme étant une amélioration réelle et mesurable.
La Conclusion
Ce papier ne prétend pas avoir résolu le mystère de la pensée des développeurs. Au contraire, il suggère une nouvelle voie puissante. Il montre que la façon dont les développeurs comprennent le code n'est pas un superpouvoir étrange et isolé ; elle repose sur les mêmes règles cognitives générales qui nous aident à jouer à des jeux de mémoire ou à prendre des décisions dans d'autres aspects de la vie. En entraînant l'IA sur le comportement humain général, nous pourrions enfin obtenir un outil capable de prédire comment les développeurs vont éprouver des difficultés avec le code, non pas en comptant simplement les lignes, mais en comprenant l'esprit humain derrière le clavier. C'est une étape vers un futur où nous pourrons construire des outils logiciels qui sont véritablement « conscients de l'humain », ancrés dans la science de la façon dont nous pensons réellement.
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.