Développez un jeu en 7 minutes pour moins de 1$ ! ChatGPT a créé une société de développement de logiciels, ainsi qu'une version IA du PDG, du CTO, des programmeurs...

8a83eaf4a4f060b1033f0a449e25482d.gif

Organisation | Tu Min

Liste | CSDN (ID : CSDNnews)

Au cours de l'année écoulée, certains passionnés d'IA ont utilisé ChatGPT pour créer des entreprises , certains professeurs l'ont introduit dans leurs cours et certains ont utilisé ChatGPT pour « lutter contre la contrefaçon »... Les faits ont prouvé que même si de nombreuses personnes restent prudentes à l'égard des nouvelles technologies, ils ne le sont pas. Ils débloquent constamment de nouvelles façons de jouer avec l’IA.

Récemment, des chercheurs de l'Université Brown et de plusieurs universités chinoises ont mené une expérience pour voir si les robots IA pris en charge par la version modèle ChatGPT 3.5 pouvaient terminer le développement de logiciels sans formation.

En réponse à cette expérience, ils ont également publié un article intitulé « Communicative Agents for Software Development » (https://arxiv.org/pdf/2307.07924v3.pdf), partagé l'intégralité du processus et publié le projet sur GitHub Open source : https://github.com/OpenBMB/ChatDev

c9ff842177e38c2c21797d48550e7e1b.png

En fin de compte, les chercheurs ont demandé à une société de logiciels d'IA virtuelle de développer des programmes différents 70. Selon les résultats expérimentaux, l'IA peut développer des logiciels en sept minutes, pour un coût moyen inférieur à 1 dollar. Cela signifie que les chatbots IA comme ChatGPT d’OpenAI peuvent gérer une entreprise de logiciels rapidement et de manière rentable avec une intervention humaine minimale.

Voyons ensuite comment ils procèdent ~

72e4a7825b010aba9b00a7f0605e22d0.png

Créer une société de développement de logiciels d'IA avec différents rôles

Dans l'article, les chercheurs ont révélé qu'ils avaient créé une société de développement de logiciels virtuels appelée ChatDev. Cette entreprise rassemble des agents aux identités sociales différentes et occupe, en termes simples, des postes établis tels que PDG, programmeurs professionnels, ingénieurs de test et designers artistiques.

De par sa conception, ChatDev, un éditeur de logiciels, utilise un modèle en cascade étendu qui divise le processus de développement logiciel en quatre phases distinctes : conception, codage, tests et documentation.

Chaque étape implique une équipe d'agents, comprenant des programmeurs, des réviseurs de code, des ingénieurs de test, etc., pour établir la continuité et l'ordre, tout comme les humains géreraient n'importe quelle entreprise normale.

24daac5904022dfab383e7279773823f.png

Afin de promouvoir une communication et une collaboration efficaces, ChatDev propose une architecture de chaîne de discussion (ChatChain), comprenant la division de chaque étape et les composants au niveau du chat. Dans la chaîne de discussion, chaque nœud représente une sous-tâche spécifique, et les deux rôles participent au contexte, discutent en plusieurs tours et proposent des solutions, qui sont ensuite vérifiées.

ea94fceceb8b2cdf75de23a676b6adae.png

Cette approche garantit que les entreprises peuvent analyser avec précision les besoins des clients, générer des idées, concevoir et mettre en œuvre des systèmes prototypes, identifier et résoudre des problèmes potentiels, interpréter les informations de débogage, créer des interfaces attrayantes et générer des manuels d'utilisation.

Ensuite, les chercheurs ont agi en tant que « clients » et ont soumis une demande de développement d'un jeu de backgammon à l'éditeur de logiciels pour voir comment les agents de ChatDev, une entreprise virtuelle, communiquaient et se développaient via le chat collaboratif.

17789607eb758440d5d49b6713d279bc.png

667961fa343796d9765dd297331a048a.png

Quatre étapes de développement logiciel : conception, codage, tests et documentation

Tout au long de la session, les chercheurs ont attribué à chaque robot IA des rôles spécifiques en leur demandant des « détails importants » décrivant « des tâches et des rôles spécifiés, des protocoles de communication, des critères et des contraintes de terminaison », comme le montre la figure ci-dessous :

445f0d317878ce4d795adeba14055901.png

Après avoir reçu une demande de développement d'un jeu émanant d'un client humain, celui-ci entre d'abord dans la phase de conception au sein de l'entreprise de développement de logiciels virtuels. Dans cette phase, trois rôles prédéfinis sont impliqués, à savoir : CEO (Chief Executive Officer), CPO (Chief Product Officer). ) ) et CTO (Chief Technology Officer).

La chaîne de discussion décompose ensuite la phase de conception en petites tâches de discussion successives, y compris les décisions concernant le modèle du logiciel cible (PDG et CPO) et le langage de programmation (PDG et CTO). Trois mécanismes clés sont impliqués :

  • Spécialisation des rôles : chaque rôle personnalisé remplit la fonction qui lui est assignée et facilite efficacement les conversations axées sur les tâches.

  • Flux de mémoire : conserve principalement les enregistrements de discussion ci-dessus pour permettre aux personnages personnalisés de prendre des décisions éclairées.

  • Auto-réflexion : lorsqu'un personnage personnalisé fait le travail mais ne répond pas aux exigences, le mécanisme d'auto-réflexion génère un « faux soi » qui réfléchit sur la décision proposée.

b6bc8f8a569047be2825e9ccb3df22ff.png

Après des discussions entre le PDG, le CPO et le CTO, ils ont décidé de positionner le jeu de backgammon comme un jeu de table et d'utiliser Python pour le développer.

257363744ea05dd5160e43ea75efcccf.png

Dans le même temps, le rôle de l’agent a également affiné davantage les besoins du développement de jeux grâce à l’autoréflexion :

67c2d8d41840ace88a76ce41439f3c99.png

Une fois les exigences de conception claires, la phase de codage commence.

La phase de codage implique trois rôles prédéfinis : CTO, programmeur et graphiste. De même, la chaîne de discussion décompose la phase de programmation en petites tâches de discussion consécutives, telles que le CTO fournissant des exigences et des idées, le programmeur générant le code complet, le concepteur concevant l'interface utilisateur graphique et le programmeur effectuant l'intégration.

72896a295df59864562d27bec91eda18.png

d195a487d5f0e2c891a7d0acdaef7ef0.png

Une fois cela fait, même les programmeurs humains ne peuvent pas garantir que le code qu’ils écrivent du premier coup sera toujours exempt de bogues. Cela nous amène donc à la phase de test, où les programmeurs, les réviseurs et les testeurs travaillent ensemble pour examiner le code source via un examen par les pairs (programmeurs et réviseurs) afin d'identifier les problèmes potentiels, puis effectuent des tests du système (programmeurs et testeurs), qui utilise les tests. effectué par l'interprète pour vérifier l'exécution du logiciel. Ce test évalue principalement les performances de l'application via des tests en boîte noire.

8a2c3561efd9e8c8e3ac865f87f864c4.png

4bbc90eb0ebba9acd85c45d832dc4ec2.png

Finalement, après les phases de conception, de codage et de test, ChatDev a embauché quatre agents (PDG, CPO, CTO et programmeurs) pour générer la documentation du projet logiciel. À l'aide d'un grand modèle de langage, un manuel d'utilisation est généré.

3e7b1c2a646f98e56d280f2af0beda16.png

13d0af9b043381cd24f256614a4a20e9.png

Terminez le développement de logiciels en 7 minutes pour moins de 1 $

Il est intéressant de noter que les robots IA peuvent communiquer entre eux, rechercher des solutions et partager des informations importantes tout au long du processus ci-dessus, avec une intervention humaine minimale.

En termes d'utilisation spécifique de l'outil, les chercheurs ont utilisé la version "gpt3.5-turbo-16k" de ChatGPT, et le paramètre de température du langage (qui peut être utilisé pour contrôler la diversité et le caractère aléatoire des résultats générés) a été réglé sur 0,2. Par la suite, les chercheurs ont autorisé jusqu'à 5 tentatives à différentes étapes telles que le codage, l'examen et les tests. Pour le système basé sur Python, les chercheurs ont utilisé Python 3.8.16 comme interprète pour les tests.

En plus des exemples ci-dessus, les chercheurs ont déclaré que cette expérience avait analysé les 70 logiciels générés par Chatdev. En même temps, ils ont également effectué une analyse statistique de ces logiciels, y compris le nombre total de conversations, les jetons consommés, les fichiers logiciels, les actifs d'image. et les mises à jour de versions.

03536f76aa4e03579b219b6cb6877c74.png

Selon l'analyse, le logiciel généré comprend généralement 2 à 8 fichiers de code, avec une moyenne de 4,26 fichiers. Les logiciels développés par ChatDev comportent généralement entre 39 et 359 lignes de code, avec une moyenne de lignes 131,61. Ces données montrent que ChatDev a tendance à utiliser du code à relativement petite échelle pour générer des logiciels. Cela est dû en partie à la conception de la programmation orientée objet, qui permet la réutilisation du code et réduit la redondance grâce à l'héritage. Les chercheurs ont également remarqué que lorsque l'utilisateur spécifiait une tâche moins spécifique, le code source généré par ChatDev avait tendance à être plus court, avec une moyenne d'environ 110,97 lignes.

Au cours de l'expérience, les chercheurs ont constaté qu'environ 86,66 % des systèmes logiciels générés par le test fonctionnaient parfaitement. 13,33 % des logiciels n'ont pas fonctionné. Les principales raisons de cet échec étaient la limite de longueur des jetons de l'API, l'impact des problèmes de dépendances externes, etc.

En moyenne, ChatDev génère 17,04 fichiers par logiciel, le temps de production du logiciel est de 409,84 secondes, soit moins de 7 minutes, et le coût de fabrication est de 0,2967 $ . Les discussions mutuelles entre auditeurs et programmeurs ont permis d'identifier et de corriger près de 20 types de vulnérabilités du code, tandis que les discussions entre testeurs et programmeurs ont finalement identifié et résolu plus de 10 types de bugs potentiels.

547930e55cb8da87f7df875411b0762f.png

En comparaison, les cycles de développement de logiciels personnalisés traditionnels, même dans le cadre de méthodologies de développement de logiciels agiles, prennent généralement de 2 à 4 semaines, voire plusieurs mois, chacun.

d686cbac2dbebf59c5e13a5c39a27c9a.png

Regard vers l'avenir

Les résultats de cette étude montrent que la puissante technologie d’intelligence artificielle générative de ChatGPT peut exécuter des fonctions spécifiques de diverses manières, et ChatDev fournit également un nouveau modèle de développement de logiciels gratuit, efficace et rentable.

L'étude n'était cependant pas parfaite : les chercheurs ont découvert certaines limites, telles que le caractère aléatoire inhérent à la sortie générée, même lorsqu'ils réglaient le paramètre de température du grand modèle à un niveau très bas. Dans le même temps, il existe des erreurs et des biais dans les modèles de langage, et ces limitations peuvent entraîner des problèmes lors de la création de logiciels.

Néanmoins, les chercheurs affirment que les résultats « pourraient être utiles aux jeunes programmeurs ou ingénieurs du monde réel ».

« À l'avenir, d'autres recherches pourraient se concentrer sur l'affinement du protocole de communication et l'optimisation de la dynamique d'interaction dans chaque chat afin d'améliorer les performances et l'efficacité de ChatDev. En outre, l'exploration de l'intégration d'autres technologies émergentes, telles que l'apprentissage par renforcement et l'intelligence artificielle explicable, etc., peuvent fournir des informations précieuses pour résoudre les défis et améliorer l'ensemble du processus de développement logiciel", ont écrit les chercheurs dans leur article.

Actuellement, ChatDev est open source sur GitHub : https://github.com/OpenBMB/ChatDev. Les amis intéressés voudront peut-être également l'essayer ~

40e67232ae23e42ca8a1e5d47d41cedc.png

Je suppose que tu aimes

Origine blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/133003008
conseillé
Classement