Passer au contenu principal

8 Jan, 2025

ChatGPT est incapable de vérifier son propre code 

ChatGPT est incapable de vérifier son propre code 

Une étude récente indique un moyen de le rendre plus précis

La capacité de ChatGPT à produire du code fait l’objet de beaucoup de battage médiatique et, jusqu’à présent, le programme d’IA n’est tout simplement pas à la hauteur de ses homologues Xing Humains. Mais dans quelle mesure le programme d’IA est-il capable de détecter ses propres erreurs ?

Des chercheurs chinois ont récemment testé ChatGPT , évaluant sa capacité à évaluer son propre code pour en vérifier l’exactitude, les vulnérabilités et les réparations réussies. Les résultats , publiés le 5 novembre dans IEEE Transactions on Software Engineering , montrent que le programme d’IA est trop confiant, suggérant souvent que le code est plus satisfaisant qu’il ne l’est en réalité. Les résultats montrent également quel type d’invites et de tests pourraient améliorer les capacités d’auto-vérification de ChatGPT.

Xing Hu, professeure associée à l’université du Zhejiang, a dirigé l’étude. Elle souligne qu’avec l’utilisation croissante de ChatGPT dans le développement de logiciels , il est devenu de plus en plus important de garantir la qualité du code généré.

Xing Hu et ses collègues ont d’abord testé la capacité de ChatGPT-3.5 à produire du code en utilisant plusieurs grands ensembles de données de codage .

Leurs résultats montrent qu’il peut générer du code « correct » (un code qui fait ce qu’il est censé faire) avec un taux de réussite moyen de 57 %, générer du code sans vulnérabilités de sécurité avec un taux de réussite moyen de 73 %, et réparer du code incorrect avec un taux de réussite moyen de 70 %.

C’est vrai que ça marche parfois, mais ça fait quand même pas mal d’erreurs.

Demander à ChatGPT de vérifier son travail de codage

Tout d’abord, les chercheurs ont demandé à ChatGPT-3.5 de vérifier l’exactitude de son propre code à l’aide d’invites directes, qui consistent à lui demander de vérifier si le code répond à une exigence spécifique.

Trente-neuf pour cent du temps, le système a déclaré à tort que le code était correct alors que ce n’était pas le cas. Il a également déclaré à tort que le code était exempt de failles de sécurité dans 25 % des cas et qu’il avait réussi à réparer le code alors que ce n’était pas le cas dans 28 % des cas.

Il est intéressant de noter que ChatGPT a pu détecter davantage de ses propres erreurs lorsque les chercheurs lui ont posé des questions d’orientation, qui lui demandaient d’être d’accord ou non avec les affirmations selon lesquelles le code ne répond pas aux exigences. Par rapport aux questions directes, ces questions d’orientation ont conduit à une détection accrue du code généré de manière incorrecte de 25 % en moyenne, à une identification accrue des vulnérabilités de 69 % et à une reconnaissance accrue des réparations de programmes échouées de 33 %.

Une autre découverte importante a été que, même si demander à ChatGPT de générer des rapports de test n’était pas plus efficace que des invites directes pour identifier le code incorrect, cela était utile pour augmenter le nombre de vulnérabilités signalées dans le code généré par ChatGPT.

Xing Hu et ses collègues rapportent dans cette étude que ChatGPT a démontré quelques cas d’hallucinations contradictoires dans son comportement, où il a initialement généré du code ou des complétions qu’il juge corrects ou sécurisés, mais qui contredit plus tard cette croyance lors de l’auto-vérification.

« Les inexactitudes et les hallucinations contradictoires observées lors de l’auto-vérification de ChatGPT soulignent l’importance de faire preuve de prudence et d’évaluer minutieusement ses résultats », déclare Xing Hu. « ChatGPT doit être considéré comme un outil de soutien pour les développeurs, plutôt que comme un substitut à leur rôle de créateurs et de testeurs de logiciels autonomes. »

Dans le cadre de leur étude, les chercheurs ont également effectué des tests à l’aide de ChatGPT-4, constatant qu’il présente des améliorations substantielles des performances en termes de génération de code, de complétion de code et de réparation de programme par rapport à ChatGPT-3.5.

« Cependant, la conclusion générale concernant les capacités d’auto-vérification de GPT-4 et GPT-3.5 reste similaire », déclare Xing Hu, notant que GPT-4 classe encore fréquemment à tort son code incorrect généré comme correct, son code vulnérable comme non vulnérable et ses réparations de programmes échouées comme réussies, en particulier lors de l’utilisation de l’invite de question directe.

Des cas d’hallucinations contradictoires sont également observés dans le comportement de GPT-4, ajoute-t-elle.

« Pour garantir la qualité et la fiabilité du code généré, il est essentiel d’intégrer les capacités de ChatGPT à l’expertise Xing Humaine », souligne Xing Hu.

https://spectrum.ieee.org/chatgpt-checking-sucks