C'est de gauche ou de droite ?

Partie 1 : l'histoire derrière le site "C'est de gauche ou de droite ?"

Le 10 Novembre 2022

Il y a un peu plus d'un mois, je partageais ma dernière création sur Twitter : degaucheoudedroite.delemazure.fr. L'idée est simple : vous rentrez un mot, un nom ou une phrase, et une intelligence artificielle va vous dire si c'est de gauche ou de droite. Je trouvais ça un peu débile, alors je n'en avais pas parlé à grand monde, juste à quelques amis qui l'ont testé avec moi. Et pourtant, le site a tout de suite eu beaucoup de succès et le nombre de visites a rapidement explosé. En une semaine, il y avait déjà 2 millions de recherches faites sur le site. Aujourd'hui, le compteur est à 5 millions de recherches et l'application officielle est disponible sur le play store d'Android.

Maintenant que ça s'est calmé, je vais revenir sur l'histoire derrière ce site, et surtout sur le fonctionnement de la fameuse intelligence artificielle qui décide pour vous si les choses sont de gauche ou de droite. Je vous montre même comment vous pouvez reproduire cette intelligence artificielle dans ce notebook Python. Je précise tout de même que ce site est à prendre au second degré et n'est pas vraiment là pour trancher le débat sur la gauche et la droite. Cet article est la première partie du récit de ce site, la seconde partie, axée sur l'analyse des statistiques du site, se trouve ici.

Le jeu du clivage

Les notions de gauche et de droite sont au coeur de l'image que les français ont de la politique. Et pour cause, ces notions ont été inventées en France, pendant la révolution de 1789, comme l'explique si bien cet épisode de l'émission Karambolage d'Arte. Et cette division gauche-droite est toujours fortement ancrée dans l'esprit des français aujourd'hui, malgré l'apparent redécoupage politique en trois grands blocs (écolo-socialistes, libéraux et identitaires) depuis plusieurs années.

Cette division est d'ailleurs l'objet central de ce qu'on appelle "Le jeu du clivage", qui consiste à débattre si telle ou telle chose est de gauche ou bien de droite. Je me souviens d'une amie qui avait toujours des arguments pour trancher si c'était de gauche ou de droite pour tout et n'importe quoi : le ski, le tennis et l'équitation c'est de droite, le vélo, les trains et les profs c'est de gauche. Jusqu'ici, c'est facile. Mais quand il s'agit de décider pour différentes marques de bières si elles sont de gauche ou de droite, ça se complique. On retrouve également ce jeu dans un épisode de l'émission Ouvrez les guillemets avec Usul et Ostpolitik, diffusée par Mediapart. Le clivage gauche-droite ne se limite clairement pas à ce jeu, et il n'est vraiment pas rare d'entendre des commentaires sur un comportement ou un discours : "ce qu'il a dit, c'est tellement de droite !".

L'intelligence artificielle

Le site "De gauche ou de droite", c'est la rencontre de ce jeu du clivage, et de l'intelligence artificielle (IA). Encore un concept que l'on ne comprend pas trop et qui nous fascine. Mais ici, de quelle "intelligence artificielle" parlons-nous ? En 2020, l'entreprise à but non lucratif OpenAI sortait la troisième version de son intelligence artificielle de text-to-text nommée GPT-3 (pour Generative Pre-trained Transformer 3). Le fonctionnement de cette intelligence artificielle est simple : on lui donne le début d'un texte, on lui donne des petites indications grâce à quelques paramètres, et l'IA se charge de compléter le texte. Dans l'exemple ci-dessous, j'utilise cette IA comme un chatbot : je pose une question, puis j'ajoute simplement "Réponse :", et l'intelligence artificielle va écrire la suite. Puis j'écris une nouvelle question, et ainsi de suite. (Vous pouvez cliquer sur l'image pour l'agrandir.)

C'est bluffant n'est-ce pas ? Et ce n'est rien comparé à tout ce que cette IA peut faire : traduction dans un très grand nombre de languages, classifications de textes, elle peut générer du code (c'est notamment ce qui est utilisé pour GitHub Copilot) ou être utilisée pour la génération d'images (c'est aussi ce qui est utilisé pour DALL-E, l'IA qui génère des images très réalistes). Comment ça marche, et surtout comment ça marche aussi bien ? Je dois avouer que je me pose souvent la même question. De telles performances sont dues aux avancées des dernières années de la recherche en intelligence artificielle, et dans le cas présent en machine learning. GPT-3 est ce qu'on appelle un réseau Transformers, qui est une des avancées les plus importantes de ces dernières années en machine learning et particulièrement le traitement automatique des langues (TAL en français, NLP en anglais). Cette technique ne date que de 2017, avec l'article scientifique "Attention is all you need" d'une équipe de Google Brain. Je n'ai pas prévu d'expliquer en détail le fonctionnement de réseaux Transformers dans cet article, mais si cela vous intéresse, je vous invite à regarder cette vidéo en anglais qui explique le fonctionnement des réseaux Transformers.

Pour entraîner ces intelligences artificielles, il faut des textes, beaucoup de textes. Ensuite, on va retirer certains mots de ces textes et l'IA va devoir s'entraîner à retrouver les mots manquants, en s'aidant du contexte (c'est à dire des mots qui n'ont pas été supprimés). Mais en quoi GPT-3 est-il différent des autres réseaux Transformers ? Il y a deux principales raisons à cela. La première, c'est que ce réseau est gros, très très gros. Vous pouvez voir ça comme une énorme fonction avec 175 milliards de paramètres (ce qui pèse environ 800 GB). La deuxième raison, c'est que cette IA est entraînée sur une quantité phénoménale de texte. Elle est notamment entrainée à compléter les pages Wikipédia, ainsi que des livres, mais surtout une grosse partie des pages internets existantes, provenant notamment de l'organisation Common Crawl. Pour résumer grossièrement : cette intelligence est entraînée à compléter les textes qu'il y a sur internet, et donc à écrire comme internet.

Ce qu'il y a de plus génial avec cette intelligence artificielle, c'est que tout le monde peut y accéder et l'utiliser. Mais elle a un prix. Chaque fois qu'on lui demande de compléter un texte, ça coûte un petit peu d'argent. Bien sûr, une seule recherche coûte moins d'un centime, mais s'il y en a des milliers, voire des millions, la note commence à être salée. Cette intelligence artificielle d'OpenAI existe en plusieurs versions, plus ou moins performantes, mais aussi plus ou moins chères.

Ma touche perso

Ok, mais alors si cette IA géniale a été créée par OpenAI, qu'est-ce que j'ai fait moi dans l'histoire ? Pour que vous compreniez, il faut savoir que j'utilise cette intelligence artificielle pour plein de petits projets amusants depuis presque deux ans, comme quand je me suis amusé à générer des citations débiles de la forme "la vie c'est comme..." ou encore des faux débats de l'assemblée nationale (je vais en parler bientôt). A force de l'utiliser, je commence à être rodé sur la manière dont il faut modeler le texte à compléter que l'on donne à l'IA, ainsi que les paramètres à choisir afin d'obtenir les meilleurs résultats possibles.

Il fallait donc que je trouve un texte à compléter afin que l'IA me dise si une phrase ou un mot donné est de gauche ou de droite. J'ai rapidement trouvé un texte à compléter qui marchait plutôt bien. Par exemple, si l'utilisateur veut savoir si "Le caviar", c'est de gauche ou de droite, le texte ressemblera à cela :

L'idée est très simple : en première ligne, j'écris la question que je pose à l'IA. Ensuite, je montre ce que j'attends de l'IA avec une vingtaine d'exemples, puis sur la dernière ligne je mets le mot de l'utilisateur (ici "Le caviar" suivi d'une flèche). Enfin, je demande à l'IA de compléter ce texte, et elle comprend qu'il faut répondre "De gauche", "De droite" ou "Les deux". Pour savoir quoi répondre, l'IA va se baser sur son pré-entraînement qui a été fait sur tout internet, les vingt exemples que je donne servent juste à faire comprendre la tâche. Cette méthode très simple marchait étonnamment très bien sur les exemples que je lui donnais.

Il a tout de même fallu que je choisisse combien j'allais mettre d'exemples, et quels exemples j'allais mettre. D'un côté, avoir plus d'exemples permet probablement d'obtenir de meilleurs résultats. De l'autre, chaque exemple que je rajoutais allait rendre chaque requête plus chère. Avec la requête ci-dessus, en utilisant le modèle performant, je peux payer 250 requêtes pour 1 euro. En réalité, il n'y a pas besoin de beaucoup d'exemples pour que ça marche très bien. La requête que j'utilise n'en contient que 20, et elle aurait probablement pu en contenir moins. Pour expliquer cela, il faut s'imaginer que mon texte à compléter ne sert qu'à faire comprendre à l'intelligence artificielle sa tâche : dire si le mot que je rentre est plutôt relié à la gauche, ou à la droite politique. Ces exemples ne sont pas suffisants en eux-mêmes pour que l'IA sache si le mot suivant sera de gauche ou de droite. Pour ça, je compte sur le pré-entraînement de l'IA qui a été fait, comme je vous l'ai expliqué, sur presque tout internet.

Le choix des exemples est tout de même important, car il permet de calibrer les réponses. Si je mets "Nicolas Sarkozy => De gauche", l'IA va sûrement me répondre n'importe quoi par la suite. De même, si je mets des exemples pas du tout parlant, comme "Une chaise => De droite", ça n'est pas très utile. Il a donc fallu choisir avec attention. Vous voyez aussi avec la liste des exemples que j'ai essayé d'être assez neutre, en mettant "Le bien", "La France", et même "Macron" à la fois de gauche et de droite (pour ce dernier, ça n'a pas marché et l'IA l'a quand même catégorisé à droite...).

Enfin, le choix des paramètres, l'ordre des exemples, et de manière générale la structure du texte à compléter sont également des détails importants, qui nécessitent un peu d'expérience à manipuler cette IA. Je vous invite à lire le tutoriel sous forme de notebook Python qui détaille les différentes étapes de l'implémentation, vous permettant de faire votre propre IA qui dit si les choses sont de gauche ou de droite.

OpenAI permet aussi d'entraîner ses propres modèles. Ça s'appelle le fine-tuning : on prend leur IA qui sait tout faire, et on la spécialise à faire une tâche très précise avec beaucoup d'exemples. C'est souvent une bonne solution, car cela évite de rappeler les exemples à chaque fois que l'on fait une nouvelle recherche : ils ont déjà été vus durant l'entraînement. J'ai donc essayé de faire un modèle spécialisé pour dire si les choses étaient de gauche ou de droite avec cette fois une centaine d'exemples. Malheureusement, cela marchait moins bien que l'autre version. Je suis donc resté sur ma première solution, avec le texte à compléter. De toute façon, je me disais qu'au pire une centaine de personnes l'utiliseraient, donc je n'avais pas besoin de faire la meilleure IA du monde.

Le lancement

Une fois que l'IA était prête et qu'elle marchait bien, j'ai partagé les résultats à mes amis adeptes du jeu gauche-droite, et ils me proposaient des mots pour tester l'IA. Et puis je me suis dit que ça serait sympa d'en faire profiter tout le monde. J'hésitais entre faire un site web et un bot Twitter, alors j'ai fait les deux. Je n'avais jamais fait de bot Twitter, alors c'était un petit challenge. Le nom du bot est @GaucheDroiteBot et il s'active quand on utilise le hashtag #CestDeGaucheOuDeDroite. Pour le site, je voulais qu'il soit extrêmement simple avec des couleurs à la fois très accrocheuses et qui permettaient de comprendre si le résultat est gauche ou droite sans même avoir à le lire. J'ai d'abord partagé le site à mes amis pour qu'ils me remontent les problèmes, et puis je l'ai partagé sur Twitter le mardi 4 Octobre, vers 18h, dans ce tweet partagé plus de 7000 fois :

L'explosion

Dès le premier soir, le site commençait à prendre. En tout cas, plus que d'habitude. Mais ce n'était rien par rapport à ce qui allait arriver le lendemain. Face à l'afflux inattendu de visiteurs, j'ai passé une soirée un peu paniqué à réfléchir à toutes les solutions possibles pour ne pas me ruiner avec les requêtes que j'envoyais à l'intelligence artificielle (je rappelle que je payais 1 euro pour 250 requêtes). La première chose que j'ai faite a été de ne pas faire une nouvelle requête pour un mot qui avait déjà été cherché sur le site. Par exemple, la recherche "Macron" a été faite 40000 fois en un mois. Rien ne sert de redemander à l'IA si c'est de gauche ou de droite à chaque fois. À la place, j'enregistre le résultat dans la base de données la première fois que c'est demandé, puis j'utilise ce résultat pour les fois suivantes.

Le lendemain, le site faisait vraiment le buzz. Des influenceurs, des journalistes ou encore des politiques partageaient les résultats qu'ils obtenaient sur le site. Face à l'afflux croissant de visite, j'ai demandé à mon ami Jean Dupin s'il connaissait des gens qui pouvaient me prêter assez pour faire tourner le site pendant quelque temps. Le site l'a beaucoup amusé, et il est extrêmement sympa alors il a accepté de financer le site, sans contrepartie. Pour diminuer les coûts qui augmentaient quand même, j'ai aussi mis en place un système où une certaine partie des requêtes etait envoyée au modèle de l'IA le plus performant et le plus cher (da vinci), et le reste à d'autres modèles, moins performants (par exemple curie). Petit à petit, voyant que les modèles moins chers marchaient presque aussi bien, j'augmentais la proportion des recherches qui étaient envoyées à ces derniers, jusqu'à atteindre 100%. De toute façon, au bout de plusieurs jours, 90% des nouvelles requêtes étaient les prénoms et les noms des utilisateurs du site qui voulaient savoir s'ils étaient de gauche ou de droite, et l'IA ne faisaient sûrement pas mieux que de l'aléatoire pour ce genre de proposition, qu'elle soit performante ou non. Au final, cela a coûté quelques centaines d'euros qui ont été remboursés par les publicités que j'ai mises quelques jours (le temps de compenser les dépenses).

Je tiens aussi à préciser que je ne vendrai pas et n'utiliserai pas à des fins commerciales les données des recherches qui ont été récoltées par le site. Par contre, j'en ai fait des analyses statistiques très intéressantes que vous pouvez retrouver dans la suite de cet article.

Erreur 503

Le deuxième gros souci qui est survenu était le fait qu'une grosse partie des requêtes n'aboutissaient pas et renvoyaient une erreur : il y avait trop de personnes connectées en même temps. C'était très frustrant pour moi, mais surtout pour les utilisateurs. J'ai passé beaucoup de temps à chercher d'où venait le problème, j'ai d'abord augmenté la capacité de mes serveurs avec mon hébergeur, mais ça ne changeait pas grand chose. Après un ou deux jours, j'ai compris que le problème venait de la base de données. Je l'avais construite pour qu'elle puisse gérer les requêtes de moi et quelques amis, pas des dizaines de milliers d'utilisateurs quotidiens. Après avoir réfléchi, j'ai restructuré toute la base de données pour qu'elle soit beaucoup plus rapide (notamment en faisant une indexation plus intelligente), et ça a marché ! Il n'y a plus eu aucun problème après ça, à part quand le site est passé sur Quotidien et que 20 000 personnes ont voulu tester le site en même temps, faut pas abuser quand même.

D'accord ou pas d'accord ?

Je ne vous ai pas encore parlé du système de feedback "d'accord" et "pas d'accord" qui est proposé aux utilisateurs. Par exemple, si un utilisateur cherche "La raclette", que l'IA répond "c'est de gauche" et qu'il n'est pas d'accord, il va cliquer sur le bouton "pas d'accord". Je me souviens avoir rajouté cette option le 5 Octobre, lendemain du tweet, alors que j'étais dans le train qui me ramenait à Paris, avec une connexion internet miteuse. Au début, ces retours étaient juste là à titre informatif, puis j'ai décidé de les prendre en compte pour améliorer les réponses du site. Pour cette partie, il y a très peu d'intelligence artificielle, je ne me suis pas amusé à réentraîner l'IA avec les réponses des utilisateurs. Non, j'ai simplement rajouté la règle suivante : si deux tiers des utilisateurs ne sont pas d'accord avec le résultat d'une recherche donnée, alors le résultat est modifié (en supposant qu'il y a un nombre suffisant d'utilisateurs qui ont répondu pour cette recherche). Ainsi, "La bière" qui était d'abord catégorisée à droite, avait reçu largement plus de deux tiers de "pas d'accord" et est donc passé à gauche. Et ce n'est pas le seul mot à avoir changé de camp.

Les médias

Une fois que le site était bien en place, je n'avais plus grand chose à faire, à part répondre aux demandes d'interviews de journalistes. Le site a fait l'objet d'article dans la presse française, suisse, belge et même allemande, il est passé sur plein de radios et différentes chaînes télés (vous pouvez trouver une liste presque exhaustive dans la deuxième partie de l'article). C'était un exercice nouveau pour moi, parfois amusant, parfois frustrant, car il faut faire très attention à ce que l'on dit et à la façon dont on explique les choses. Une des journalistes avec qui j'ai échangé m'a suggéré de faire une version du site en application mobile, car ça évite de devoir le chercher à chaque fois. C'était une bonne idée, alors j'ai juste fait une application qui affiche la page du site web, mais au moins on la trouve plus facilement. Vu que le buzz était passé depuis longtemps, elle n'a pas été énormément téléchargée (environ 1000 fois) mais si vous avez Android, vous pouvez la télécharger en cliquant ici.

Pour finir...

Je crois que c'est tout ce que j'avais à dire sur l'histoire de ce site, et sur la façon dont il fonctionne. J'étais super content de voir l'engouement autour de ce projet qui n'était pas le plus sérieux de mes projets, mais très amusant à faire. C'est rare que des projets amusent autant les gens, alors je suis ravi que ça soit arrivé. En attendant, je vous invite à lire la suite de cet article qui s'intéresse aux statistiques du site depuis sa création : quelles sont les recherches les plus effectuées ? Que recherchent principalement les gens de gauche ? Et les gens de droite ? Quels sont les mots les plus cherchés avec "barbecue" ? Vous trouverez les réponses à ces questions et bien d'autre en cliquant ici.

@DelemazureTheo

Un grand merci à ceux qui ont vécu cette drôle d'histoire avec moi, notamment Ariane Ravier et Nicolas Fayard.