Archives mensuelles : juin 2020

L’écrivain est un robot: générer des pastiches littéraires avec GPT-2

En 1909, l’écrivain allemand Karl Lasswitz imagine une bibliothèque universelle reposant sur « une machine combinatoire » capable de générer toutes les combinaisons possibles de 40 lignes de 50 caractères. Cette collection contient non seulement toutes les œuvres qui ont existé mais aussi toutes celles qui ont été perdu ou qui restent encore à venir. Seulement, la bibliothèque reste un horizon rêvé et inaccessible. Non seulement il est impossible de s’y retrouver. Elle contient forcément son propre catalogue mais il est tout aussi irrécupérable. Et, de toute manière, la bibliothèque est irréalisable : elle contient plus de livres qu’il n’existe d’atomes dans l’univers.

L’histoire a été fréquemment reprise (et la bibliothèque universelle devient la bibliothèque de Babel dans une version fameuse de Borges). L’informatique moderne semble la concrétiser. Plusieurs projets numériques en donnent une idée approximative. Il existe ainsi une library of babel contenant 3200 pièces disposant chacune de 20 étagères réparties sur 4 murs, comprenant à leur tour chacune 5 rangées de 32 livres de 410 pages. L’ensemble est considérablement plus vaste que les bibliothèques physiques usuelles mais reste microscopique au regard de la bibliothèque universelle envisagée par Lasswitz. Et surtout, il est toujours impossible de s’y retrouver. Les explorations occasionnelles de débouchent que sur du charabia. Quelque part se trouve, peut-être, une traduction de Shakespeare en étrusque, les traités perdus d’Épicure ou le catalogue de la bibliothèque : à moins de disposer d’un temps infini nous n’en sauront jamais rien.

Des nouvelles méthodes de génération de texte permettent d’envisager une bibliothèque universelle plus lisible et structurée — tout en gardant une vocation « universelle ». Les techniques couramment utilisées depuis les années 1950 ont longtemps présenté l’inconvénient d’être trop limitatives et directives : les créations sont des combinaisons de règles pré-définies qui ne requièrent d’ailleurs pas forcément une machine informatique1. L’auteur est un programmeur au sens strict : s’il n’écrit pas directement le texte il détermine complètement ses conditions de possibilité et l’horizon des textes possibles.

Depuis quelques années, ces approches sont concurrencées par de nouveaux modèles « neuronaux » et inductifs : au lieu d’être pré-déterminée par une série de règles transparentes, la génération de texte est mise en œuvre par des réseaux de neurones capables de reconstituer des abstractions complexes comme la forme d’un visage, le contour d’une fleur ou… le style d’un écrivain.

Une nouvelle machine à créer : GPT-2

En février 2019, un nouvel outil GPT-2 parvient à créer des nouvelles journalistiques crédibles en série suscitant au passage de nombreuses inquiétudes : serait-il bientôt possible d’inonder les réseaux sociaux de millions de Fake News ? Un an plus tard, ces angoisses sont plutôt retombées. La principale réalisation concrète de GPT-2 est à ce jour un show humoristique suivi en direct par plusieurs dizaines de milliers de personnes : les robots de Reddit qui miment de manière troublante les codes des forums en ligne avec des résultats souvent cocasses. Les dérives, bien concrètes, de ces nouveaux outils sont d’une autre nature : leur coût énergétique et écologique. Le successeur de GPT-2, GPT-3, officialisé il y a quelque jours a nécessité une infrastructure monstrueuse : des milliers de processeurs GPU mobilisés jour et nuit pour une facture totale de 12 millions de dollars.

GPT-2 repose sur un paradigme radicalement distinct des algorithmes de génération de texte couramment utilisé depuis les années 1950. Au lieu de dépendre d’une série de règles transparentes le modèle est « entraîné » sur un corpus préexistant et s’imprègne de son style et de ses routines.

Ce basculement de l’utilisation de technologies déductives (explicitement programmées) à des technologies inductives (non explicitement programmées, et qui infèrent elles-mêmes les règles nécessaires à partir du jeu de données utilisées pour l’entraînement) est lourd de conséquences sur la production de textes générés par informatique. D’un point de vue littéraire, le texte procède alors avant tout de façon rigide d’une matière artistique, soit de l’ensemble de données utilisées (que l’on qualifiera d’hypotextes, afin de faciliter la lecture)2

L’auteur du modèle détermine en quelque sorte la « couleur » ou le « parfum » du modèle mais ne peut pas prévoir le résultat final — avec des conséquences éthiques bien concrètes puisque rien n’empêche le robot de proférer des attaques racistes ou sexistes. La création d’un écrivain-robot devient principalement de la curation de corpus augmentée de quelques méta-paramètres déterminant, par exemple, l’originalité du texte (sa « température »).

J’ai commencé à générer des textes « à la manière de » en réentraînant une version française de GPT-2 sur plusieurs corpus littéraires et philosophiques (un modèle français créé par William Jacques en octobre 2019 présente l’intérêt d’avoir été déjà entraîné sur un corpus de romans en français du XIXe et du XXe siècle.). J’ai été inspiré par les expériences de mon collègue Julien Schuh qui a commencé il y a quelques mois à créer un robot-balzac à partir du corpus de la Comédie Humaine.

Mes essais ont été réalisé à partir d’un carnet Google Colab en Python que vous pouvez réutiliser par ici. Originellement j’ai opté pour Colab pour une raison purement technique : disposer d’une infrastructure technique suffisamment performante pour créer des modèles de deep learning (avec un GPU). Il s’agit en réalité d’un moyen efficace de démocratiser ces outils expérimentaux. Vous pouvez à votre tour créer de nouveaux modèles à partir de corpus d’écrivains ou de genres en copiant le carnet dans votre espace Google Drive.

Les résultats sont très troublants, même si perfectibles. Pour des raisons de performance je n’ai utilisé que le modèle le plus basique qui donne un résultat nettement moins « cohérent » que les modèles avancés utilisés sur Reddit. Néanmoins, l’identité stylistique de chaque corpus est bien présente et laisse à penser que la génération de texte n’est pas simplement qu’un gadget amusant mais pourrait devenir un outil d’analyse littéraire ou linguistique.

Dans une approche typique des humanités numériques, cet article vise à présenter plusieurs concepts fondamentaux de la génération textuelle par deep learning (l’entraînement, la température, le taux d’apprentissage, les modèles hybrides) dans une perspective d’analyse propre à l’étude littéraire et à l’histoire culturelle.

Un modèle typique ressemble à ceci :

Il faut pas se laisser intimider par la forme : ce n’est qu’une liste de paramètres. Le corpus d’entraînement se trouve dans dataset. Ici en l’occurrence il s’agit d’un corpus de roman de science-fiction français des années 1950-1960. Il est possible de réutiliser un modèle préexistant (ici un modèle entraîné sur la Recherche de Proust). Enfin plusieurs variables déterminent la qualité du modèle (le nombre d’étape et le learning rate ou taux d’apprentissage).

Un recueil de poèmes possibles

J’ai effectué mes premiers tests sur les poèmes de Stéphane de Mallarmé (sur une suggestion d’Alexandre Gefen). C’était effectivement l’un des corpus qui se prête le mieux à la génération de texte littéraire. Sous réserve de lui soumettre des vers GPT-2 restitue parfaitement un semblant de rythmique et de couleur poétique :

En ce jour d’avril inattendu
Je goûte au plaisir du temps suspendu

De naître à quelque lieu de mai
Au cours de la tribu s’enroulant

Sens, son courage n’endort bientôt
La pourpre de l’œil inscrit
Qu’échappe au pli qu’une allée s’y mêle
Surgit après les épaves

Surgi le glaive inscrit
Surgi le repousset assourdi
Tous, vils et frémi
Pour la même allocution

Qui le maintient, ô l’air effarouché
Toutes dans un mouvement
Ne puisse à l’abandon surpriant
S’ensurre de la désuétude

GPT-2 est plus troublant sur des textes profonds et complexes, dans la mesure où ceux-ci requièrent un effort d’interprétation de la part lecteur. Les absurdités de la génération textuelles sont alors interprétées comme autant indices à déchiffrer d’un sens profond qui nous échappe. Les mots occasionnellement inventés par le modèle (qui génère le texte au niveau du caractère) sont tacitement admis comme des termes rares voire des inventions poétiques.

Cette tolérance permet de générer des textes plus inventifs et originaux. Les modèles de génération de texte par apprentissage profond incluent en effet un paramètre d’originalité, la « température ». Plus la température est élevée et plus le modèle sera audacieux ; plus elle est « froide » et plus les résultats seront routiniers. Un poème de Mallarmé « chaud » sera ainsi assez éloigné du français parlé. En témoigne cette fascinante « Métaphore 13 » (le titre est aussi du modèle) qui pourrait tout aussi bien être un happening d’avant-garde ou un brouillon inachevé :

Métaphore 13

Omis vain ! voici un soupir—unique souci de pluie brûlaison
Ne remet à rien l’offus
Me glaive du pied
S’exagère en doute
Lys unsuccessfully étrangers(((ici avec une température de 1,2 ; la plupart des essais de génération de texte se font généralement sur une température allant de 0.7 à 1 ; je regrette d’ailleurs que les concepteurs des modèles n’aient pas poussé l’analogie jusqu’à utiliser une échelle de température similaire aux degrés Celsius))

Évidemment, la production du modèle peut se décliner à grande échelle mais tout de même pas à l’infini : avec les moyens dont nous disposons, notre double robotique de Mallarmé a besoin d’une dizaine de secondes pour concevoir son poème. Il est possible de compiler un recueil complet de plus d’une centaine de pièces en quelques minutes (vous pouvez le consulter par ici).

Évidemment il n’est pas question de créer une bibliothèque universelle complète dans ces conditions, mais une petite bibliothèque portative des poèmes imaginaires de Stéphane Mallarmé est entièrement à portée et il serait au moins possible de s’y retrouver avec des œuvres numérotées, dotées de titre et subdivisés en sections ou en volumes plus ou moins inventifs (selon le degré de température adopté).

Vers une littérature uchronique

Dans l’exemple précédent, nous avons fourni au modèle un texte de départ qui n’a pas beaucoup d’importance : les deux vers visent juste à instiller la forme « poème » et à suggérer que tous les textes à venir devraient être des vers à leur tour. Il est cependant possible de faire un usage plus inventif de cette suggestion préalable et provoquer la composition de création hybrides et laisser le modèle élaborer à partir d’une idée initiale. En pratique ce processus fonctionne bien mieux sur les modèles plus avancés développés par GPT-2. Les robots de Reddit parviennent ainsi à créer des posts relativement cohérent à partir d’un simple titre en faisant régulièrement référence à des éléments narratifs clé. Avec nos moyens plus limités et en l’absence d’un modèle parfaitement adapté à la langue française, nous n’aurons pas de telles ambitions. Nos essais de créations hybrides naissent plutôt du « choc » de la rencontre entre un texte manuel, qui ne se conforme pas nécessairement au style d’origine de l’auteur, et un texte automatique.

Après Mallarmé nous avons entraîné un nouveau modèle sur la Recherche de Marcel Proust. Avec le passage du vers à la prose, le texte généré passe plus difficilement inaperçu. Il y a dans le contrat de lecture de la narration romanesque une attente de cohérence qui n’est plus forcément respecté.

Les suggestions préalables permettent de créer des passages « uchroniques » en faisant allusion à des événements dont l’auteur ne pouvait avoir connaissance. C’est ainsi que nous avons pu créer un extrait du « journal de confinement » de Proust :

Fiévreux et confiné je voyais l’épidémie de coronavirus gagner la vie précieuse de cet événement et de celle dont la mer semblait toujours nue.

La frivolité de l’homme de douze ans, bien qu’on soit, l’édification des choses, du corps de soi, de l’aiguillon, la mémoire de la mienne, l’amour, la tendresse, la rêverie, la souffrance, s’est souvent accrochées à un mensonge. Quand je voulus dire que je n’étais pas même un mensonge, il m’arrivait, bien vu, qu’on me faisait dire de l’édifier, de l’éprouver, de l’inviter, de me faire le désir.

D’autres exemples élaboraient plus explicitement sur la notion d’épidémie mais n’étaient pas aussi joliment tournés. La valeur du texte généré est toujours une affaire d’interprétation : nous pourrions imaginer un Proust de 12 ans confiné aux abords d’une mer inhabitée questionnant la réalité du monde qu’il a vécu jusqu’à présent. Ce texte a au moins le mérite de l’originalité : il sonne comme du Proust sans être une simple compilation d’extraits.

L’utilisation du paramètre d’originalité, la « température » rend également possible la génération de textes uchroniques non seulement par leur sujet mais aussi par le langage adopté. Une température élevée rend en effet plus probable l’apparition de néologismes inexpliqués. Nous pouvons ainsi créer un Proust de science-fiction faisant allusion à des objets et des espaces inconnus au détriment de la lisibilité :

Je vivais depuis plusieurs années sur la planète Mars et je me demandais à voir les vals; je me donnais la carte d’argent pour vouloir porter sur moi un poisson de voyage. Aussi je n’en gardai plus ce morceau. De mon état de méfération faisait une saine. Sa maison, au milieu de cela, était un des plus simples éléments d’un grand plaisir mais, le pire des milliers, je montai en voiture et m’habillais avant le dîner; la ville, où la promenade des gambins sur l’intérieur est assez nouveau, me semblait que ma maison était là

Un recueil de vies imaginaires

La génération textuelle ne permet pas seulement de créer des œuvres littéraires. Elle peut produire plus largement des « réalités » alternatives en mimant le registre factuel de productions scientifiques, historiques ou encyclopédiques.

Nous avons ainsi entrepris de générer des vies imaginaires de philosophe antique à partir de la traduction française des biographies collectées par Diogène Laërce au 3e siècle ap. J-C. Ce texte est assez formulaïque : la plupart des vies se découpent en sections récurrentes et attendues (origine de la personne, formation, doxographie, anecdotest, liste des œuvres, liste des homonymes et épigraphes dédiées par Diogène à la personne) et ont été compilées à partir d’un grand nombre de sources. GPT-2 est capable de reconnaître ces standards textuels sous-jacent et de les exploiter pour produire des textes plus structurés et cohérents :

HERCYLLUS.

Hercyllus, fils d’Héphaïstos, de Crotone, selon ce que dit Philodème dans le troisième livre de son ouvrage Sur la royauté ; ce fut un homme très mauvais, apte sur la terrain, peintre à géométrie ou ambassadeur, selon ce que dit Hermippe dans sa Vie de Pythagore. Il y établit cependant l’ordre d’une école en l’honneur de Xanthos d’Edition, auquel Ariston le mathématicien apporta un géométralogie vers la Montée d’Athènes. Elle s’appuie surtout sur un certain Philippe de Mégare que d’autres disciples de Démocrite s’approchaient, selon ce que dit Apollodore dans sa Chronique.

Il y eut aussi trois disciples, d’Alexandre d’Abdère, de Polyzène, d’Assos, un disciple de Démocrite, évoqué par Denys, de Crotone ; de Thèbes et de Gadara, de Milet, d’Alexandre à Philodème et de Cléanthe, évo

À défaut d’être réelle, la vie imaginaire semble solidement référencée, même si les sources sont à leur tour en grande partie imaginaire : s’il y a bien une Chronique d’Apollodore, Philodème (de Gadara ?) n’a pas plus composé un Sur la Royauté qu’Hermippe n’aurait écrit une Vie de Pythagore.

Vers des croisements hybrides

S’il permet d’avoir systématiquement des pastiches, l’entraînement du modèle sur des corpus précis et délimité est cependant aussi limitatif : il n’est pas possible de s’éloigner du registre du texte originel. Un modèle Proust ne produira jamais véritablement de la science-fiction. Les notions de voyage interplanétaire lui sont totalement étrangères et malgré des tests répétés il ne s’approprie jamais les notions de « planètes » ou de « fusée ».

Heureusement, l’apprentissage automatisé n’est pas limité à des styles uniformes : un modèle entraîné sur un certain style peut être ultérieurement sur un autre style et produire produire par ce biais des hybrides plus ou moins monstrueux. Nous avons ainsi remobilisé notre modèle Proust sur un nouveau corpus : des extraits aléatoires d’un grand corpus de 1700 romans de science fiction francophones publiés entre 1950 et 2000 (pour l’essentiel dans la collection Fleuve Noir Anticipation).

Afin de mettre en œuvre une telle hybridation nous avons fait varié un autre paramètre : le « taux d’apprentissage » (learning rate). Avec un taux d’apprentissage élevé le modèle va s’adapter autant que possible au nouveau corpus. Inversement, avec un taux d’apprentissage faible, le modèle devient conservateur : il garde en mémoire le style déjà acquis et ne le modifie qu’à la marge. Concrètement, notre modèle va rester fondamentalement Proustien tout en s’initiant aux motifs littéraires caractéristique de la science fiction française du second XXe siècle — un peu à la manière d’un écrivain classique qui se prêterait le temps d’une parution aux formalismes des écritures de genre.

Notre Proust de SF s’aventure ainsi d’une planète à l’autre depuis la porte de sa chambre :

Longtemps, sur la planète Mars, je me suis couché de bonne heure. À une certaine place, sur mon château, j’étais loin de l’autre planète. Et enfin, dans la nuit, la dixième planète, il fallait passer l’endroit de la planète Mars.
Soudain, une voix plus lue, encore plus haute, m’arrêta.
Le jeune homme n’avait pas évité la vieille dame.
Il devina qu’elle avait mis la planète à la porte de ma chambre.
Il avait passé la planète à l’endroit de la planète Mars.

Le réapprentissage n’est pas seulement une affaire de vocabulaire. Le style de la Recherche laisse place à des phrases plus courtes et plus hachées, tout en préservant un registre de langue assez élevé. Sans surprise les modèles hybrides font moins illusion que les modèles classiques : la collision des styles nuit à la lisibilité et laisse plutôt une impression de poème en prose ou de stream of consciousness.

De nouveau, le sens et la valeur du texte généré viennent des interprétations et des essais de rationalisation qu’ils parviennent à susciter. Dans un autre exemple bien méta, une machine « enflammée » génère un roman entier et attise visiblement la crainte des habitants du lieu :

En un rien de temps, le robot rédigea un long roman qui longeait les yeux de l’impressionniste – une image de la machine enflammée, qui donnait un élan dans ses yeux – et, une fois que l’homme vînt à la place, il se laissa retomber à leur tour le plus précieux : un épais coup de pied en éventuelle. Il s’arrêta.
Ces yeux étaient les nombreux phénomènes des machines, dépouillés de l’inspiration ou de la lumière, qui, comme des chasseurs, éclairaient les yeux. Ils se roulèrent de lui-même dans la voiture. Il avait dans une pièce de la salle. Ses habitants avaient quitté la salle et devinaient la machine.

Il serait tentant de réécrire ces textes pour les intégrer dans une narration plus logique et linéaire. La génération automatique de GPT-2 se prête paradoxalement davantage à la poésie pure qu’à la narration structurée — un peu comme si la machine avait, contre toute attente, plus de cœur que de raison.

Pour l’heure je vois mal un modèle générer un roman crédible dans un futur proche. Si certains textes arrivent à exprimer des idées à peu près cohérentes sur quelques paragraphes, la longue durée d’une fiction de 100 à 200 pages semble hors de portée. Un nouveau usage plus réaliste mais, peu anticipé, pourrait se développer dans les années à venir : le détournement des modèles comme « machines à inspiration » capable de produire des concepts, des expressions et des effets de sens inattendus et intrigants.

  1. Sur cette première vague de création générée, voir l’excellente synthèse de Funkouser parue en 2007 Prehistoric Digital Poetry: An Archaeology of Forms, 1959–1995 []
  2. Tom Lebrun, Pour une typologies des œuvres littéraires générées par intelligence artificielle []