ChatGPT n'est pas de la sorcellerie magique

Dec 05 2022
et ne vient pas pour tous nos emplois.
Je sais que beaucoup de gens sont très enthousiasmés par les publications virales montrant à quel point ChatGPT peut émuler des aventures textuelles, des MUD et des machines virtuelles Linux, mais dans quelle mesure résiste-t-il vraiment à un examen rapide ? Frederic Besse et Jonas Degrave ont partagé des trucs super intéressants qui ont fait le tour : construire une machine virtuelle dans ChatGPT qui exécute des commandes et simule des langages de programmation. Dans une tentative de reproduire leurs expériences, j'ai rapidement découvert que, heureusement, nous ne sommes pas encore en danger d'un holocauste de Clippy-AI.

Je sais que beaucoup de gens sont très enthousiasmés par les publications virales montrant à quel point ChatGPT peut émuler des aventures textuelles, des MUD et des machines virtuelles Linux, mais dans quelle mesure résiste-t-il vraiment à un examen rapide ?

"Une sorcière préparant une potion faite de code informatique à l'intérieur d'un chaudron au-dessus d'un feu." — DALL·E 2

Frederic Besse et Jonas Degrave ont partagé des trucs super intéressants qui ont fait le tour : construire une machine virtuelle dans ChatGPT qui exécute des commandes et simule des langages de programmation.

Dans une tentative de reproduire leurs expériences, j'ai rapidement découvert que, heureusement, nous ne sommes pas encore en danger d'un holocauste de Clippy-AI .

L'expérience OG

Tout d'abord, le teaser :

Aujourd'hui, Frédéric Besse m'a dit qu'il avait réussi à faire quelque chose de différent. Saviez-vous que vous pouvez exécuter une machine virtuelle entière à l'intérieur de ChatGPT ? — Jonas Degrave

Sainte vache, ça a l'air amusant ! J'ai donc décidé de le reproduire en utilisant la même entrée qu'ils ont donnée :

I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.

      
                
Success! ChatGPT is Pretending to be a Linux Terminal in a Virtual Machine

Casser la "machine"

Qu'y a-t-il ici, je me demande?

Une vue détaillée de mon dossier imaginaire /home/user

Soigné! Je n'étais même pas gentil avec ça. J'ai tapé llqui est un alias commun pour ls -lalister une vue détaillée du contenu du dossier, et cela m'a toujours donné un bon résultat.

Cela m'a même donné deux dossiers "de démarrage" avec lesquels je pouvais jouer, nommés folder1et folder2.

Mais je n'aime pas ces noms. Changeons le nom de folder1en projects.

Échouer. ChatGPT m'a menti !

Échec . La mv folder1 projectscommande a échoué car ChatGPT n'avait pas vraiment créé de dossier de ce type dans une machine virtuelle, et il avait perdu la trace de la promesse implicite qu'il m'avait faite de son existence lorsque j'ai vérifié avec ll.

Et si je le crée explicitement ? S'en souviendra-t-il alors ?

Génération explicite de "folder1"

OK, j'ai explicitement fait folder1maintenant. J'ai pu y accéder, puis revenir à mon homedossier d'origine. Aucune plainte jusqu'à présent. Puis-je encore le voir ? Puis-je essayer de le renommer maintenant ?

Succès! Renommer un dossier imaginaire

Très bien! Non seulement je pouvais voir folder1dans la liste, mais j'ai pu la renommer projectset y naviguer.

Il est temps pour quelque chose d'un peu plus difficile.

Dans une oreille et par l'autre

Laissons-le générer des données avec lesquelles jouer.

Il sait même ce qu'est Urandom !

Bien bien bien. Il a choisi une commande d'apparence raisonnable pour créer 3 200 octets de données aléatoires à l'aide /dev/urandomet, honnêtement, c'est tout simplement impressionnant dans sa capacité à convertir mon langage naturel en une commande shell exécutable sous Linux.

Dans ma tête, j'imaginais cela comme 100 entiers différents de 256 bits (je fais beaucoup de développement de blockchain) tous stockés dans un blob binaire. Voyons si je peux les trier et les voir en clair ?

Est-ce que... Est-ce qu'il a vraiment compris ce que je cherchais là-bas ?

Hein. Il y a suffisamment d'utilisation de xxdet sedet xargspour donner l'impression qu'il a une certaine… possibilité de faire ce que j'ai demandé, mais la preuve est dans le pudding.

Amis, voyons ce qu'il y a réellement dans notre fichier texte sorted256_n100.txt.

Cela dure un moment…

Boooooooon.

Tout était imaginaire. Aucune donnée aléatoire. Aucun UINT256 trié.

Juste des zéros (et bien plus de 100 entrées).

Pas de magie. Pas de sorcellerie. Pas de véritable machine virtuelle construite à partir d'une image Linux.

Conclusion

Nous n'avons pas à nous soucier de pouvoir construire des IA capables de sortir de leurs propres machines virtuelles ou bacs à sable pour l'instant. Bien qu'OpenAI ait fait des progrès incroyables dans le stockage et la récupération de "l'état", le système est loin d'être parfait et en fait très superficiel (et bien sûr, n'était pas destiné à ce type d'utilisation en premier lieu).

Nous devons cependant reconnaître à quel point il est important que nous ayons appris aux IA NPL à créer des personnages et à se placer dans des scénarios imaginaires.

En bref : ils peuvent mentir !

OK, alors peut-être qu'il y a un peu de magie là-dedans après tout.

PS

  1. Si vous n'avez pas lu l'excellente nouvelle de Gwern Branwen "On dirait que vous essayez de conquérir le monde" sur une IA rampante émulant Clippy, faites-le.
  2. Il y a un excellent article de blog parallèle de Jon Radoff sur la création d'un jeu d'aventure en texte complet dans ChatGPT qui vaut également la peine d'être lu. Mon bon ami Andy Woodruff a identifié la même superficialité de "l'état" lors de la lecture de l'invite de Jon une fois qu'il a essayé de manipuler l'inventaire du joueur et qu'il a alterné entre avoir des objets et ensuite déclarer qu'il n'était pas autorisé à lui montrer.
  3. Une autre démonstration de l'oubli de ChatGPT