Quiz sur la generation augmentee par recuperation (RAG)
Ce quiz couvre l’ensemble des concepts RAG abordes dans cette section : embeddings, recherche vectorielle, BM25, recherche hybride, re-ranking et recuperation contextuelle.
Question 1 : Qu'est-ce qu'un embedding dans le contexte du RAG ?
Un embedding est une representation numerique (vecteur) d’un texte dans un espace multidimensionnel. Les textes semantiquement proches ont des vecteurs proches dans cet espace. On utilise des modeles specialises comme nomic-embed-text ou les embeddings d’Anthropic pour les generer.
Question 2 : Quelle est la difference entre la recherche vectorielle et BM25 ?
- Recherche vectorielle : compare la similarite semantique entre la requete et les documents en utilisant des embeddings. Elle comprend le sens meme si les mots exacts ne correspondent pas.
- BM25 : algorithme de recherche lexicale base sur la frequence des termes. Il est performant pour les correspondances exactes de mots-cles mais ne comprend pas la semantique.
Question 3 : Pourquoi combiner les deux dans une recherche hybride ?
Chaque methode a ses forces et ses faiblesses. La recherche vectorielle capte le sens mais peut manquer des correspondances exactes. BM25 est precis sur les mots-cles mais ne comprend pas les synonymes ou le contexte. En combinant les deux, on obtient le meilleur des deux mondes.
Question 4 : Comment fonctionne le re-ranking et pourquoi l'utiliser ?
Apres la recherche hybride, on envoie les resultats fusionnes a Claude avec la question originale. Claude reordonne les documents par pertinence en utilisant sa comprehension du langage naturel. C’est utile car Claude peut saisir des nuances que ni la similarite vectorielle ni BM25 ne detectent (par ex. : “l’equipe engineering” vs une section de cybersecurite).
Question 5 : Quel est le probleme fondamental que resout la recuperation contextuelle ?
Quand on decoupe un document en chunks, chaque morceau perd son contexte : il ne sait plus d’ou il vient ni comment il se rattache au reste du document. La recuperation contextuelle resout ce probleme en faisant generer par Claude un court paragraphe de contexte qui est ajoute a chaque chunk avant l’indexation.
Question 6 : Comment optimiser le re-ranking en termes de tokens ?
Au lieu de demander a Claude de renvoyer le texte complet des documents pertinents, on attribue un identifiant unique a chaque chunk et on demande a Claude de renvoyer uniquement les identifiants dans l’ordre de pertinence. Cela reduit considerablement le nombre de tokens en sortie.
Question 7 : Comment gerer les documents trop longs pour la recuperation contextuelle ?
On fournit un sous-ensemble reduit du contexte au lieu du document entier :
- Quelques chunks du debut (resumes, introductions)
- Les chunks immediatement precedents
- On saute les chunks du milieu non pertinents
Cela donne assez de contexte sans depasser la fenetre de contexte.
Question 8 : Quels sont les compromis du re-ranking ?
- Avantage : meilleure precision grace a la comprehension semantique de Claude
- Inconvenient : latence supplementaire (un appel API en plus) et cout additionnel en tokens
Pour la plupart des cas d’usage, le gain en precision justifie ces couts, surtout pour des requetes complexes.