Allez hop, encore une note de lecture sur l’IA et la FI ! Je vous ai déjà parlé (en deux parties) du fait qu’apprendre à une IA à jouer à une FI à analyseur syntaxique était un problème difficile, et que le résoudre serait un grand pas vers les IA avec un peu de bon sens. Mon article suivant était une note de lecture d’un article de recherche de 2015, qui construisait une IA capable de se représenter une description et d’en déduire une commande intéressante, et surtout de raffiner son fonctionnement à partir de l’expérience.

Aujourd’hui, on parle de TextWorld.

TextWorld c’est quoi ?

On parle de TextWorld dans 2 articles de recherche différents, parus en 2018. Le premier est « Counting to Explore and Generalize in Text-based Games » (par Yuan, Côté et al.), dans lequel les auteurs créent une intelligence artificielle suivant la même structure que dans l’article précédent : un réseau neuronal pour traduire le texte vu en une représentation interne, et un autre (avec une structure différente) pour trouver une commande qui devrait être intéressante. Une différence par rapport à l’article précédent est qu’ils ajoutent dans le scoreur d’actions une information qui dépend de l’état précédent, en plus de la représentation interne.

Pourquoi font-ils cela ? Parce qu’ils veulent que le système puisse résoudre un problème très particulier, restreint et qui paraît du coup un peu artificiel, mais qui a été utilisé dans d’autres articles sur les IA : celle-ci doit parcourir une succession de lieux consécutifs, en partant du début et en arrivant à la fin (la « chain experiment »). Pour augmenter la difficulté, chaque salle peut avoir quelques salles supplémentaires connectées ; ces dernières ne servent à rien et sont des impasses, et l’IA doit le reconnaître, revenir sur ses pas, et repartir vers la fin de la chaîne (et donc se souvenir de toutes ces choses !). C’est un labyrinthe, en fait — même si c’est particulièrement simple car les impasses sont immédiates, soyons gentils avec notre IA et encourageons-la.

Ce qui est intéressant, c’est que leur IA améliorée arrive à résoudre le problème au bout d’un moment, et apprend même une stratégie intéressante : celle qui consiste (pour les humains) à garder la main sur le mur de droite et à avancer. Les autres IA y arrivent aussi, mais plus lentement (il faut qu’elles recommencent plus de fois avant d’obtenir un très bon score). Et encore mieux : après avoir entraîné une IA à résoudre un labyrinthe, ils la lâchent dans un labyrinthe différent et plus difficile (avec plus d’impasses), et elle y arrive quand même, en appliquant la stratégie qu’elle a apprise !

Bon, mais c’est quoi TextWorld ??

TextWorld est l’outil qu’ils ont créé dans ce cadre-là, et qu’ils présentent (en tout cas, il y a 3 auteurs principaux en commun) plus en détail dans un second article : « TextWorld: A Learning Environment for Text-based Games ».

Une première fonctionnalité de TextWorld est de pouvoir interfacer les fictions interactives Inform avec des intelligences artificielles. Un script Python permet d’exécuter le jeu Inform, ainsi que de lancer l’IA dans le même environnement, et l’entraîner par renforcement en jouant au même jeu encore et encore. Bien sûr, le fait que l’IA y arrive reste théorique pour ce qui est des « vrais » jeux, pour les raisons que j’avais détaillées dans mon premier article, voire d’autres, données dans l’article dont on parle (comme le fait que 2 commandes différentes peuvent donner le même résultat). L’article donne d’ailleurs une liste de fictions interactives (un poil datée, si vous voulez mon avis) classiques mais avec des contraintes et des profils variés, résumés en annexe. Choisir des profils différents vous permettrait de développer certaines capacités chez votre IA au dépens d’autres ; vous avez des jeux où il faut se nourrir tout le temps, d’autres où les énigmes se basent sur des références à la culture populaire, d’autres où certaines énigmes doivent être résolues en un temps imparti, d’autres où il y a des combats, etc. C’est assez intéressant de les voir classés comme cela, en fonction des difficultés que peut rencontrer une IA — même si une telle liste paraît ambitieuse voire prématurée dans l’état actuel des choses.

La deuxième partie de TextWorld est la génération de quêtes et de jeux pour entraîner votre IA, et là on touche à quelque chose de très marrant. TextWorld a une sorte de moteur de jeu qui modélise quelques actions de base (entrer, prendre, manger, etc.). Puis, à partir de ces actions, TextWorld permet de générer des quêtes, c’est-à-dire des suites d’action qui permettent de gagner ; on peut les générer en spécifiant les actions dans l’ordre, ou en partant de la fin. TextWorld permet également de générer une carte au hasard, avec certains paramètres comme le nombre de connections ou la présence de cycles. Enfin, TextWorld peut générer les noms d’objets (au hasard ou avec des qualificateurs génériques si votre IA a peu de vocabulaire), ainsi que les descriptions des objets et des salles et les instructions de quêtes.

Et le résultat est écrit par TextWorld en un code Inform 7, prêt à être compilé ! Ainsi, en utilisant TextWorld, vous pouvez générer une infinité de jeux correspondant à un schéma que vous avez spécifié, avec des caractéristiques immuables permettant de focaliser votre IA sur un type de FI précis, et ainsi sur des capacités bien identifiées. Vous pouvez ainsi générer 10000 jeux où il y a une porte et une clé, et les utiliser pour que votre IA finisse par apprendre à déverrouiller des portes ; puis vous pouvez mettre des couleurs sur les clés, pour corser les choses, etc.

TextWorld est un outil de chercheur, et devrait être utilisé par relativement peu de personnes ; de plus, pour l’instant, les IA sont relativement primitives, et les jeux qu’on leur crée aussi. Cela étant, la démarche est intéressante, à l’intersection entre la FI, l’IA et la génération de texte ! J’espère que ça vous aura intéressé !

P.-S. — il y a bien un autre article qui m’intéresse, « Text-based adventures of the Golovin AI agent », en 2017. L’idée qui m’interpelle, c’est qu’ils se focalisent sur les vieilles fictions interactives médiévales-fantastiques, et pour cela, ils commencent par faire lire plein de fantasy à leur IA pour qu’elle s’imprègne du monde et de ses conventions. Ça a l’air cool !!