Maison  >  Article  >  Périphériques technologiques  >  La programmation est morte, maintenant l’IA ? Un professeur « chante publiquement le contraire » : l'IA ne peut pas encore aider les programmeurs

La programmation est morte, maintenant l’IA ? Un professeur « chante publiquement le contraire » : l'IA ne peut pas encore aider les programmeurs

WBOY
WBOYavant
2023-06-12 13:04:561495parcourir

Compilation | Nuka Cola, Ling Min

La popularité des produits d'IA tels que GitHub Copilot et ChatGPT a permis à davantage de personnes de constater les puissantes capacités de l'IA en programmation. Récemment, des déclarations telles que « L'IA remplace les programmeurs » et « L'IA prend le trône de la programmation » sont apparues fréquemment.

Il y a quelque temps, Matt Welsh, ancien professeur d'informatique à l'Université Harvard et directeur de l'ingénierie de Google, a déclaré lors d'une conférence virtuelle de la Chicago Computer Society que ChatGPT et GitHub Copilot annoncent le début de la fin de la programmation. Welsh affirme que l’IA générative mettra fin à la programmation d’ici 3 ans.

Mais il y a aussi certaines personnes qui s'y opposent. Récemment, Bertrand Meyer, professeur au Constructor Institute et directeur technologique d'Eiffel Software, a publié un article sur ACM pour « chanter le contraire ». Il a soigneusement étudié la façon dont ChatGPT est programmé et a finalement conclu que l'IA ne peut pas aider les programmeurs.

Expérience de programmation ChatGPT

Il y a quelque temps, Meyer a expliqué comment résoudre le problème de la recherche binaire fictive à travers une série d'articles. Bien que le contenu ait l'air bon et que chaque article propose également sa propre version de la réponse, la plupart d'entre eux étaient en réalité faux. (Lecture approfondie : https://bertrandmeyer.com/2020/03/26/getting-program-right-nine-episodes/)

En utilisant ceci comme matériel, Meyer a soumis ces articles à ChatGPT (version 4).

编程已死,AI 当立?教授公开“唱反调”:AI 还帮不了程序员

Le joueur IA a d'abord décrit le problème :

Ce problème peut en réalité survenir avec n'importe quel nombre d'éléments, pas seulement deux. Mais pour prouver qu'un programme est incorrect, il suffit de donner un contre-exemple (mais pour prouver qu'il est correct, il faut montrer que cela s'applique à tous les exemples). Meyer a seulement demandé si le programme était correct et n'a pas mentionné comment le réparer, mais ChatGPT a donné avec enthousiasme les suggestions suivantes :

编程已死,AI 当立?教授公开“唱反调”:AI 还帮不了程序员

La section commentaires ici est vraiment utile :

编程已死,AI 当立?教授公开“唱反调”:AI 还帮不了程序员

ChatGPT Vous avez raison, la logique est très claire. Après avoir examiné le code de remplacement proposé, Meyer a découvert quelque chose de louche. Alors Meyer a demandé plus loin :

En essayant de corriger le bug de Meyer, ChatGPT a sorti une autre version qui était également boguée, mais d'une manière différente. Il convient de mentionner que ChatGPT essaie de proposer une nouvelle version à chaque fois - tout en corrigeant les erreurs précédentes, cela entraîne également de nouveaux problèmes .

Meyer a également constaté que ChatGPT est particulièrement doué pour s'excuser :

ChatGPT s'est parlé tout seul, recommandant activement à Meyer ce qu'il considère comme une solution corrigée :

À ce stade, Meyer n'essaie même pas de savoir si la dernière version est correcte. Les programmeurs expérimentés savent que se concentrer sur un cas particulier et ajouter constamment des correctifs spécifiques n'est en aucun cas le meilleur moyen de générer un programme correct.

Alors Meyer a également choisi de continuer à être poli :

Voici l'excitation : ChatGPT a décidé d'introduire le concept d'invariants de boucle à Meyer !

编程已死,AI 当立?教授公开“唱反调”:AI 还帮不了程序员

Meyer n'a jamais déclaré explicitement ou implicitement qu '"une approche plus systématique est nécessaire pour vérifier l'exactitude de l'algorithme", il voulait juste savoir comment ChatGPT prouverait que les réponses qu'il recommandait étaient correctes, mais n'a certainement pas utilisé " systématique » ou des mots comme « vérifier ». La raison de cette scène peut être que l'inférence statistique basée sur un grand corpus a donné confiance à ChatGPT, lui permettant de croire que les utilisateurs remettront certainement en question l'exactitude du code de sortie, et nécessiteront ensuite une vérification de manière systématique.

Meyer a continué à demander :

ChatGPT a ensuite donné une bonne réponse, incluant même l'enquête sur les invariants de boucle incluse dans l'ACM Computing Survey. Et il fait toujours l'éloge d'abord puis explique le problème, ce qui est très poli :

编程已死,AI 当立?教授公开“唱反调”:AI 还帮不了程序员

À ce stade, Meyer n’envisage pas de continuer à poser d’autres questions.

Meyer savait résoudre les problèmes, mais comme la plupart des programmeurs, il a commis des erreurs. Il veut un assistant de programmation IA capable de le surveiller, de l'alerter des pièges et de le corriger lorsqu'il commet une erreur. En d’autres termes, il souhaite que l’IA soit un partenaire de programmation en binôme efficace et utile. Cependant, les résultats expérimentaux montrent que les outils de programmation de l'IA sont similaires aux étudiants diplômés haut de gamme, qui sont non seulement intelligents et instruits, mais aussi toujours polis et prêts à s'excuser. Même rétrospectivement, cela semble encore grossier et imprécis, et la soi-disant aide n'a pas été d'une grande utilité pour Meyer.

Les résultats de l'IA moderne ne peuvent pas générer de programmes corrects

Meyer estime que les outils d'IA générative actuels peuvent en effet bien faire le travail dans certains domaines, même mieux que la plupart des humains : les résultats pertinents arrivent rapidement et de manière convaincante, et à première vue sont même aussi bons que les meilleurs experts. gros problème. En plus d'être capable de générer des brochures marketing et d'effectuer des traductions approximatives du contenu de sites Web, l'outil de traduction démontre également d'excellentes capacités d'analyse d'images médicales.

Mais les exigences de programmation sont complètement différentes. Il y a des exigences strictes sur l'exactitude du programme de sortie. Les développeurs peuvent tolérer certaines erreurs, mais la fonctionnalité principale doit être correcte. Si la commande d'un client consiste à acheter 100 actions Microsoft et à vendre 50 actions Amazon, le programme ne devrait jamais faire l'inverse. Les programmeurs professionnels font parfois des erreurs. Pour le moment, cela dépend de la capacité de l'assistant IA à les aider.

Cependant, les efforts d'IA modernes ne génèrent pas de programmes corrects : Les programmes qu'ils produisent sont en fait déduits d'un grand nombre de programmes originaux qui ont été vus auparavant. Ces procédures peuvent sembler fiables, mais leur exactitude ne peut être totalement garantie. (L'IA moderne mentionnée ici vise à la distinguer des débuts de l'IA - cette dernière a tenté de reproduire la pensée logique humaine à travers des méthodes telles que les systèmes experts, mais a largement échoué. L'IA d'aujourd'hui repose entièrement sur le raisonnement statistique et met en œuvre des fonctions de base)

Meyer a souligné que même si les assistants IA fonctionnent très bien à certains égards, ils ne sont pas des produits de la logique, mais des maîtres doués pour manipuler les mots. Les grands modèles de langage sont capables de s'exprimer et de générer un texte qui n'a pas l'air trop faux. Bien que ces performances soient suffisantes pour de nombreux scénarios d’application, elles ne sont toujours pas adaptées aux besoins de programmation.

L'intelligence artificielle actuelle peut aider les utilisateurs à générer des cadres de base et à donner des réponses relativement fiables. Mais c’est là que ça se termine. À en juger par le niveau technique actuel, il est totalement incapable de produire un programme pouvant fonctionner normalement.

Mais ce n’est pas une mauvaise chose pour l’industrie du génie logiciel. Meyer estime que face à toutes sortes de propagande selon laquelle « la programmation est morte », cette expérience nous rappelle que les programmeurs humains et les assistants de programmation automatique ont besoin de contraintes standardisées et que tout programme candidat produit doit être vérifié. Après la surprise initiale, les gens finiront par se rendre compte que la possibilité de générer des programmes en un seul clic ne sert pas à grand-chose. Étant donné qu’elles ne parviennent souvent pas à obtenir correctement les résultats souhaités par les utilisateurs, les fonctions d’automatisation lancées à la hâte peuvent en réalité être nuisibles. Écrit à la fin

Meyer ne dénigre pas la programmation de l'IA. Il estime qu'une attitude prudente peut nous aider à construire le système d'IA ultime doté de capacités fiables.

La technologie de l’IA en est encore à ses premiers stades de développement, mais ces limitations ne sont pas des obstacles permanents et insurmontables. Peut-être qu’un jour dans le futur, les outils de programmation générative de l’IA seront capables de surmonter ces obstacles. Pour le rendre véritablement programmable, les aspects de spécification et de vérification doivent être explorés et étudiés en profondeur.

Voici donc la question : avez-vous déjà utilisé des outils de programmation d’IA ? Quel outil a été utilisé ? Quelle est sa précision ? Ces outils vous aident-ils vraiment ? Bienvenue à écrire votre expérience dans la zone de commentaires.

Lien original :

Résistant à l'utilisation de GPT-4 et Copilot pour écrire du code, un programmeur vétéran avec 19 ans d'expérience en programmation a été éliminé dans "l'interview"

Ma Huateng a dit de « resserrer la formation », a répondu Tencent ; Microsoft a publié sa propre distribution Linux OpenAI a répondu à GPT-4 et est devenu stupide Q News

Base de données vectorielles ? N'investissez pas ! N'investissez pas ! N'investissez pas !

Est-ce que je ne peux pas conserver mon emploi d'analyste de données avec un salaire annuel de 600 000 ? ! Une étude menée par Alibaba Damo Academy a révélé que le coût du passage à GPT-4 n'est que de quelques milliers de yuans

Recommandation de rapport

Comprend de grands produits de modèles de langage tels que ChatGPT, Claude, Sage, Tiangong 3.5, Wenxinyiyan, Tongyi Qianwen, iFlytek Spark, Moss, ChatGLM, vicuna-13B, etc., montrant ses quatre dimensions principales + 12 subdivisions Capacité complète, explorez la programmation capacité des produits de grand modèle d'un point de vue technique et améliorer la dernière compréhension de la sélection de la direction entrepreneuriale de l'AGI, de l'application pratique du travail, etc. Scannez le code QR pour ajouter l'assistant InfoQ et déverrouiller toutes les informations.

Aperçu de la diffusion en direct

À l’ère des grands modèles d’IA, à quelles opportunités et défis les architectes sont-ils confrontés ? Ce soir à 20h00, Cai Chao, vice-président de Mobvista Technology, aura une connexion en direct avec Li Xin, vice-président de l'iFlytek AI Research Institute de HKUST, pour vous révéler la réponse ! Il y a également des spoilers sur les sujets spéciaux passionnants d’ArchSummit Shenzhen à l’avance, et les dons de connaissances sont infinis ! Prenez rendez-vous maintenant!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer