Après la tokenisation, chaque token n'est qu'un nombre - un indice dans un vocabulaire. Mais l'indice 4 821 ne dit rien au modèle sur le sens. Comment l'IA sait-elle que « roi » et « reine » sont liés, ou que « banque » peut désigner une rive ou un établissement financier ? La réponse réside dans les embeddings.
L'approche naïve représente chaque mot comme un vecteur avec un seul 1 et des milliers de 0. « Chat » pourrait être [0, 0, 1, 0, ..., 0] et « chien » [0, 0, 0, 1, ..., 0].
Cela présente deux défauts majeurs :
Un embedding associe chaque token à un vecteur dense de, disons, 256 ou 768 dimensions. Contrairement aux vecteurs one-hot, ces dimensions sont apprises pendant l'entraînement et encodent le sens.
Les mots utilisés dans des contextes similaires se retrouvent proches dans cet espace. « Chiot » se retrouve près de « chaton ». « Londres » se retrouve près de « Paris ». La géométrie de l'espace est le sens.
L'article Word2Vec de 2013 a montré quelque chose de remarquable. Entraînés sur de grands corpus de texte, les vecteurs appris présentent des relations arithmétiques :
vecteur("roi") − vecteur("homme") + vecteur("femme") ≈ vecteur("reine")
Sign in to join the discussion
La direction allant de « homme » à « femme » capture le concept de genre. En l'ajoutant à « roi », on arrive à « reine ». Ce n'est pas programmé - cela émerge des motifs du langage.
Autres exemples : Paris − France + Italie ≈ Rome, plus grand − grand + petit ≈ plus petit.
Word2Vec a été créé par Tomáš Mikolov chez Google en 2013. L'article compte plus de 40 000 citations et est considéré comme l'un des articles de NLP les plus influents jamais publiés. Il a démontré que de simples réseaux de neurones entraînés sur du texte brut pouvaient apprendre des relations sémantiques stupéfiantes.
Les modèles modernes utilisent différentes tailles d'embeddings :
| Modèle | Dimensions des embeddings | |--------|--------------------------| | Word2Vec | 100–300 | | BERT | 768 | | GPT-3 | 12 288 | | OpenAI text-embedding-3-large | 3 072 |
Plus de dimensions capturent des distinctions plus fines mais nécessitent plus de mémoire et de calcul. Pensez-y comme décrire une personne : 3 dimensions (taille, poids, âge) donnent une esquisse grossière ; 768 dimensions peignent un portrait détaillé.
Que démontre la célèbre équation 'roi − homme + femme ≈ reine' ?
Les embeddings de mots représentent des mots individuels, mais nous avons souvent besoin de comparer des phrases ou des documents entiers. Les embeddings de phrases (issus de modèles comme Sentence-BERT ou l'API d'embeddings d'OpenAI) compriment un passage entier en un seul vecteur.
« Comment réinitialiser mon mot de passe ? » et « J'ai oublié mes identifiants de connexion » auraient des embeddings de phrases très similaires, même s'ils ne partagent presque aucun mot. L'embedding capture l'intention, pas seulement le vocabulaire.
Pour comparer deux embeddings, on utilise la similarité cosinus - le cosinus de l'angle entre deux vecteurs. Elle varie de −1 (opposés) à +1 (même direction).
La similarité cosinus ignore la magnitude des vecteurs, se concentrant uniquement sur la direction - là où réside le sens.
« Amour » et « haine » sont des antonymes mais pourraient avoir une similarité cosinus modérée parce qu'ils apparaissent dans des contextes similaires (émotions, relations). Qu'est-ce que cela nous dit sur les limites des embeddings entraînés uniquement sur la cooccurrence des mots ?
Une base de données vectorielle stocke des millions d'embeddings et récupère les plus similaires à une vitesse fulgurante. Au lieu de la correspondance par mots-clés (« trouver les documents contenant 'apprentissage automatique' »), on effectue une recherche par sens (« trouver les documents sur l'éducation en IA »).
Les bases de données vectorielles populaires incluent :
Ces bases de données utilisent des algorithmes comme HNSW (Hierarchical Navigable Small World) pour rechercher parmi des milliards de vecteurs en quelques millisecondes.
Quel avantage la recherche vectorielle a-t-elle par rapport à la recherche traditionnelle par mots-clés ?
RAG est l'un des patterns les plus importants de l'IA moderne. Il combine la recherche vectorielle avec les modèles de langage :
RAG permet aux modèles de langage de répondre à des questions sur vos données spécifiques - documents d'entreprise, catalogues de produits, articles de recherche - sans avoir à les réentraîner. Il réduit considérablement les hallucinations car le modèle dispose de vraies sources à référencer.
Dans un système RAG, quel rôle joue la base de données vectorielle ?
Les embeddings alimentent d'innombrables systèmes du monde réel :
Spotify utilise des embeddings audio pour recommander des chansons. Chaque morceau est encodé en embedding en fonction de ses caractéristiques acoustiques, et les recommandations proviennent de la recherche de vecteurs proches - des chansons qui « sonnent de manière similaire » dans l'espace des embeddings.
Si vous convertissiez chaque produit d'une boutique en ligne en embedding, comment pourriez-vous construire un système de recommandation qui dit « les clients qui ont consulté cet article pourraient aussi aimer… » sans vous appuyer sur l'historique des achats ?