COURS INTERACTIFS
Chercher par le sens : bases vectorielles et retrieval
Un cours universitaire accessible sur la recherche sémantique. On part de la limite de la recherche par mot-clé, qui ignore le sens, pour reconstruire une recherche par le sens : représenter un texte par un vecteur, mesurer la proximité, indexer des millions de vecteurs sans tout comparer, rendre l'index durable, le marier au lexical, et enfin nourrir un modèle de langage. De la géométrie des embeddings au RAG.
- 00 8 minAvant-proposPourquoi chercher par le sens, ce que ce cours couvre, et comment le lire.
- 01 26 minEmbeddings et géométrie de la similaritéLe sens comme position dans l'espace, et trois façons de mesurer que deux sens sont proches.
- 02 28 minRecherche exacte et malédiction de la dimensionComparer tous les vecteurs donne la réponse parfaite. Voici son prix, et le piège que la grande dimension tend à notre intuition.
- 03 30 minHNSW : naviguer dans un graphe de proximitéEt si trouver le plus proche voisin devenait une promenade de quelques sauts, au lieu d'un balayage de millions de vecteurs ?
- 04 28 minLe paysage des index ANNQuatre familles d'index, trois richesses qu'on ne peut jamais toutes garder : comment choisir entre rappel, vitesse et mémoire ?
- 05 26 minTester l'approximatif : l'oracle différentielUn index peut passer tous ses tests, deux revues, et rendre quand même de mauvais résultats. Comment attrape-t-on un algorithme qui ment ?
- 06 30 minRendre l'index durableUn index qui vit dans la RAM disparaît au redémarrage. Comment l'écrire sur disque une fois pour toutes, sans jamais le corrompre, même si le courant saute en pleine insertion ?
- 07 32 minLe versant lexical : BM25 et recherche hybrideLa recherche par le sens, brillante sur les paraphrases, passe à côté d'un numéro de facture exact. Comment marier les vecteurs au monde des mots exacts, sans qu'une échelle de score écrase l'autre ?
- 08 40 minDu retrieval au RAGOn sait retrouver les bons passages, par le sens, par la lettre, par leur fusion. Mais retrouver n'est pas répondre. Comment brancher notre moteur sur un modèle de langage pour qu'il compose une réponse fondée, sans inventer ?