Nous avons formé GPT-2 pour écrire des lettres d’amour en français

Timothy O'Hear
5 min readFeb 17, 2020

--

J’ai utilisé le modèle résultant pour écrire à ma femme une lettre pour la Saint-Valentin. Elle a dit que la lettre était vraiment belle et qu’elle aurait été très émue si elle n’avait pas été écrite par une IA… J’ai contre-argumenté que la curation humaine du texte généré par l’IA était une expression d’amour parfaitement valable. J’ai perdu :-|.

Vous pouvez essayer cette intelligence artificielle ici : https://impactia.org/cyrano

Le résultat

Le modèle génère des résultats qui sont formatés comme des lettres d’amour avec des phrases raisonnablement structurées. La reproduction textuelle des données de formation semble très faible. Mais les phrases sont souvent absurdes et il n’y a pas beaucoup de préservation du contexte, à part quelques répétitions.

Cependant, il génère des phrases originales assez intéressantes :

“Mon âme a moins de conversations que le désir”

” C’est une joie bien trop violente pour moi “

” vous [êtes] comme l’eau d’un pur amour “

Ces phrases peuvent être choisies (à la main) en fonction du sentiment que vous essayez de communiquer et utilisées pour composer des lettres uniques influencées par les meilleurs écrivains français de l’histoire.

Notre motivation à le faire

  • Principalement parce que nous avons tous pensé que c’était une chose amusante à faire pour la Saint-Valentin, mais aussi
  • Cela célèbre le premier anniversaire de la sortie du premier modèle d’OpenAI (https://openai.com/blog/better-language-models/).
  • Il s’agit d’un outil potentiellement utile pour les personnes romantiquement diminuées
  • Nous étions très curieux de voir comment les gens allaient se sentir en recevant de telles lettres (est-ce perçu comme un acte d’amour ou un acte de plagiat?)
  • Cela soulève des questions intéressantes sur la propriété du résultat et la propriété intellectuelle, d’autant plus que certains textes ne sont pas hors droit d’auteur et qu’il y a un risque que des parties textuelles puissent être reproduites.
  • Nous voulions voir par nous-mêmes à quel point la génération de textes en français pouvait être de bonne qualité.

Détails techniques

Un petit modèle OpenAI GPT-2 (117/124M paramètres) formé sur environ 1Go de littérature classique française a été fine-tuné sur 300Ko de poésie et de chansons d’amour françaises.

Nous avons utilisé GPT-2-Simple https://github.com/minimaxir/gpt-2-simple et GPT-2-Cloud-Run https://github.com/minimaxir/gpt-2-cloud-run de Max Woolf.

Le modèle de base français (GPT2-French) a été formé par William Jacques : https://github.com/aquadzn/gpt2-french. Nous avons utilisé son modèle “romans” qui est formé en utilisant le texte de https://www.bibebook.com/download, qui ressemble à une compilation des romans français du projet Gutenberg. Son modèle est formé sur 5000 étapes.

Le fine-tuning a été fait à l’aide du notebook Colab de Max Woolf : https://colab.research.google.com/drive/1VLG8e7YSEwypxU-noRNhsv5dW4NfTGce et n’a duré que 600 étapes (moins de 30 minutes). Moins d’étapes et le contenu n’était pas génial, plus et il a commencé à reproduire le contenu de la formation mot à mot.

Ce qui a bien fonctionné

  • Après seulement 100 étapes, le modèle adopte le format de la lettre d’amour
  • Tout (GPT-2-Simple, GPT-2-Cloud-Run, GPT-2-French) a fonctionné à la perfection sans devoir passé des heures à comprendre des bogues obscurs
  • Nous avons été étonnés d’obtenir des résultats décents avec un jeu de données de 300Kb (normalement 1–10Mb est considéré comme le minimum raisonnable)

Ce qui a mal tourné

  • Il était étonnamment difficile de trouver du contenu dans ce genre de format de lettre d’amour. Beaucoup de littérature dont vous vous souvenez comme étant très romantique (par exemple “Les Liaisons Dangereuses”) n’est pas exploitable pour écrire à l’être aimé.
  • Nous avons été déçus de ne pas trouver un modèle GPT-2 plus grand, formé en français et sur un corpus plus important.
  • Il y a une grande différence de qualité entre les petites versions et les versions XL du GPT-2 en anglais, et nous visions (bien entendu) le niveau XL.
  • Cependant, plusieurs personnes soulignent que a) les modèles plus grands sont très difficiles à entraîner en raison de contraintes de mémoire et que b) les modèles plus grands sont impossibles à fine-tuner avec de petits jeux de données
  • Nous avons essayé d’utiliser le modèle XLM multilingue de Facebook formé à la modélisation causale du texte (CTM) qui, en théorie, devrait faire de bonnes prédictions, mais les résultats n’étaient vraiment pas terribles.
  • Nous avons commencé par utiliser la bibliothèque Transformer de HuggingFace, mais comme nous avons choisi GPT-2 il était beaucoup plus simple d’utiliser les projets de Max Woolf pour mettre quelque chose en production.

Des projets similaires qui nous ont influencés

Un exemple

Le texte ci-dessous a été co-créé en sélectionnant des phrases dans une vingtaine de générations. L’idée était de se mettre dans la peau d’un couple en difficultés.

Notre relation n’est pas tous les jours facile à trouver. Je ne te demande ni amour, ni fidélité, mais seulement un peu de certitude que je pourrais te satisfaire un jour.

N’ayant rien à nous dire,

N’ayant rien à partager,

N’ayant rien à sentir,

N’ayant rien à mentir,

N’ayant rien à confier,

Hélas! j’aurai passé près de toi inaperçu. Le mal est sans espoir, aussi j’ai dû le taire. L’espoir me semble trop profond, je ne sais quelle mémoire ici-bas peut être l’océan des matins heureux?

Au fond de mon cœur je n’ai jamais su t’aimer mais j’ai pu te séduire. Il n’y a rien à comprendre. Le temps passe.

Mais tu peux ouvrir la porte à demi-close, parmi toutes ces balles imbéciles. Pas besoin de phrases ni de longs discours, mais de s’enivrer.

Il y a quelque chose en moi qui t’implore et te réclame, mon cœur sur l’amour est réveillé. Je te dis que tu me plais, mais j’ai peur de ta fierté que tu n’as pas besoin de moi. Quand je te promets tous mes plaisirs, quand je te promets mes faiblesses, quand je te promets mon âme perdue. Dans le désert je n’ai rien d’autre que tu m’aimes à oublier.

Tu as cessé de sourire et tu continues à me perdre. J’ai perdu le sommeil d’une heure. Je suis prêt à toi. Tu viendras longtemps marcher dans mes rêves.

Je t’aime à mourir.

--

--