Tout commence par une question simple : comment une machine peut-elle comprendre un texte ? Lorsque vous entraînez un modèle à distinguer le spam des messages normaux ou à déterminer la tonalité des avis, quelque chose d’intéressant se passe en coulisses. Le modèle doit d’une manière ou d’une autre transformer les lettres et les mots en nombres, car les réseaux neuronaux ne fonctionnent qu’avec des chiffres.



La première approche naïve consiste à numéroter simplement chaque mot unique. Good = 6, bad = 26, awesome = 27. Cela semble logique, mais voici le problème : les nombres 26 et 27 sont proches l’un de l’autre, donc le modèle pensera que bad et awesome sont similaires. En réalité, awesome et good sont sémantiquement plus proches. Voilà le piège.

On a essayé le One Hot Encoding — à chaque mot, on attribue un vecteur de la taille du vocabulaire, où une seule unité indique le mot voulu, le reste étant zéro. Le problème de la hiérarchisation disparaît, mais un nouveau apparaît : si le vocabulaire compte 20 000 mots, chaque vecteur sera de 20 000 dimensions. Cela consomme énormément de mémoire, et la sémantique des mots n’est pas captée par le modèle.

Ensuite, sont venus Bag of Words et N-grammes — on compte combien de fois un mot apparaît dans le texte. Cela ajoute du contexte, mais encore une fois — de grands vecteurs creux, et le modèle ne comprend pas les relations profondes entre les mots. Si dans la phrase "The librarian loves books" les mots librarian et book ne sont pas côte à côte, les N-grammes ne saisiront pas leur lien.

C’est ici qu’intervient la bonne codification via embedding. L’idée est que des mots similaires doivent se trouver proches dans l’espace vectoriel. Imaginez une surface en deux dimensions : sur un axe, la taille de l’animal, sur l’autre, le danger. Tigre et lion seront proches (grands et dangereux), tandis que le hamster sera séparé (petit et inoffensif). C’est ça, l’embedding — un vecteur dense qui capture le sens du mot dans un espace n-dimensionnel.

Le plus cool : avec ces vecteurs, on peut faire des opérations mathématiques. Prenez le vecteur de "fils", soustrayez celui de "homme" et ajoutez celui de "femme" — vous obtiendrez un vecteur proche de "fille". Ou encore : Madrid + Allemagne - Espagne = Berlin. Ça marche parce que le modèle capte les relations entre concepts.

Comment ces embeddings sont-ils entraînés ? Google a proposé Word2Vec avec deux approches. Dans CBOW, vous prenez le contexte (les mots autour) et prédisez le mot central. Skip-Gram fait l’inverse — à partir du mot central, vous prédisez ses voisins. Ces deux techniques fonctionnent bien pour entraîner des word embeddings.

Dans les modèles modernes comme GPT ou BERT, c’est un peu différent. La couche d’embedding n’est pas prise prête, mais entraînée avec le reste du modèle. D’abord, le texte est découpé en tokens, puis un simple réseau neuronal crée un embedding pour chaque token. Les poids de cette couche sont des paramètres entraînables qui apprennent à représenter les mots dans l’espace voulu. Ensuite, ces embeddings passent par des blocs de décodeurs et atteignent la couche de sortie, qui donne des probabilités pour le token suivant.

Un petit détail : le codage positionnel. Le transformeur traite tous les tokens en parallèle, contrairement aux RNN. Il faut donc indiquer au modèle dans quel ordre se trouvent les mots. On prend un vecteur positionnel et on l’ajoute au vecteur d’embedding. Résultat : une combinaison du sens du mot + l’information sur sa position dans le texte.

Après le codage positionnel, l’embedding entre dans le mécanisme d’attention — c’est déjà le cœur de tous les grands modèles de langage. L’embedding capte la sémantique des mots individuels, mais c’est l’attention qui comprend le contexte. C’est pourquoi le mot "clé" dans différents contextes aura des représentations contextuelles différentes.

Ainsi, en combinant des idées simples — tokenisation, comptage de mots, codage correct via embedding — on arrive peu à peu aux transformeurs et à ChatGPT. Les embeddings sont partout aujourd’hui : dans les systèmes de recommandation, la recherche d’images similaires, et dans la base de tous les grands modèles de langage modernes. Si vous voulez vraiment comprendre le NLP, il faut maîtriser CBOW, Skip-Gram et toute cette architecture. C’est la base à partir de laquelle tout commence.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
Ajouter un commentaire
Ajouter un commentaire
Aucun commentaire
  • Épingler