Quiz : génération augmentée par récupération (RAG)
Sur cette page
Dix questions pour vérifier les acquis de la section, du choix de la RAG à la récupération contextuelle. Le cours officiel n’a plus de quiz pour cette section ; celui-ci est propre à l’adaptation Corsen. Répondez avant d’ouvrir chaque réponse.
Question 1 : RAG ou tout dans le prompt
Votre documentation interne fait 300 pages et change une fois par trimestre. Faut-il une RAG ?
Voir la réponse
Pas forcément. Anthropic rappelle que la solution la plus simple est parfois la meilleure : si la base tient confortablement dans le prompt, on peut l’y mettre en entier, et la mise en cache des prompts rend l’approche rapide et économique. La RAG s’impose quand la base est trop volumineuse, trop changeante, ou quand le volume de questions rend chaque jeton coûteux. Gardez aussi en tête le context rot : la précision baisse quand le contexte s’allonge (leçon 46).
Question 2 : choisir un découpage
Vous indexez du code et des PDF sans structure fiable. Quelle stratégie de découpage choisir ?
Voir la réponse
Le découpage par taille, avec chevauchement : il fonctionne avec tout type de contenu, y compris le code, et ne casse jamais le pipeline. Vérifiez que le chevauchement reste inférieur à la taille des morceaux, sans quoi la boucle ne s’arrête pas (leçon 47).
Question 3 : input_type
Pourquoi vectoriser les morceaux avec input_type="document" et la question avec input_type="query" ?
Voir la réponse
Parce que Voyage ajoute au texte une consigne adaptée à son rôle avant de le vectoriser, ce qui améliore la qualité de la recherche. La documentation demande de toujours préciser input_type pour une tâche de recherche (leçon 48).
Question 4 : lire une distance
Un index renvoie deux morceaux, avec des distances cosinus de 0,71 et 0,72. Lequel est le plus proche de la question ?
Voir la réponse
Le premier, à 0,71 : une distance cosinus vaut 1 moins la similarité, donc la plus petite désigne le morceau le plus proche. On trie les distances par ordre croissant (leçons 49 et 50).
Question 5 : ce que l’on stocke
Pourquoi stocker le texte de chaque morceau à côté de son vecteur ?
Voir la réponse
Parce qu’un embedding permet de mesurer une proximité, pas de retrouver le texte dont il vient. Sans le texte, ou au moins une référence vers lui, la recherche saurait quel morceau est le plus proche sans pouvoir le donner à Claude (leçon 50).
Question 6 : sémantique ou lexicale
Pour « Que s’est-il passé avec INC-2023-Q4-011 ? », quelle recherche est la plus sûre, et pourquoi ?
Voir la réponse
BM25, la recherche lexicale : elle donne un poids élevé aux termes rares, comme un identifiant, et ne renvoie que les documents qui le contiennent. La recherche sémantique peut ramener un passage de sens voisin qui ne mentionne pas l’incident (leçon 51).
Question 7 : fusionner deux classements
Pourquoi la fusion des rangs réciproques ignore-t-elle les scores des index ?
Voir la réponse
Parce qu’une distance cosinus et un score BM25 n’ont ni la même échelle ni le même sens de lecture : les additionner n’aurait pas de sens. La fusion ne retient que le rang de chaque document dans chaque classement, et additionne 1 / (k + rang), avec k = 60 le plus souvent (leçon 52).
Question 8 : reclasser avec Claude
Quelles sont les deux précautions qui rendent efficace un reclassement par Claude ?
Voir la réponse
Attribuer un identifiant court à chaque candidat, pour que Claude renvoie des identifiants au lieu de recopier des passages ; et demander une sortie structurée, qui garantit la liste {"document_ids": [...]}. Un reclasseur dédié, comme rerank-3 de Voyage, est l’autre option (leçon 53).
Question 9 : la récupération contextuelle
Que fait la récupération contextuelle, et quels gains Anthropic a-t-il mesurés ?
Voir la réponse
Avant l’indexation, Claude écrit pour chaque morceau une courte phrase qui le situe dans son document, et cette phrase est ajoutée devant le morceau, dans l’index vectoriel comme dans BM25. Anthropic a mesuré 35 % d’échecs de récupération en moins avec les embeddings contextuels, 49 % en ajoutant BM25 contextuel, et 67 % avec un reclassement (leçon 54).
Question 10 : maîtriser le coût
Comment éviter de payer le document entier pour chaque morceau à contextualiser ?
Voir la réponse
Avec la mise en cache des prompts : le document est placé dans un bloc marqué cache_control, écrit une fois, puis relu à une fraction du prix pour chaque morceau. Le préfixe doit dépasser le seuil du modèle, 512 jetons sur les modèles actuels. Les embeddings contextualisés voyage-context-4 sont une alternative sans génération (leçon 54).
À vous de jouer
Assembler le pipeline. Réunissez dans un seul script le découpage, les deux index, le Retriever, le reclassement et la récupération contextuelle. Sur dix questions dont vous connaissez la réponse, mesurez à chaque étape ajoutée combien de fois le bon passage figure dans les trois premiers résultats.
Sources officielles : Building with the Claude API (Claude Academy) · Contextual Retrieval (Anthropic) · Embeddings (documentation Claude)
Points clés à retenir
- Commencer simple : tout dans le prompt avec la mise en cache, tant que la base s’y prête.
- Découper, vectoriser avec le bon
input_type, stocker vecteurs et textes. - Combiner recherche sémantique et BM25, fusionner par les rangs.
- Reclasser les candidats, puis contextualiser les morceaux pour les meilleurs résultats.