Les co-programmeurs d’IA ne généreront peut-être pas autant de bugs que le craignait PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Les co-programmeurs d'IA ne généreront peut-être pas autant de bugs que prévu

Les modèles d'apprentissage automatique qui alimentent les outils de complétion de code de nouvelle génération tels que GitHub Copilot peuvent aider les développeurs de logiciels à écrire un code plus fonctionnel, sans le rendre moins sécurisé.

C'est le résultat provisoire d'une enquête, quoique modeste, menée auprès de 58 personnes par un groupe d'informaticiens de l'Université de New York.

In un document distribué via ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt et Siddharth Garg racontent comment ils ont mis à l'épreuve la sécurité du code source créé à l'aide de grands modèles de langage (LLM).

Les LLM comme la famille OpenAI GPT ont été formés sur des quantités massives de données textuelles publiques, ou de code source public dans le cas du Codex d'OpenAI, un descendant de GPT et la base du Copilot de GitHub. En tant que tels, ils peuvent reproduire des erreurs commises dans le passé par des programmeurs humains, illustrant ainsi la maxime « garbage in, garbage out ». On craignait que ces outils régurgitent et suggèrent du mauvais code aux développeurs, qui l'inséreraient dans leurs projets.

De plus, la sécurité du code peut être contextuelle : un code sécurisé isolément peut ne pas être sécurisé lorsqu'il est exécuté dans une séquence particulière avec d'autres logiciels. Ainsi, ces outils de saisie semi-automatique peuvent proposer des suggestions de code qui, en elles-mêmes, sont correctes, mais qui, liées à d'autres codes, sont désormais vulnérables aux attaques ou tout simplement cassées. Cela dit, il s’avère que ces outils ne rendent pas les humains pires en programmation.

D’une certaine manière, les chercheurs éteignaient leur propre feu. Il y a environ un an, deux des mêmes informaticiens ont contribué à un article intitulé « Endormi au clavier ? Évaluation de la sécurité des contributions au code de GitHub Copilot. Ce travail trouvé pour cent environ 40 des résultats de Copilot comprenaient des faiblesses potentiellement exploitables (CWE).

« La différence entre les deux articles est que « Endormi au clavier » envisageait la génération de code entièrement automatisée (aucun humain dans la boucle), et nous n'avions pas d'utilisateurs humains avec lesquels comparer, nous ne pouvions donc rien dire sur la façon dont la sécurité de Copilot par rapport à la sécurité du code écrit par l'homme », a déclaré Brendan Dolan-Gavitt, co-auteur des deux articles et professeur adjoint au département d'informatique et d'ingénierie de NYU Tandon, dans un e-mail adressé à Le registre.

« Le document d'étude sur les utilisateurs tente de s'attaquer directement à ces éléments manquants, en demandant à la moitié des utilisateurs de bénéficier de l'aide du Codex (le modèle qui alimente Copilot) et en demandant à l'autre moitié d'écrire le code eux-mêmes. Cependant, il est également plus restreint que « Endormi au clavier » : nous n'avons examiné qu'une seule tâche et un seul langage (écrire une liste chaînée en C).

Dans le dernier rapport, « Implications sur la sécurité des assistants de code de modèle de langage étendu : une étude sur les utilisateurs », un ensemble légèrement varié de chercheurs de l'Université de New York reconnaissent que les travaux antérieurs ne parviennent pas à modéliser de manière réaliste l'utilisation d'outils basés sur LLM comme Copilot.

"Premièrement, ces études supposent que l'intégralité du code est automatiquement générée par le LLM (nous appellerons cela le mode pilote automatique)", expliquent les chercheurs dans leur article.

« En pratique, les LLM de complétion de code aident les développeurs avec des suggestions qu'ils choisiront d'accepter, de modifier ou de rejeter. Cela signifie que même si les programmeurs enclins à l’automatisation pourraient naïvement accepter des erreurs dans la complétion, d’autres développeurs pourraient produire moins de code bogué en utilisant le temps gagné pour corriger les bogues.

Deuxièmement, ils observent que s'il a été démontré que les LLM produisent du code bogué, les humains le font aussi. Les bogues dans les données de formation LLM provenaient de personnes.

Ainsi, plutôt que d'évaluer le bogue du code généré par LLM par lui-même, ils ont entrepris de comparer en quoi le code produit par des développeurs humains assistés par des modèles d'apprentissage automatique diffère du code produit par la programmation fonctionnant par eux-mêmes.

Les informaticiens de la NYU ont recruté 58 participants à l'enquête - des étudiants de premier cycle et des cycles supérieurs dans des cours de développement de logiciels - et les ont divisés en un groupe de contrôle, qui travaillerait sans suggestions, et un groupe assisté, qui avait accès à un système de suggestion personnalisé construit à l'aide de l'OpenAI. API du Codex. Ils ont également utilisé le modèle Codex pour créer 30 solutions aux problèmes de programmation donnés comme point de comparaison. Ce groupe de pilote automatique fonctionnait principalement comme un deuxième groupe de contrôle.

Les groupes Assisted et Control étaient autorisés à consulter des ressources Web, telles que Google et Stack Overflow, mais pas à demander de l'aide à d'autres. Le travail a été effectué dans Visual Studio Code dans un conteneur Web construit avec open source Anubis.

Les participants ont été invités à compléter un programme de liste de courses en utilisant le langage de programmation C car « il est facile pour les développeurs d'exprimer par inadvertance des modèles de conception vulnérables en C » et parce que la chaîne d'outils du compilateur C utilisée ne vérifie pas les erreurs au même degré que les chaînes d'outils pour les langages modernes, tels que Go et Rust, le font.

Lorsque les chercheurs ont analysé manuellement le code produit par les groupes Contrôle et Assistant, ils ont constaté que, contrairement aux travaux antérieurs, les suggestions de code de l'IA n'aggravaient globalement pas la situation.

Cela semble clair, mais il y a des détails

"[N]ous n'avons trouvé aucune preuve suggérant que l'assistance du Codex augmente l'incidence des bogues de sécurité", indique le document, tout en notant que la petite taille de l'échantillon de l'étude signifie qu'une étude plus approfondie est justifiée. "Au contraire, certaines preuves suggèrent que les CWE/LoC [lignes de code] diminuent avec l'aide du Codex."

"Il est difficile de conclure cela avec beaucoup de confiance statistique", a déclaré Siddharth Garg, chercheur en cybersécurité et professeur agrégé au département d'ingénierie de NYU Tandon, lors d'un entretien téléphonique avec Le registre.

Il est difficile de conclure cela avec autant de confiance statistique

Néanmoins, a-t-il déclaré : « Les données suggèrent que les utilisateurs de Copilot n’étaient pas dans une bien pire situation. »

Dolan-Gavitt est également prudent quant aux résultats.

« L'analyse actuelle des résultats de notre étude sur les utilisateurs n'a trouvé aucune différence statistiquement significative ; nous sommes toujours en train d'analyser cela, y compris qualitativement, donc je n'en tirerais pas de conclusions définitives, d'autant plus qu'il s'agissait d'une petite étude (58 utilisateurs au total) et que les utilisateurs étaient tous des étudiants plutôt que des développeurs professionnels », a-t-il déclaré.

« Pourtant, nous pouvons dire que chez ces utilisateurs, sur cette tâche, l’impact sur la sécurité de l’assistance de l’IA n’était probablement pas important : si cela avait eu un impact très important, nous aurions observé une plus grande différence entre les deux groupes. Nous effectuons actuellement un peu plus d’analyses statistiques pour préciser cela.

Au-delà de cela, d'autres idées ont émergé. La première est que les participants au groupe d'assistants étaient plus productifs, générant plus de lignes de code et accomplissant une plus grande partie des fonctions de la mission.

"Les utilisateurs du groupe Assisté ont réussi davantage de tests fonctionnels et ont produit davantage de code fonctionnel", a déclaré Garg, ajoutant que de tels résultats pourraient aider les entreprises qui envisagent des outils de codage d'assistance à décider de les déployer ou non.

Une autre est que les chercheurs ont pu distinguer la sortie produite par les groupes Contrôle, Assisté et Pilote automatique, ce qui peut apaiser préoccupations sur la tricherie AI-power dans les milieux éducatifs.

Les experts ont également constaté que les outils d’IA doivent être considérés dans le contexte des erreurs des utilisateurs. "Les utilisateurs fournissent des invites qui peuvent inclure des bogues, acceptent des invites de bogues qui se retrouvent dans les programmes 'terminés' ainsi que des bogues qui sont ensuite supprimés", indique le journal. « Dans certains cas, les utilisateurs se retrouvent également avec plus de bugs que ce que suggère le modèle ! »

Attendez-vous à d'autres travaux dans ce sens. ®

Horodatage:

Plus de Le registre