00 / 06 Avant-propos
  1. ← Chercher par le sens : bases vectorielles et retrieval
  2. 00 Avant-propos
  3. 01 Embeddings et géométrie de la similarité
  4. 02 Recherche exacte et malédiction de la dimension
  5. 03 HNSW : naviguer dans un graphe de proximité
  6. 04 Le paysage des index ANN
  7. 05 Tester l'approximatif : l'oracle différentiel
Chercher par le sens : bases vectorielles et retrieval · 00 / 06

Avant-propos

Pourquoi chercher par le sens, ce que ce cours couvre, et comment le lire.

Tu tapes « voiture » dans un moteur de recherche, et un document qui ne parle que d’« automobile » te file entre les doigts. Pourtant c’est le même sens. Le moteur, lui, ne cherchait pas un sens : il cherchait une suite de caractères. Ces deux mots n’ont aucune lettre commune au bon endroit, donc pour lui ils n’ont rien à voir. Ce cours répare exactement ce défaut.

On va apprendre à chercher par le sens. Pour ça, il faudra d’abord transformer un texte en un objet géométrique, un point dans un espace, de telle sorte que deux textes au sens proche deviennent deux points proches. Cet objet porte un nom, l’embedding, et c’est la première brique de tout le reste. Le chapitre 1 le définit en détail.

Deux façons de chercher

Il existe deux grandes familles de recherche, et tout le cours vit dans leur tension.

La première est la recherche lexicale : on compare les mots, les caractères. C’est rapide, c’est exact, et c’est imbattable pour retrouver un identifiant précis ou un mot rare. Mais elle est aveugle aux synonymes : « voiture » et « automobile » lui sont étrangers, « chat » et « félin » aussi.

La seconde est la recherche sémantique : on compare les sens. Elle retrouve « automobile » à partir de « voiture », et même « comment réparer un moteur qui cale » à partir de « ma bagnole broute au démarrage ». Son prix : il faut représenter le sens par des nombres, et accepter de ne plus chercher une égalité exacte mais une proximité.

Cette seconde famille a explosé pour une raison très concrète. Les modèles de langage ont besoin, pour répondre juste, qu’on leur retrouve les bons passages dans une masse de documents. Ce mariage entre une recherche par le sens et un modèle qui rédige porte un nom, le RAG, et c’est la destination de ce cours.

Le parcours

Le cours suit un fil simple : représenter le sens, le retrouver vite, le rendre robuste, puis le mettre au service d’un modèle. Chaque chapitre répond à une limite laissée ouverte par le précédent.

Bloc 1 : représenter et mesurer le sens

Comment un texte devient un vecteur, et comment on mesure que deux vecteurs sont proches. Puis la recherche exacte, sa garantie parfaite, et le mur sur lequel elle se fracasse quand les vecteurs se comptent en millions et vivent en grande dimension.

Bloc 2 : retrouver vite, sans tout comparer

On renonce à l’exactitude pour gagner en vitesse. Le graphe HNSW et sa navigation de proche en proche, le paysage des familles d’index et leurs compromis, et surtout l’outil qui dit si un index approximatif est bon ou s’il ment silencieusement.

Bloc 3 : durcir, marier, servir

Rendre l’index durable sans le corrompre au moindre crash, le marier à la recherche lexicale pour le meilleur des deux mondes, et enfin brancher tout ça sur un modèle de langage.

Les trois blocs du cours et leur progression

Pour qui ce cours

  • Tu utilises déjà une base vectorielle (pgvector, Qdrant, FAISS…) sans bien savoir ce qui tourne dessous. Tu vas enfin voir l’intérieur de la boîte.
  • Tu construis un système de RAG et tu veux comprendre pourquoi tes résultats sont parfois à côté de la plaque. La réponse est presque toujours dans la chaîne qu’on déplie ici.
  • Tu aimes voir les ponts entre une idée abstraite (le sens comme géométrie) et des structures de données concrètes. C’est précisément le voyage de ce cours.

Ce cours n’est pas un tutoriel d’une bibliothèque particulière, ni un état de l’art de la recherche la plus récente, qui bouge trop vite pour un cours.

En une phrase

Chercher par le sens, c’est représenter chaque texte par un point dans un espace, mesurer la proximité entre ces points, puis bâtir tout l’outillage qui permet de retrouver les plus proches à grande échelle, vite et sans se tromper.

Place au chapitre 1

Tout part d’une question presque philosophique. Si le sens doit devenir une position dans l’espace, alors qu’est-ce qu’une position, et comment mesure-t-on que deux positions sont proches ? Un mot perfectionniste mais lointain doit-il battre un mot approximatif mais tout proche ? C’est là, dans la géométrie de la similarité, que commence le chapitre 1.

Sources

  • Firth, J. R. (1957). « A synopsis of linguistic theory 1930-1955. » In Studies in Linguistic Analysis, 1-32. Blackwell. (Source de l’hypothèse distributionnelle.)
  • Mikolov, T., Chen, K., Corrado, G. & Dean, J. (2013). « Efficient Estimation of Word Representations in Vector Space. » arXiv:1301.3781
  • Lewis, P. et al. (2020). « Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. » NeurIPS. arXiv:2005.11401

Pour aller plus loin avant d’attaquer le chap 1

  • Manning, C. D., Raghavan, P. & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. Référence du domaine, gratuite en ligne. nlp.stanford.edu/IR-book