Thirsty for more expert insights?

Subscribe to our Tea O'Clock newsletter!

Subscribe

De 0 à ChatGPT - Partie 1

Romain Warlop
Published on
3/7/2023
Commençons par le commencement : le machine learning. Une de ses branches principales consiste à chercher un modèle qui, à partir d’informations en entrée, génère un contenu en sortie : on parle alors d’apprentissage supervisé. On peut par exemple demander de labelliser une image pour savoir si elle contient un chien ou une voiture, demander d’estimer le chiffre d’affaires d’un magasin à partir d’anciens résultats, de la taille du magasin, de l’évolution de la concurrence… Le principe est quasiment toujours le même : pour générer un label, on suppose qu’il existe une relation, pour le moment inconnue, entre ce label et les informations d’entrée. Cette relation va être définie par une fonction mathématique dont il faut estimer le nombre de paramètres. Pour ce faire, on se base sur les données déjà labellisées en notre possession et cherche la relation mathématique qui permet de rejouer ces données de la manière la plus précise possible. Chaque type de problématique (image, texte, recommandation de produit, marketing modeling, …) ayant son propre mode de fonctionnement, concentrons-nous sur les problématiques liées au texte. Dans cette série de 4 articles, nous détaillerons chaque étape clef de l’évolution des algorithmes de machine learning qui ont mené à chatGPT.

1 - Donner un sens mathématique à un mot grâce à l'embedding

Dans les cas d’usage “classiques”, on traite d'informations chiffrées en entrée (un chiffre d'affaires, une taille de magasin, un nombre d’employés, un montant dépensé). Ces chiffres peuvent être ordonnés (4 est plus grand que 2), et positionnés sur une échelle (4 est 2 fois plus grand que 2). Pour les mots, cela devient plus complexe. Le mot “chien” n’est pas plus grand que le mot “chat” et “chien” ne vaut pas 2 fois “chat”. Ces mots sont simplement des symboles arbitraires. Or, pour être capable de générer un label, toutes les relations mathématiques doivent permettre de comparer les informations entre elles pour ensuite définir des notions de proximité.

Première solution : les transformer en vecteur binaire. Supposons qu’il y ait 100 mots dans la langue française. On attribue un chiffre arbitraire à chaque mot, par exemple “chien” sera le mot 27. Ensuite, chaque mot sera représenté par un vecteur (un tableau d’une seule ligne) qui ne contient que des 0 sauf dans la case qui correspond à son chiffre. Dans notre cas, le mot chien aura donc un 1 en 27ème position et 0 partout ailleurs. On appelle cette représentation un token.

Le résultat obtenu peut être manipulé par un modèle mathématique. En revanche, cette définition apporte très peu d’information au modèle, car tous les mots sont exactement à la même distance les uns des autres. “Chien” est tout aussi différent de “chat” que de “voiture”.

Plusieurs évolutions ont eu lieu dans le monde de la recherche, mais la plus performante est celle de l’embedding. La méthode consiste à chercher un vecteur, de taille plus petite que l’ensemble du vocabulaire (dans notre cas 100) qui représente correctement la distance qui sépare les mots entre eux. Pour apprendre ce vecteur, on cherche une relation mathématique entre les tokens précédents et un label. En 2013, des chercheurs de Google ([1]) développent un Algorithme qui cherche cette relation en prenant un morceau de phrase à laquelle ils retirent un mot au hasard. Le mot (son token) enlevé sera l’information d’entrée du modèle et les labels seront les tokens restants. Effectivement, prédire les 2 mots qui précèdent et succèdent à un autre peut paraître une tâche très compliquée, mais pour l’instant, on recherche surtout une bonne manière de représenter un mot.

Ce modèle fonctionne en 2 parties : une partie qui génère un vecteur de petite taille à partir du token d’entrée, et une partie qui donne une probabilité à ce que ce vecteur représente chaque token du dictionnaire.

Pour visualiser le résultat, on peut appliquer l’algorithme en dimension 2 (voir figure ci-dessous), bien qu’en pratique il est préférable de travailler en dimension bien plus élevée (autour de 500) pour améliorer la qualité de la représentation. Les dimensions n’ayant pas vraiment de sens humain, le travail de l’algorithme est de rapprocher les mots qui sont employés dans des contextes similaires.

Les mots représentant des pays sont proches les uns des autres, et loin des capitales qui sont proches entre elles. On remarque également une certaine cohérence géographique entre les mots.

La manière de calculer les embeddings à beaucoup évolué mais l’idée reste la même : les tokens doivent être transformés en vecteurs plus petits puis donnés à une tâche précise de Machine learning.

2 - Générer du texte

La génération de texte a connu une avancée significative avec l’arrivée des réseaux de neurones récurrents (RNN pour Recurrent Neural Network). Ces derniers rappellent un jeu auquel vous avez sûrement déjà participé : une personne choisit un mot, puis son voisin doit le redire en ajoutant un second mot, et le joueur suivant répète ces deux mots avant d’y ajouter un troisième, et ainsi de suite jusqu’à ce que la phrase se termine. L’idée des RNN est similaire avec la modification suivante : au lieu d’entendre la phrase complète avant de jouer, chaque joueur n’entend que son résumé donné par la personne précédente. À partir de celui-ci, il ajoute un mot, crée un nouveau résumé puis le transmet à son voisin.

Chaque mot passe par une couche de calcul pour être transformé en embedding puis est agrégé dans une seconde couche avec le résumé du joueur précédent. La tâche de supervision est de générer le prochain mot correctement.

Ces méthodes ont permis d’améliorer l’état de l’art mais peinent à générer un résumé suffisamment précis pour une longue histoire. Plusieurs modifications y ont été apportées, notamment l’arrivée des LSTM ([2] Long Short Term Memory), qui (comme leur nom l’indique) ont pour but d’avoir une mémoire sur le long terme… Mais toujours pas assez long pour travailler sur des documents entiers.

À retenir : dans un RNN, un résumé est mis à jour mot après mot. Ce résumé permet de générer le prochain mot.

[1] Distributed Representations of Words and Phrases and their Compositionality  ; [2] LSTM can solve hard long time lag problems

A bientôt pour la deuxième partie de cet article !

All articles

Related articles

L’internalisation des solutions de mesure et optimisation de l’efficacité marketing : 5 facteurs clés de succès – Partie 5

6 mins
Arnaud Parent

L’internalisation des solutions de mesure et d’optimisation de l’efficacité marketing : une opportunité pour en tirer la quintessence opérationnelle ?

10 mins
Arnaud Parent

De 0 à ChatGPT – Partie 2

6 mins
Romain Warlop

Thirsty for more expert insights? Subscribe to our monthly newsletter.

Discover all the latest news, articles, webinar replays and fifty-five events in our monthly newsletter, Tea O'Clock.

First name*
Last name*
Company*
Preferred language*
Email*
Merci !

Votre demande d'abonnement a bien été prise en compte.
Oops! Something went wrong while submitting the form.