Soif d'expertise ?

Abonnez-vous à notre newsletter Tea O'Clock !

Je m'abonne

De 0 à ChatGPT - Partie 1

Romain Warlop
Publié le
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 jeton d'entrée, et une partie qui donne une probabilité à ce que ce vecteur représente chaque jeton 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 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] Représentations distribuées de mots et de phrases et leur compositionnalité; [2] Les LSTM peuvent résoudre des problèmes difficiles de décalage temporel.

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

Tous les articles

Articles similaires

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

6 minutes
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 minutes
Arnaud Parent

De 0 à ChatGPT - Partie 2

6 minutes
Romain Warlop

Soif d'expertise ? Abonnez-vous à notre newsletter.

Découvrez les dernières actualités, articles, replays de webinars et événements fifty-five dans notre newsletter mensuelle Tea O’Clock.

Prénom*
Nom de famille*
Entreprise*
Langue préférée*
Email*
Merci !

Votre demande d'abonnement a bien été prise en compte.
Oups ! Un problème est survenu lors de la soumission du formulaire.