On termine ce mois de l’intelligence artificielle sur notre site en beauté, avec un article de recherche tout récent, qui a paru il y a quelques semaines seulement ! La semaine dernière, on parlait de Textworld, un outil créé par des chercheurs de Microsoft Research qui permet d’interfacer des intelligences artificielles avec des fictions interactives écrites avec Inform, avec comme but que ces IA puissent apprendre à résoudre des petits problèmes avec un apprentissage par renforcement consistant à jouer à ces jeux. C’est un peu la démarche dont j’avais parlé dans mes deux premiers articles sur le sujet, ainsi que celle d’un article de 2015.

Aujourd’hui, on parle de LIGHT, et de l’article « Learning to Speak and Act in a Fantasy Text Adventure Game », par Urbanek et ses collègues de Facebook AI Research, dont le but est un peu différent : au lieu de chercher à apprendre à une IA à résoudre des énigmes et à avancer dans un jeu, et finalement pouvoir à incarner un personnage principal de jeu d’aventure, on essaie d’entraîner une IA pour qu’elle puisse réagir à du dialogue et à des actions faites par un joueur. En gros, une IA qui pourrait être un PNJ dans un jeu vidéo textuel !

L’outil LIGHT est simplement la plate-forme qu’ils ont construite pour interfacer des intelligences artificielles et des humains. Elle ressemble en quelque sorte à un MUD (multi-user dungeon), c’est-à-dire une fiction interactive à analyseur syntaxique qui se joue en multijoueur sur un réseau. Cependant, de ce que je comprends, ça n’est pas un jeu complet, avec des lieux dans lesquels on se déplace et des quêtes à accomplir ; il semblerait que les phases de jeu soient des phases d’interaction entre deux personnages, définis et décrits par le jeu, dans un lieu également décrit par le système et avec quelques objets. Les personnages peuvent se parler entre eux, faire quelques actions, et avoir des réactions ; l’idée est que l’ordinateur pourrait incarner un personnage, et un humain viendrait avec un autre personnage jouer avec l’ordinateur façon roleplay. Ce qui, tout compte fait, serait déjà assez incroyable, puisque vous pourriez converser et jouer (finalement, improviser comme une scène d’improvisation théâtrale !) librement avec un ordinateur qui joue un rôle en face de vous !

Un petit avertissement : cet article est plutôt dense, et je l’ai trouvé plus technique et plus difficile à lire que les précédents ; il y a aussi beaucoup d’appendices et d’exemples à lire. J’espère lui faire justice et ne pas me tromper trop… Commentaires bienvenus pour me dire si j’ai fait un contresens. 🙂

Collecte de données humaines

Pour entraîner une intelligence artificielle, il faut des données — beaucoup de données. Il fallait donc à la plateforme LIGHT plusieurs choses :

  • Des personnages, ayant une description de quelques lignes, un persona (une liste de quelques motivations écrites à la première personne, comme « je vis dans les bois tout seul » ou « je n’ai pas vu ma famille depuis des mois ») et la liste des objets qu’ils portent. Il y a 1755 personnages disponibles.
  • Des lieux, qui pourront influencer le contexte et le dialogue ; ces lieux ont une description de quelques lignes, une histoire, quelques objets et personnages qui sont présents ou peuvent être présents dans le lieu, et une liste de lieux voisins (cela pour pouvoir éventuellement les coller ensemble et générer une carte). Il y en a 663.
  • Des objets (au nombre de 3462), avec une description et des propriétés (portable, mangeable — oh, tiens tiens, les mêmes catégories que dans Inform).
  • Des actions (13 en tout), codées en dur dans le jeu, comme par exemple : « prendre : pour cela il faut que l’objet et le personnage soient dans la même salle et qu’on puisse prendre l’objet, alors l’objet est dans l’inventaire du personnage. » Encore une fois, quelque chose de très classique dans le cadre d’une modélisation des actions de base d’une fiction interactive à parser ;
  • des réactions (emotes), au nombre de 22, comme « applaudit », « danse », « fait un clin d’œil », là encore choisies par les auteurs de l’article.

Comment ont-ils obtenu des milliers d’objets, de personnages, et de lieux ? En déléguant la tâche à des micro-travailleurs, via la plateforme Mechanical Turk, qui propose de réaliser des petites tâches (souvent répétitives) pour de petites sommes d’argent. C’est souvent du travail ingrat, et les gens qui y participent ne sont pas très bien payés, si bien que ce genre de plate-formes est relativement critiqué (exploiter des humains pour qu’ils donnent un peu d’humanité que l’on peut ensuite donner à manger à une intelligence artificielle pour l’entraîner et remplacer les humains, non ça n’est pas de la science-fiction…). En tout cas, ça leur a donné beaucoup de choses sur lesquelles travailler.

Ils ont également (surtout) collecté des interactions, sous la forme de plus de 10 000 répliques et actions. Ces répliques ont été créées par des humains : la plate-forme LIGHT prend deux micro-travailleurs, leur donne des personnages tirés au hasard, dans un lieu tiré au hasard et avec quelques objets, et ils doivent faire une petite scène ; chaque personnage parle chacun son tour et a la possibilité de faire des actions et des réactions. Parmi les exemples donnés, il y a une conversation entre un sanglier et une fée, ou entre un roi et son serviteur, d’une dizaine de répliques chacune, détaillées en fin d’article.

Imitons leurs émotions

Après avoir collecté tout ça, c’est l’heure de mettre en place l’intelligence artificielle… et c’est là que je vais vous avouer que je n’ai pas vraiment compris les détails techniques. (Mais est-ce que ça vous intéresse, là est la question aussi !) Il y a des modèles de classement et des modèles de génération, qu’ils comparent avec des méthodes standard de data mining, et dedans il y a Bert Bi-Ranker et Bert Cross-Ranker. Ces deux-là sont les deux plus intéressants, et de ce que j’ai compris, Bert Bi-Ranker prend en compte le contexte d’un côté et les réactions/actions possibles (candidates) de l’autre côté, alors que Bert Cross-Ranker agrège le contexte aux réactions pour pouvoir les colorer ? Bref, Bert Cross-Ranker est mieux mais prend beaucoup plus de temps, mais Bert Bi-Ranker est quand même mieux que toutes les autres méthodes (bien entendu, vu qu’un article scientifique se doit de toujours être le meilleur du monde).

Comment jugent-ils leurs IA ? Ils les mettent dans des conditions réelles, celles où elles vont devoir opérer et prendre des décisions qui paraissent humaines  : ils reprennent des conversations, et ils les arrêtent à un moment, et demandent à l’ordinateur « quelle est la prochaine réplique ? » ou « quelle est l’action / la réaction suivante ? ». Ils font ensuite le même test avec un humain, et comparent les taux de succès. Une autre étape de test met les IA dans des lieux qu’elles n’ont jamais vues, et leur demande de choisir parmi des répliques qu’elles n’ont jamais vues.

Le résultat ? Un humain prédit la bonne réplique 87,5 % du temps, la bonne action 62 % du temps, et la bonne emote 27 % du temps ; ce bon vieux Bert a des taux de réussite de 75 %, 50 % et 26 %. Vraiment pas mal ! Sacré Bert. De plus, les taux de réussite sont du même ordre pour les tests réalisés dans des situations jamais rencontrées, ce qui est très encourageant : Bert a vraiment appris quelque chose qu’il peut transférer à d’autres situations pour agir comme un humain le ferait.

Pourquoi déterminer l’emote suivante est un problème si difficile ? J’avoue que je ne sais pas trop : après tout, on pourrait se dire que le problème est plutôt plus simple, puisqu’il n’y a que 22 possibilités, alors qu’il y a des milliers d’objets et de dialogues possibles. Cependant, une réaction du type « faire la grimace » est en réalité relativement floue : elle dépend du personnage, de son interprétation, de son caractère, de la relation entre les deux personnages, et de la signification de la réaction, qui peut être ambiguë ou en tout cas polysémique (rit-on pour partager un bon moment ou pour se moquer ?). En tout cas, Bert a besoin d’une trentaine de secondes pour trouver une réaction émotionnelle appropriée, alors qu’il ne prend que 2 secondes pour une réplique ; mais ils ont des diagrammes fascinants à la toute fin de leur article qui montrent que Bert a tendance à répondre à un coup par un coup, et enlacer quelqu’un qui pleure ou qui est content. Awww, il est trop choupi ce Bert.

Alors bien entendu, on n’est pas encore au stade où une IA pourrait tourner toute seule et discuter naturellement à un joueur. Cependant, il semblerait que si on entraîne une IA suffisamment bien et qu’on lui donne une grande liste de répliques possible, elle arrive à se comporter comme un personnage non-joueur similaire à un humain — c’est déjà quelque chose de très encourageant et intéressant, et que l’on pourrait voir débarquer dans les jeux vidéo du futur !