Auteur | Xu Jiecheng
Critique | Yan Zheng
Alors que Google et Microsoft se battent pour s'emparer du marché des moteurs de recherche IA, certains programmeurs n'ont pas l'intention d'en profiter. Parce qu'ils ont compris d'avance que lorsque cette guerre de recherche prendra fin, les géants du logiciel continueront à utiliser ChatGPT ou d'autres outils de génération d'intelligence artificielle et à avancer à grands pas vers l'océan bleu du codage automatique. D’ici là, sans parler du fait d’être un perdant, même votre propre emploi pourrait être menacé.
Dans le domaine du codage automatique d'aujourd'hui, les deux IA les plus matures et les plus connues sont ChatGPT, qui a été sous le feu des projecteurs récemment, et Copilot, l'outil de programmation d'IA lancé par Microsoft en juin de l'année dernière. deux" sont également C'est la star populaire qui est la plus attendue pour remplacer les programmeurs à ce stade. Alors pour l’instant, quelles sont les capacités de codage de ChatGPT et Copilot Vont-ils vraiment remplacer tous les développeurs juniors et même certains développeurs intermédiaires à court terme comme le dit la rumeur ?
Il y a quelques jours, un expert technique américain a utilisé plusieurs exigences de fonctions JavaScript pour tester les capacités de ChatGPT et Copilot en matière de traitement de données et de génération d'algorithmes. Ensuite, utilisons ces résultats pour comprendre le niveau réel actuel de l’IA dans le codage, puis demandons-nous : serons-nous vraiment remplacés ?
Dans le premier test, le testeur a d'abord demandé à ChatGPT et Copilot de générer une fonction JavaScript. Les conditions spécifiques sont : il doit pouvoir accepter. un nombre variable de tableaux et renvoie leur intersection.
OpenAI ChatGPT :
Microsoft Copilot :
La fonction générée par ce ChatGPT suppose que fournir moins d'un tableau n'est pas valide. En utilisant Set, ChatGPT garantit qu'il n'y a pas de doublons dans les résultats. L'intersection doit être une opération définie et les doublons doivent être supprimés. Le code Copilot renvoie un tableau pouvant contenir des doublons.
Ni ChatGPT ni Copilot ne trient les paramètres d'origine par ordre croissant en fonction de la longueur. Il s'agit d'une optimisation triviale, mais elle peut apporter d'énormes changements. Si un argument a une longueur de 0, il n'y a pas d'intersection ; cela raccourcit de toute façon la boucle car l'intersection maximale est la même que l'argument le plus court du tableau.
Par la suite, les testeurs ont demandé à ChatGPT et Copilot d'améliorer l'efficacité d'exécution des fonctions.
OpenAI ChatGPT :
Microsoft Copilot :
Face au problème ci-dessus, Copilot a généré le même code que la requête précédente. ChatGPT a donné une réponse différente et a ajouté un commentaire disant que la fonction ne fonctionne pas sur les objets comme prévu, mais cette description n'est pas exacte.
Ensuite, les testeurs ont utilisé la même méthode pour vérifier l'efficacité de fonctionnement et la consommation de mémoire du code généré par les deux bibliothèques d'intersection les plus rapides fournies par ChatGPT et Copilt.
Le code généré par ChatGPT occupe un processeur inférieur lorsqu'il est exécuté, mais l'efficacité d'exécution n'est pas idéale, tandis que le code généré par Copilot a une faible utilisation du tas, mais le taux d'occupation du processeur et l'efficacité d'exécution sont Différence relativement élevée.
En bref, dans ce test, ni ChatGPT ni Copilot ne peuvent générer du code suffisamment efficace ; ChatGPT a fait des hypothèses erronées dans cette question et la fonction générée par Copilot générera un code incorrect lorsque les paramètres contiennent des valeurs en double. Code qui génère des collections. .
Le deuxième test nécessite ChatGPT et Copilot pour compléter une fonction JavaScript de produit cartésien.
OpenAI ChatGPT :
Copilote Microsoft :
Ceux qui connaissent les produits cartésiens sauront que du point de vue de l'utilisation de la mémoire et des performances, les résultats générés par ChatGPT et Copilot sont explosifs. Une implémentation simple consommerait beaucoup de RAM pour stocker toutes les combinaisons et ne renverrait le résultat que lorsque toutes les combinaisons auraient été générées. Les fonctions générées par ChatGPT et Copilot présentent toutes deux ces défauts.
Par la suite, les testeurs ont de nouveau demandé à ChatGPT et Copilot d'améliorer l'efficacité des fonctions.
OpenAI ChatGPT :
Microsoft Copilot :
En réponse à cette demande, les performances de ChatGPT sont surprenant. Mais dans la fonction globale, ChatGPT a commis une grave erreur. rendement [item,...result] n'est pas à l'intérieur du générateur, mais dans une récursion. Copilot a simplement ignoré le changement de demande et a renvoyé les mêmes résultats qu'avant.
En termes d'efficacité d'exécution du code et de consommation de mémoire, les performances de ChatGPT et de Copilot sont présentées dans le tableau ci-dessous.
En général, ni ChatGPT ni Copilot ne peuvent générer le code correct pour la fonction du produit cartésien ; ChatGPT fera des hypothèses qui peuvent être invalides, comme exiger deux paramètres bien que les résultats de détection montrent que le code ; mémoire générée par ChatGPT Plus efficace, mais elle ne fonctionne pas du tout correctement.
Au troisième tour, les testeurs ont demandé aux deux de générer des fonctions JavaScript capables de stocker des objets et des paramètres d'origine.
OpenAI ChatGPT :
Microsoft Copilot :
À cet égard, ChatGPT et Copilot génèrent du code plus inefficace, exécutez d'abord la chaîne Convertir à nouveau La comparaison de chaînes est inefficace et consomme beaucoup de mémoire.
Bien que certaines valeurs JavaScript ne puissent pas être converties en chaînes, telles que Infinity et NaN. Malheureusement, la spécification JavaScript JSON a été définie avant l'ère de la science des données et des microservices, et ces valeurs existent principalement pour que lorsque certaines conditions d'erreur se produisent dans le code, le programme puisse également utiliser des valeurs spécifiques pour représenter les résultats produits.
Enfin, afin de vérifier l'efficacité de la fonction, le testeur a comparé le code généré par ChatGPT et Copilot avec les outils de mise en cache couramment utilisés nano-memoize et micro-memoize, et a utilisé le code suivant pour générer la 12ème séquence de Fibonacci.
Parmi eux, nano-memoize est le plus efficace, presque deux fois plus efficace que le code généré par ChatGPT et Copilot, et la mémoire qu'il utilise est également la plus faible, tandis que micro On peut dire que les performances de -memoize sont suivies de près. Bien que Copilot soit performant en termes d'utilisation du processeur, dans l'ensemble, les performances de ChatGPT et de Copilot dans ce test ne sont toujours pas suffisantes pour vaincre un programmeur mature.
Grâce à ces trois tests, il n'est pas difficile de constater que même si le code généré à l'aide de ChatGPT et Copilot a définitivement une certaine valeur. Mais pour l’instant, ni ChatGPT ni Copilot ne peuvent générer un code suffisamment précis et efficace à partir de simples descriptions de tâches, et même dans certains cas, ils commettent de très graves erreurs. Après avoir pris connaissance de ce résultat, de nombreux développeurs ont également exprimé le sentiment qu’ils pourraient persister encore quelques années.
Pour les entreprises ou les programmeurs d'aujourd'hui, si vous souhaitez utiliser ChatGPT, Copilot ou d'autres outils de génération de code pour vous aider à effectuer certaines tâches de codage auxiliaires simples afin d'accélérer la construction, vous pouvez certainement obtenir une assistance suffisante. Mais si vous voulez compter sur eux pour libérer complètement la R&D, vous devrez peut-être dépenser beaucoup d'argent pour l'équiper d'une solide équipe de débogage.
Cependant, même si tel est le résultat, nous ne pouvons toujours pas ignorer aujourd’hui le potentiel de l’IA dans le domaine du codage automatique et les puissants éditeurs de logiciels derrière ces systèmes. Ce qui est certain, c'est qu'à mesure que le niveau de formation et la maturité technologique augmentent, les futurs outils de codage automatique continueront d'étendre leurs données commerciales dans différents scénarios et tenteront progressivement de résoudre des tâches pratiques plus professionnelles et basées sur des scénarios.
Enfin, quant à la question « L'IA peut-elle remplacer les programmeurs à l'avenir ? », la réponse la plus fiable à l'heure actuelle est peut-être la prédiction faite par Itamar Friedman, l'ancien directeur du laboratoire de vision industrielle d'Alibaba Israël dans une interview —— « Dans les 10 à 20 prochaines années, les systèmes d'intelligence artificielle permettront aux créateurs non-programmeurs d'utiliser des instructions en langage naturel pour un développement sans erreur. D'ici là, notre monde aura encore besoin d'un grand nombre de programmeurs, mais leurs rôles seront probablement modifiés. Des changements imprévisibles se produiront.
https://github.com/planttheidea/micro-memoize
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!