Il y a quelques semaines, l’Internet a bruissé en découvrant un projet extraordinaire : une fiction interactive à parser en anglais, où le texte était généré en direct par une intelligence artificielle. Le jeu s’appelle AI Dungeon 2, et a fait le tour de l’Internet assez rapidement ; les gens ont été bluffés et surpris et postaient des extraits des moments de jeu les plus épatants, ce qui amenait plus de gens à essayer le jeu… L’excitation est un peu tombée, ainsi que les serveurs — il y a eu tellement d’affluence que le site était indisponible — mais le jeu est revenu en ligne récemment. On vous propose cette semaine une analyse de ce jeu, avec notre recul et notre expérience !

On a déjà abordé le sujet de l’IA et de la fiction interactive sur ce site : on y a déjà consacré deux dossiers, c’est-à-dire dix articles différents ! Le premier, en mars 2019, était sur les liens particuliers entre l’acte de jouer à une fiction interactive et l’apprentissage par une fiction interactive de représentations complexes qui correspondent à ce que nous les humains appelons « bon sens ». Le deuxième, en novembre 2019, abordait la question sous l’angle des chatbots, ces programmes conversationnels qui donnent l’impression de s’adresser à un humain. Ici, c’est un rôle différent qui est joué par l’IA : elle n’est pas joueuse d’une FI, ou un personnage dans une FI, mais narratrice d’une FI !

Prise en main d’AI Dungeon 2

Un extrait de jeu vaut mieux qu’un long discours !

> look up in the sky
As you look up into the sky, you see a large black cloud floating over the horizon. A storm is coming soon, and it will probably destroy everything. You can't do anything about it now; all you can do is prepare for what may come next.

> brace for impact
You brace yourself as the storm approaches. You think back to when you were little and watched the clouds move across the sky. They moved like they did today, but faster and more violent than they ever could have done then.

> shout angrily at god himself
You shout angrily at God, who has abandoned you and left you to suffer. You feel an immense rage welling up inside of you. You wonder if you shouldn't just kill everyone here right now, before the storm hits.

> grab my sword and start killing
You grab your sword and rush towards the nearest man. He screams out in pain, but you ignore him. You slash his throat open and he falls backwards onto the ground. You turn around and run through a group of men, slashing them apart with ease. Then you hear a scream behind you...

> turn around and stab
You turn around and stab the man who screamed at you. His body slumps lifelessly against the ground.

> wipe the sweat off my brow
You wipe the sweat off your brow and continue stabbing. Soon, you've killed all of these people. You stand in front of a large pile of bodies, some still alive, others dead. Some look like they were tortured, while others looked happy to die.

> climb onto the pile of bodies
You climb onto the pile of corpses and begin looking around for any weapons or other valuables. You find nothing, though you are surprised to find that you haven't lost anything either. Perhaps this is a punishment given by the gods themselves.

> cry for forgiveness for the deaths you caused
You cry for forgiveness for causing so much death, but there isn't really anything you can do about it. The storm is coming soon and you'll never escape from it.
The storm comes quickly, and the wind howls as it blows through the trees.

Le point le plus frappant de ce jeu, c’est à mon sens qu’il remplit la promesse originelle de l’analyseur syntaxique, qui est « vous pouvez tout demander à l’ordinateur ». Cette puissance infinie n’a jamais été réalisée par une fiction interactive codée à la main : l’ordinateur ne reconnaît qu’un certain nombre de verbes, de noms, de tournures, et tout le reste (dont parfois des choses qui semblent logiques, ou des solutions alternatives) est refusé par le programme, ce qui génère beaucoup de frustration. Une voie alternative a été tentée récemment (on vous en parlait dans un article il y a quelques mois), d’avoir un parser qui ne dit jamais non, et qui continue de parler s’il ne vous comprend pas ; ça donne un parser qui prend parfois en compte votre entrée, et qui fait avancer, voire divague, le reste du temps. Ici, rien de tout cela : vous pouvez taper n’importe quelle phrase, et l’IA le prendra en compte et vous répondra quelque chose de cohérent, censé, et souvent inattendu. L’impression de liberté est totale, et enivrante.

Personnellement, et sans doute parce que j’ai déjà écrit un article sur le sujet, ça me rappelle ce que j’ai écrit sur les parallèles entre l’impro et la fiction interactive. Ici, on a un jeu qui accepte toutes les propositions et qui les intègre dans le récit en y ajoutant ses idées, sans jamais faillir, et en y ajoutant un grain de folie ; c’est l’état optimal d’un improvisateur, le flow comme on dit, et c’est très recherché dans la pratique de l’impro. Mais ça pourra également évoquer, tout simplement, une partie de jeu de rôle qui part un peu en vrille — comme a dit quelqu’un sur le Discord, le club jeu de rôle du collège avec un MJ enflammé qui contorsionne le récit pour intégrer les suggestions parfois débiles de ses copains.

Cependant, il y a quand même un souci dont il faut que je vous parle. L’IA est un outil qui sert à générer du texte, et purement du texte ; ce que j’entends par là, c’est qu’elle ne génère pas une géographie cohérente, des objets en relation les uns avec les autres, des énigmes, une histoire filée avec un début et une fin… Bref, un jeu quoi… Et même quand je dis « elle génère du texte », il y a des soucis, dans le sens où la cohérence n’est pas toujours au rendez-vous : l’IA perd des choses de vue, elle se contredit, elle perd le fil, elle comprend de travers… Ce qui est quand on y réfléchit tout à fait normal : c’est un perroquet mixeur, pas un être vivant doué de bon sens (et si vous voulez savoir pourquoi c’est difficile, lisez nos articles). Dans ces conditions, AI Dungeon est condamné à rester un objet de divertissement ludique, mais pas un jeu au sens usuel du terme. Enfin bon, c’est déjà beaucoup !

"Everyone gather around!" You shout. "This could be dangerous for us all." The leader nods his head and gathers everyone together. He then walks out into the open area where he sees several figures running towards him with weapons drawn.

(Trois commandes plus tard, où je vérifie si ma mère va bien, l’IA a oublié qu’il y avait des gens qui nous attaquaient.)

Le créateur a aussi indiqué, notamment sur Patreon et Twitter, qu’il travaillait sur deux axes différents pour aller encore plus loin : la possibilité d’interagir en multijoueur, et la possibilité de remplacer l’humain qui tape les commandes par une autre IA, ce qui ferait deux IA qui se répondent. Ces deux projets semblent difficiles mais pas impossibles, et produiront encore plus d’émerveillement, sans doute !

Sous le capot

Alors, comment ça marche ? Sorcellerie, oompa-loompas ? Non, GPT-2 ! Il s’agit d’un système d’intelligence artificielle créé par OpenAI, une des compagnies les plus avancées dans le domaine, dirigée par Ilya Sutskever, une légende. Cette intelligence artificielle a été entraînée sur 8 millions de pages Internet (40 Go de texte) et, en utilisant des méthodes perfectionnées, est désormais l’intelligence artificielle la plus avancée pour ce qui est de la conversation en anglais naturel. Après une annonce début 2019 sur un ton apocalyptique (« nous avons une IA si puissante à générer du texte qu’on ne veut pas la rendre publique de peur d’en faire un générateur de fake news »), l’IA a été rendue publique en novembre.

Elle tourne dans le nuage, sur des serveurs Google très puissants, et a beaucoup de mémoire, ce qui lui permet de générer des textes longs et des phrases, et même des paragraphes, qui ont du sens. Il s’agit d’un outil extraordinaire si on veut générer du texte plus ou moins long, en partant de pas forcément grand-chose : vous pouvez tester les possibilités avec ce site, qui génère une suite à votre texte. L’idée est que le modèle est déjà entraîné sur l’anglais et sa structure, mais peut être influencé par ce que vous lui donnez à manger : il peut ainsi générer de faux noms de bonbons d’Halloween, de faux groupes de musique, et de fausses chansons de Noël (à retrouver sur le site AI Weirdness).

AI Dungeon 2 a été réalisé par Nick Walton, un thésard à la Brigham Young University, et utilise précisément GPT-2. Cependant, il y a beaucoup de travail derrière (ça n’est pas juste « on met quelque chose dans GPT-2 et c’est fini ») ; enfin, je pense, car je ne suis pas allé chercher beaucoup plus loin. Il mentionne notamment avoir ajouté des pénalités pour éviter les répétitions dans le texte, et j’imagine qu’ils ont fait d’autres adaptations pour coller à ce qu’ils voulaient obtenir au final. L’IA a été entraînée en utilisant des livres dont vous êtes le héros tirés du site ChooseYourStory.com, qui est l’un des plus anciens et en recense des centaines ; cela explique le fait que le jeu est capable de recréer beaucoup de choses auxquelles on s’attendrait (univers médiéval-fantastique, narration à la deuxième personne, etc.).

Je trouve intéressant qu’il soit allé chercher des livres dont vous êtes le héros et pas des fictions interactives textuelles. Ma supposition est que les genres sont suffisamment proches au niveau de la narration pour être plutôt interchangeables, et que les livres dont vous êtes le héros ont l’avantage d’être du texte simple, « plat », facile à aspirer et à digérer depuis un site Internet. Il est bien plus difficile de trouver l’équivalent pour les fictions interactives : les fichiers jeux ont des chaînes de caractères cassées (par exemple quand vous avez mis une condition dans le texte, ou êtes passé en italique), et il n’y a pas tant de transcriptions que ça. Cependant, notons que ça a déjà été fait : un thésard a entraîné une version préliminaire de GPT-2 sur 3 transcriptionss de FI (à vue de nez, Adventure, Zork, et Trinity) pour faire une FI avec une IA, mais ça marche moins bien. Peut-être que ça marcherait mieux avec un corpus plus grand (les walkthroughs de David Welbourn ? Ceux de ClubFloyd ?) et la dernière version de GPT-2 ? À essayer…

Une révolution ?

Calmons-nous : non, ça n’est pas une révolution qui mettra les créateurs de FI sur la paille. Comme je l’ai dit, un problème majeur est que le jeu n’est pas cohérent, ne raconte pas d’histoire, et se perd parfois. Cependant, même en admettant que ces problèmes soient résolus, il est difficile de penser qu’on pourra un jour appuyer sur un bouton et générer une FI avec une IA. Le problème majeur est celui du corpus, et de la difficulté de prédire ce que fera l’IA : où allez-vous trouver les milliers de mots qu’elle devra absorber pour générer quelque chose qui vous plaît ? (Allez-vous les écrire vous-même ? Est-ce que c’est vraiment plus simple ?) Et comment vous assurer que tout ceci correspond à votre vision du jeu ?

Un autre problème majeur est celui de la puissance de calcul nécessaire pour faire tourner ces modèles. Il y a environ 1,5 milliards de paramètres dans GPT-2, chacun avec un poids différent, et tout texte entré doit cheminer dans ce modèle complexe pour qu’on puisse créer une phrase en sortie. Cela coûte très cher en terme de puissance de calcul, et il n’est pas dit que cette puissance de calcul soit atteignable dans un ordinateur ou une console (surtout si vous voulez faire un vrai jeu, ou un personnage fictif défini, plus cohérent, etc.).

Nick Walton a indiqué sur son site que chaque fois que quelqu’un joue à son jeu, ça lui coûte quelques centimes en frais d’hébergement sur le serveur de cloud qui fait tourner son programme ; à cause de la célébrité soudaine (70 000 parties jouées par jour la semaine où le site a fait le tour d’Internet), il a déjà dû dépenser 65 000 $ par mois en frais d’hébergement, et en appelle à des donations via Patreon pour pouvoir continuer à faire tourner le serveur. Ce sont des coûts qui sont non négligeables (il me semble qu’on s’approche des coûts d’infrastructure pour un MMORPG), surtout pour un jouet gratuit où les joueurs ne passent pas tant de temps que ça dessus (comparé à un MMORPG). Il est difficile d’imaginer qu’une IA qui soit plus avancée ou cohérente que ça, si elle existe, coûtera moins cher à lancer, bien au contraire ; ce genre de projets donne rapidement lieu au jeu textuel le plus cher de l’histoire !

Enfin, on peut se demander si un équivalent de ce projet pourrait exister en français. D’après ce que j’ai lu sur GPT-2, cette IA a de très bonnes capacités en anglais mais pas dans les autres langues ; cependant, nul doute que le principe soit transposable à d’autres langues, il « suffit » de trouver quelques millions de pages web rédigées en français (et des ressources de calcul gigantesques, que seules deux ou trois entreprises ont). Ensuite vient la question du corpus ; cependant, on peut penser que le site de nos collègues Littéraction, qui rassemble des livres-jeux amateurs disponibles gratuitement, peut sans doute aider à la construction de notre IA. Bref, pas un petit projet, mais faisable peut-être un jour. Avis aux thésards en IA qui nous écoutent…