Software Engineer
7 oct. 2024·9 min

La sémantique au coeur de l’IA Générative

Article BeTomorrow - IA - Sémantique - Partie 1

Google l’a explicitement annoncé l’année dernière : son moteur de recherche sera désormais enrichi d’IA Générative. Microsoft Bing, quant à eux ne le cachent pas non plus : Copilot améliore déjà toutes vos recherches. De son côté, OpenAI n’est pas en reste : l’association a récemment décidé de publier son nouveau prototype SearchGPT. Les résultats y sont clairs, directs, et l’utilisateur peut interagir avec cette technologie comme lors d’une discussion avec ChatGPT.

Comment imaginer que ce nouveau moteur puisse rivaliser avec les deux géants déjà largement établis ? Si OpenAI semble confiant, c’est en partie grâce à son utilisation plus élaborée de la technologie sous-jacente : la recherche sémantique.

Au cœur de l’IA Générative, cette innovation prend progressivement sa place dans toutes les technologies associées au langage naturel.

Comment fonctionne-t-elle et comment peut-on l’utiliser ?

Couverture livre blanc "Projet d'innovation digitale"

RÉUSSIR VOTRE PROJET D'INNOVATION DIGITALE

  • Connaître la spécificité des projets d'innovation digitale versus ceux de transformation digitale
  • Choisir son partenaire d'innovation digitale
  • Apprendre à évaluer une équipe d'innovation digitale

La sémantique, c’est quoi ?

Il s'agit des concepts, plus ou moins abstraits, sous-jacents à une phrase ou à un mot. La sémantique permet ainsi de répondre à tout un ensemble de questions sur les mots ; construction, associations, significations… En somme, la sémantique représente toute l’information pouvant transiter à travers un mot ou un ensemble de mots. C’est la compréhension et traduction informatique de ce concept qui a rendu possible la technologie associée aux Grands Modèles de Langage (LLMs).

Comment traduit-on un mot en informatique ?

La tokenization

Une machine (et par extension une intelligence artificielle) n’est pas un humain ; elle ne comprend que les nombres. Il faut donc en premier lieu convertir le mot en un nombre, qu’elle sera ensuite capable d’interpréter. Cette étape se nomme “tokenization”. Grâce à un gigantesque dictionnaire de conversion, nous associons un “numéro” à chaque ensemble de caractères, appelé alors “token” (en français, “jeton”). Il n’y a pas que les mots qui sont concernés : les dates, caractères spéciaux, nombres, émoticônes, tout a besoin d’être “tokenisé” !

L'étape appelée "tokenization"
L'étape de la "tokenization"

Par exemple, le mot “acheté” dans ce grand dictionnaire de conversion aura la valeur “42368” et l'émoticône “😅” aura la valeur “784235”. L’objectif est de faire correspondre un “identifiant” à chaque groupe de caractères, pour faciliter l’entraînement de l’intelligence artificielle (réseau de neurones). Concrètement, cette phase sert à découper notre texte en petites entités sémantiques.

L’Embedding

Une fois notre texte converti en tokens, nous utilisons un algorithme (un réseau de neurones nommé “Embedder”) pour les transformer en vecteurs de nombres. L’Embedding (ou en français, "vectorisation sémantique"), permet donc de créer la représentation vectorielle d’un mot. Plus précisément, il s’agit de projeter le mot dans un espace latent. Pas de crainte, nous allons expliciter la notion derrière ce concept. Prenons par exemple la phrase “Vive la GenAI !” :

Transformation de tokens en vecteurs : une étape clé dans la création de représentations sémantiques grâce à l’Embedding.
Transformation de tokens en vecteurs : une étape clé dans la création de représentations sémantiques grâce à l’Embedding.

À la fin de la transformation, nous obtenons pour chaque token notre vecteur sémantique. Ce vecteur, suite de nombres, représente en réalité une position dans un espace à grandes dimensions. 

Un espace latent est un concept souvent utilisé en intelligence artificielle et en mathématiques. Il faut l’imaginer comme un espace où il est possible de positionner des points. Sa caractéristique est qu’il est construit grâce à une représentation simplifiée d’un autre espace, beaucoup plus complexe.

Pour donner une analogie, cet espace est comme une carte géographique. Une carte géographique est une représentation en deux dimensions d’un monde en trois dimensions : la représentation est simplifiée mais suffisamment riche pour nous permettre de l’utiliser de manière pertinente (et donc de naviguer).

L’espace latent, comme une carte géographique, simplifie la complexité du langage pour permettre à l'IA de naviguer entre les mots et leurs significations.
L’espace latent, comme une carte géographique, simplifie la complexité du langage pour permettre à l'IA de naviguer entre les mots et leurs significations.

L’embedding et ses dimensions

Chaque dimension (c'est-à-dire, chaque nombre de ce vecteur) représente un concept. Ces concepts sont ceux que l’algorithme aura pu lui-même construire au cours de son entraînement, grâce à une compréhension progressive des textes et relations entre les mots. Pour illustrer cela, prenons un espace relativement simple à deux dimensions. De manière arbitraire, appelons la première “âge” et la seconde “taille”. Générons les embeddings des mots “chat”, “chaton”, “lion”, “lionceau” avec ces deux dimensions, et positionnons-les sur un graphe.

Dans cet espace sémantique à deux dimensions, "âge" et "taille" révèlent les liens entre les mots : Chaton est à Chat ce que Lionceau est à Lion.
Dans cet espace sémantique à deux dimensions, "âge" et "taille" révèlent les liens entre les mots : Chaton est à Chat ce que Lionceau est à Lion.

On y remarque la relation “sémantique” qu’ils vont avoir les uns avec les autres :

  • Dimension “âge” : Chaton est à Chat ce que Lionceau est à Lion

  • Dimension “taille” : Chat est à Lion ce que Chaton est à Lionceau

Autrement dit, chaque dimension de notre vecteur va représenter un concept qui permet d’établir des relations entre vecteurs, et donc entre textes. De cette manière en découle une seconde notion capitale : la proximité entre vecteurs se traduit par une proximité sémantique entre textes. Si dans l’espace précédent nous avions ajouté “Lionne”, son embedding aurait été très proche de celui du Lion.

La proximité entre vecteurs dans l’espace sémantique révèle des liens de sens entre les mots, comme la similarité entre "lion" et "lionne"
La proximité entre vecteurs dans l’espace sémantique révèle des liens de sens entre les mots, comme la similarité entre "lion" et "lionne"

En effet, dans l’espace sémantique, deux embeddings proches sont deux embeddings dont les dimensions partagent des valeurs très similaires (logiquement). C’est précisément dans ce cas que nous allons nous servir des outils mathématiques associés aux vecteurs. Comment savoir que “lion” est proche de “lionne” ? Simplement en calculant la distance qui sépare les deux vecteurs. Plusieurs méthodes existent (distance euclidienne, similarité de cosinus, de Manhattan, …), et toutes permettent d’arriver à une même forme de résultat : un nombre qui permet de savoir à quel point les deux vecteurs sont proches (par exemple 0.001, les vecteurs sont proches, 0.895, les vecteurs sont éloignés). Si nous avions ajouté la dimension du sexe, celle-ci aurait été un nouveau facteur différenciant, affectant à son tour la fonction de distance.

Des outils mathématiques comme la distance euclidienne et la similarité de cosinus mesurent à quel point des vecteurs, comme ceux de "lion" et "lionne", sont proches.
Des outils mathématiques comme la distance euclidienne et la similarité de cosinus mesurent à quel point des vecteurs, comme ceux de "lion" et "lionne", sont proches.

C’est ce fonctionnement que nous retrouvons dans les Embedders, et leur capacité à faire transiter un ensemble de caractères dans un espace multidimensionnel, appelé “espace latent”. Ces espaces n’ont pas seulement deux ou trois dimensions, mais plusieurs milliers ! Un des plus couramment utilisés aujourd’hui, text-embedding-large-3 d’OpenAI, dispose par exemple de 3072 dimensions. Ce sont autant de dimensions nécessaires pour représenter toute la complexité sémantique du langage naturel. Les Embedders sont ainsi capables de créer l’embedding d’un texte, quelle que soit sa longueur tant qu’elle rentre dans sa capacité maximale : syllabes, mots, phrases, paragraphes, etc.

text-embedding-large-3, en l'occurrence, peut prendre jusqu’à 8191 tokens en entrée (taille définie pour un ensemble de raisons techniques), de quoi abstraire beaucoup d’informations ! Naturellement, plus la quantité de tokens à faire passer dans l’espace latent augmente, plus le vecteur qui en résulte représente une information plus diffuse. Il faut donc bien jauger la taille des textes à embedder suivant la problématique…

Comment un algorithme peut-il créer un embedding ?

Embedder du texte n’est pas une problématique récente. Un des algorithmes les plus connus, Word2Vec, a vu le jour en 2013 à travers les travaux des équipes de Google. Il a évolué au cours du temps, mais n’est aujourd’hui que très peu utilisé. Il fonctionnait à l’origine sans réseaux de neurones, et s’est vu être vite distancé par de nouvelles structures (BERT, ELMo) issus d’une évolution de 2017 à nouveau portée par Google : les Transformers.

Structure des Transformers

Attention is all you need” est le nom d’un papier de recherche publié en 2017 par Google, qui présente l’architecture Transformers démontrant alors une nouvelle manière d’envisager l’embedding. Il y est proposé de ne plus prendre chaque mot de manière indépendante, mais en le considérant comme faisant partie d’un tout, ce tout étant par exemple une phrase. Le constat est simple : le contexte est un élément primordial pour comprendre le sens d’une phrase. Il faut donc relier chaque mot (token) à tous les autres mots (tokens) de la phrase pour être capable d’en comprendre véritablement le sens.

Le principe est le suivant : 

  • Le texte est découpé en tokens

  • Les tokens sont transformés en vecteurs sémantiques (embeddings)

  • Les tokens sont alors enrichis avec le contexte des tokens alentour (couche d’attention)

En prenant en compte l’ensemble des tokens d’une phrase, les Transformers permettent de modéliser une compréhension contextuelle du langage.
En prenant en compte l’ensemble des tokens d’une phrase, les Transformers permettent de modéliser une compréhension contextuelle du langage.

Le fonctionnement est le même que pour les réseaux de neurones : on construit l’abstraction grâce à une superposition de couches. Chaque couche d’attention provoque des modifications dans les vecteurs sémantiques. L’objectif est de faire se déplacer chaque embedding dans l’espace latent afin de s’assurer qu’il transporte l’information de son token couplée à celle de son contexte. 

Le mot "lit" évolue dans l’espace latent selon les relations qu’il entretient avec les autres mots de la phrase.
Le mot "lit" évolue dans l’espace latent selon les relations qu’il entretient avec les autres mots de la phrase.

Comme dans l’exemple ci-dessus, si l’on cherche à positionner le mot “lit” dans l’espace latent, celui-ci va progressivement prendre du sens en fonction des autres mots présents dans la phrase. Ce "déplacement" des embeddings à chaque couche se fait en calculant des pondérations (ou "poids") basées sur les relations entre les tokens, qui permettent au modèle de mettre en avant ou d'atténuer l'influence des autres tokens dans la phrase.

Les couches vont ainsi être chaînées (et en grandes quantités) jusqu’à obtenir une couche d’attention finale. De cette dernière, il en est déduit le vecteur sémantique qui va représenter l’ensemble des tokens. Une première manière assez classique et historique de le construire consiste simplement à réaliser une “moyenne” de ces vecteurs grâce à un algorithme nommé "Bag Of Words".

L'algorithme Bag Of Words est utilisé pour construire le vecteur sémantique à partir de la moyenne des embeddings des tokens.
L'algorithme "Bag Of Words" est utilisé pour construire le vecteur sémantique à partir de la moyenne des embeddings des tokens.

Une amélioration du résultat : le Token CLS

Cette méthode reste cependant relativement “brute”, là où l’ensemble de l’approche Transformers tente d’exploiter la puissance des réseaux de neurones pour construire la connaissance. Une autre méthode a progressivement été mise au point, et est celle principalement utilisée aujourd’hui : le Token CLS.

CLS” se traduit par “classification”, car ce token aide le modèle à classifier le sens du texte. L’idée se base justement sur  le fonctionnement même de l’entraînement d’un réseau de neurones. Il faut percevoir ce Token CLS comme un mot totalement neutre (dont l’embedding est un vecteur vide ou aléatoire) que l’on ajoute à la fin de notre texte. Faisant partie de l’ensemble, il va s’interconnecter avec tous les autres embeddings, et va profiter à chaque couche d’attention de l’information véhiculée. L’objectif est de lui permettre de s’enrichir progressivement de sens au cours des couches, jusqu’à arriver à la dernière couche. Il y aura accumulé toute l’information qui transite dans le texte. Sa valeur représente l’embedding final qui sera le résultat en sortie de notre embedder.

Grâce aux interconnexions avec les autres embeddings, le Token CLS s’enrichit progressivement d’informations à chaque couche d’attention.
Grâce aux interconnexions avec les autres embeddings, le Token CLS s’enrichit progressivement d’informations à chaque couche d’attention.

Dans les Grands Modèles de Langage (LLMs)

Un LLM est un très grand réseau de neurones. Tout comme pour tous les autres réseaux de neurones, il dispose d’une suite de couches en entrée qui ont pour vocation à convertir et enrichir l’information, puis de couches décisionnelles capables d’interpréter, et enfin d’une couche en sortie rendant la décision du réseau. L’embedder et la sémantique dont nous venons de parler correspondent à cette suite de couches en entrée qui permet au LLM de transformer l’information en un langage qu’il comprend, pour ensuite prendre une décision sur le texte à générer en réponse à l’entrée.

Ebook - IA - case study

4 FAÇONS DE METTRE EN OEUVRE L'IA POUR LES BANQUES ET ASSURANCES

  • Découvrez comment mettre en œuvre l'IA pour augmenter le pouvoir d'achat de vos clients
  • Les bénéfices de l'utilisation des LLMs open source
  • Les atouts de l'IA pour renforcer la compétitivité des banques et assurances

Conclusion

L’embedding ne se limite aujourd’hui plus au simple texte. La méthode d’entraînement de ces modèles a évolué pour dorénavant inclure les images, vidéos et audio. Nous devenons maintenant capables de faire coexister au sein d'un même espace sémantique des données dont le type initial est très hétérogène ! Cela veut dire que nous pouvons retrouver simplement des images, des vidéos, grâce aux concepts qu’elles abordent. Cela veut aussi dire que les LLMs, devenus donc multimodaux, sont capables de comprendre une grande diversité de contenus. Cette évolution élargit d’autant plus les capacités de la technologie initiale, que l’on peut désormais appliquer à des domaines toujours plus variés et hétéroclites.

Dans notre prochain article, en lien avec celui-ci, nous aurons l’occasion d'aborder plus précisément comment l’IA Générative et les embeddings peuvent être utilisés dans des applications concrètes (et même déjà implémentées pour certaines d'entre elles !).

9 min

Merci d’avoir pris le temps de lire.

RESTEZ CONNECTÉ

— NOS RESSOURCES

ARTICLE
IA Act - Europe
10 oct. 2024·12 min

Anticipez l’AI Act pour soutenir vos projets d’Intelligence Artificielle

Content marketing manager
ARTICLE
Article BeTomorrow - IA - Sémantique - Partie 1
7 oct. 2024·9 min

La sémantique au coeur de l’IA Générative

Software Engineer
ARTICLE
BeTomorrow - PWA - blogpost
9 sept. 2024·8 min

PWA : Fonctionnement et bonnes pratiques

Notre site utilise des cookies
Notre site utilise des cookies pour mesurer notre audience, suivre les performances lors de campagnes publicitaires et vous proposer la meilleure expérience possible.