Un réseau de neurones est en train d'écrire la suite de Game of Thrones

Le prochain tome des aventures de Sansa, Bran, Jon et compagnie est déjà là. Enfin, presque.
30 août 2017, 7:00am
Image : HBO/Shutterstock. Montage : Jason Koebler

À peine remis de la bataille finale de la septième saison de Game of Thrones, les fans ont dû se confronter a une dure réalité : les six derniers épisodes de la série-phare de HBO ne seront pas diffusés avant le printemps 2019. Dur.

Pour les lecteurs du Trône de fer, la saga littéraire sur laquelle est basé Game of Thrones, ce délai semble ridiculement court. Le papa de Westeros, George R.R. Martin, travaille sur le sixième livre, The Winds of Winter, depuis 2011. Le pire, c'est qu'aucune date de sortie n'a été annoncée en six ans. Acculée par la lenteur de l'écrivain, l'équipe de la série télévisée n'a eu d'autre choix que créer son propre scénario à partir de la fin de la saison 6.

L'ingénieur logiciel Zack Thoutt a décidé qu'il ne voulait plus attendre pour avoir le fin mot de l'histoire. Des merveilles technologiques bien supérieurs à celles des Mestres de Villevieille sous les doigts, il a donc créé un réseau de neurones récurrents chargé de prédire l'issue du sixième roman de George R.R. Martin. Vous pouvez lire son premier chapitre ici, en Anglais.

Pour mener son projet à bien, Zack Thoutt a utilisé ce qu'il a appris au cours d'une formation en intelligence artificielle et deep learning dispensée par le site d'apprentissage en ligne Udacity. "Je suis un énorme fan de Game of Thrones, tant des livres que de la série, m'a-t-il affirmé. J'avais déjà travaillé avec des RNR grâce à ce cursus et je me suis dit que c'était l'occasion d'essayer avec les livres."

Les réseaux de neurones sont des algorithmes de machine learning qui ont été conçus pour imiter le fonctionnement du cerveau humain ; le sous-genre des réseaux de neurones récurrents fonctionne particulièrement bien avec les séquences de données, notamment le texte.

"Avec un réseau de neurones bateau, vous fournissez un input de données, le faites passer au travers du réseau et obtenez une gamme d'outputs, explique Thoutt. Pour entraîner ces modèles, vous devez savoir ce que vous souhaitez obtenir de lui dans l'idéal. C'est ce qu'on appelle des labels ou des variables cibles. Le réseau de neurones compare les outputs qu'il obtient avec ceux que vous attendez et se met à jour pour cadrer au mieux à vos directives."

Pour être tout à fait précis, Thoutt travaille avec un réseau de neurones récurrents LSTM, Long short-term memory. Ce type de RNN dispose d'une mémoire assez performante pour lui permettre de se "souvenir" des éléments de l'intrigue sur laquelle il est supposé s'appuyer. En théorie, cela lui permet d'éviter de ré-écrire des événements qui se sont déjà produits dans les livres précédents et, de fait, de générer des ouvrages remplis d'aventures inédites.

Évidemment, de temps à autres, la machine capote un peu. Il est déjà arrivé qu'elle prête des péripéties à des personnages morts depuis longtemps, par exemple.

"Elle essaye d'écrire un nouveau livre, explique Thoutt. Un modèle parfait serait capable de se souvenir de tout ce qui s'est passé dans les ouvrages déjà publiés et n'écrirait pas à propos de personnages qui sont morts deux tomes plus tôt. Dans les faits, cependant, le modèle n'est pas assez performant pour faire ça. S'il était aussi bon, les auteurs de chair et d'os auraient du souci à se faire. L'ordinateur s'échine à créer un nouveau livre en gardant à l'esprit tous les éléments précédents, mais il fait beaucoup d'erreurs. Il y a une bonne raison à cela : entraîner un générateur de texte qui se souvient d'éléments d'intrigue complexes après des millions de mots est encore impossible. La technologie ne le permet pas."

Après avoir fourni les 5 376 pages des cinq livres déjà écrits par George R.R. Martin au réseau, Thoutt a produit cinq chapitres artificiels qu'il a publiés sur la page GitHub de son projet. Si vous lisez l'Anglais, c'est par ici.

"Je commence chaque chapitre en lui donnant un premier mot, toujours le nom d'un personnage, et en lui indiquant combien de mots il doit écrire, indique l'ingénieur. Je voulais obtenir des chapitres organisées autour d'un personnage spécifique, comme dans le livre. Au-delà de ça, je n'ai pas aidé le réseau."

En dépit du fait qu'il n'inspirera sans doute jamais George R.R. Martin, le RNN de Zack Thoutt est capable de produire une majorité de phrases lisibles et d'imaginer des rebondissements de situation crédibles.

Attention, les spoilers concernant les chapitres artificiels commencent ici. Le réseau a imaginé que Sansa Stark appartenait en fait à la maison Baratheon, mais aussi à une alliance jamais vue dans les ouvrages originaux.

"Je craignais Maître Sansa, Ser", lui rappela Ser Jaime. "Cette Baratheon fait partie des croisés. Les Puînés de votre concubine de la maison oignon."

"C'est la toute première phrase que le réseau a créée, affirme Thoutt. Je me suis dit que c'était vraiment marrant. Dans la série, les Puînés sont une troupe de mercenaires acquis à la cause de Daenerys Targaryen. Pour la "concubine de la maison oignon", par contre, nous allons devoir attendre les prochains chapitres pour en apprendre plus."

Le réseau a également créé un nouveau personnage baptisé Greenbeard, "Barbeverte" :

"Aye, Pate." Le grand homme leva son épée et lui fit signe de s'éloigner et poussa le grand trône d'acier dans la direction d'où venait la fille. Barbeverte attendait devant les portes, gros bubon aveugle et barbu au corps déchu racla ses doigts depuis un anneau de pomme blanche. Il était à demi-enterré fou sur le miel d'un cerveau séché, de deux rôdeurs, un lourd frey.

"Manifestement, ce n'est pas parfait, reconnaît bien volontiers Thoutt. Le modèle ne construit pas de mémoire à long-terme et délire un peu côté grammaire. Reste qu'il a été capable d'apprendre les bases de l'Anglais et la structure du style de George R.R. Martin de lui-même."

Toutes les prédictions de l'engin ne sont pas complètement à côté de la plaque. Le réseau a prédit que Jaime Lannister finirait par tuer sa soeur et amante Cersei, que Jon Snow enfourcherait un dragon et que le conseiller Varys empoisonnerait Daenerys, que des théories déjà imaginées par les fans de la série télévisée.

Jaime tua Cersei et il était froid et plein de mots, et Jon pens qu'il était désormais le loup, et blancport…

"Pour moi, ça confirme que tout peut arriver dans Game of Thrones, s'amuse Thoutt. Je n'ai fourni que les livres au réseau, rien qui provienne des sites de fans."

L'ingénieur affirme que les cinq ouvrages déjà publiés contiennent quelques 32 000 mots uniques, ce qui a compliqué l'entraînement du RNN. "Martin a un style très descriptif, évidemment, indique-t-il. T ous ces adjectifs, ces lieux fictifs et ces titres ne sont pas évidents à gérer pour le réseau."

En réalité, les cinq tomes d' A Song of Ice and Fire ne représentent qu'un data set relativement maigre pour l'entraînement d'un RNN. Dans un univers idéal, affirme Thoutt, le matériel source serait un livre 100 fois plus épais que la saga mais rédigé avec un vocabulaire de livre pour enfant.

Thoutt a pensé à fournir des textes additionnels au modèle, notamment le script de la série de HBO, mais il a préféré abandonner l'idée ; ç'eût été compromettre un data set issu exclusivement des romans originaux et compliquer la tâche du réseau en le confrontant au style bien particulier des scripts télévisés.

Les péripéties bricolées par le RNN de Thoutt seront peut-être tout ce que l'univers de Game of Thrones connaîtra de nouveau d'ici 2019. Prenez votre mal en patience ! Et puis, qui sait, peut-être Barbeverte s'emparera-t-il du Trône de Fer au début de la saison 8.

Publicité