Examen final : Systèmes RAG complet
Évaluation complète couvrant les 10 modules. 50 questions testant votre maîtrise des concepts et de la mise en œuvre de RAG.
Instructions
- Répondez à toutes les 50 questions
- Chaque question vaut 2 points
- Note de passage : 70 % (70 points)
- Temps suggéré : 60-90 minutes
Partie 1 : Fondamentaux (Q1-10)
Q1 : Que signifie RAG et quel est son principal objectif ?
Réponse : Retrieval-Augmented Generation. Il améliore les LLMs en fournissant des documents récupérés pertinents comme contexte pour des réponses plus précises et fondées.
Q2 : Nommez les trois phases principales d'un pipeline RAG.
Réponse : 1) Indexation (hors ligne), 2) Récupération (en ligne), 3) Génération (en ligne).
Q3 : Quels sont les quatre principaux problèmes que RAG résout pour les LLMs ?
Réponse : 1) Hallucinations, 2) Limite de connaissances, 3) Pas d'accès aux données privées, 4) Limites de tokens/contexte.
Q4 : Expliquez la différence entre RAG et le fine-tuning.
Réponse : RAG ajoute des connaissances par récupération (dynamique, peut être mis à jour) ; le fine-tuning modifie le comportement du modèle (statique, nécessite un réentraînement).
Q5 : Quelle est la taille typique des segments et le chevauchement pour les systèmes RAG ?
Réponse : Taille des segments : 500-1500 caractères ; Chevauchement : 10-20 % de la taille des segments (par exemple, 200 caractères pour des segments de 1000 caractères).
Q6 : Que sont les embeddings et pourquoi sont-ils importants pour RAG ?
Réponse : Représentations vectorielles denses de texte qui capturent la signification sémantique. Ils permettent la recherche de similarité pour trouver des documents pertinents.
Q7 : Qu'est-ce que la similarité cosinus et quel est son intervalle ?
Réponse : Une métrique mesurant l'angle entre les vecteurs ; l'intervalle est de -1 à 1 (1 = direction identique, 0 = orthogonal).
Q8 : Nommez trois bases de données vectorielles populaires.
Réponse : N'importe lesquelles parmi : Pinecone, Weaviate, Chroma, Qdrant, Milvus, pgvector, FAISS.
Q9 : Qu'est-ce que HNSW et pourquoi est-il couramment utilisé ?
Réponse : Hierarchical Navigable Small World - un algorithme basé sur des graphes pour une recherche rapide d'approximation des plus proches voisins avec une bonne qualité.
Q10 : Qu'est-ce qu'un retriever dans LangChain ?
Réponse : Un composant qui prend une requête et retourne des documents pertinents à partir d'un magasin vectoriel.
Partie 2 : Traitement des documents (Q11-18)
Q11 : Nommez trois types de chargeurs de documents dans LangChain.
Réponse : N'importe lesquels parmi : PyPDFLoader, TextLoader, CSVLoader, WebBaseLoader, UnstructuredPDFLoader, Docx2txtLoader.
Q12 : Qu'est-ce que RecursiveCharacterTextSplitter et comment fonctionne-t-il ?
Réponse : Un diviseur de texte qui essaie de diviser par paragraphe, puis phrase, puis mot, puis caractère - suivant une hiérarchie de séparateurs.
Q13 : Pourquoi le chevauchement des segments est-il important ?
Réponse : Il empêche l'information d'être coupée aux limites des segments et préserve le contexte entre les segments.
Q14 : Comment les tableaux dans les documents doivent-ils être traités ?
Réponse : Gardez les tableaux comme des segments uniques pour préserver la structure ; utilisez des extracteurs spécialisés comme Camelot pour les PDFs.
Q15 : Qu'est-ce que l'OCR et quand est-il nécessaire ?
Réponse : Reconnaissance Optique de Caractères - nécessaire pour les PDFs scannés et les images où le texte n'est pas lisible par machine.
Q16 : Quelles métadonnées doivent être préservées lors du traitement des documents ?
Réponse : Fichier source, numéro de page, index de segment, date, auteur, type de document, et tout attribut spécifique au domaine.
Q17 : Qu'est-ce que le découpage sémantique ?
Réponse : Diviser le texte en fonction de la similarité sémantique plutôt que des comptes de caractères fixes.
Q18 : Comment gérer des fichiers CSV très volumineux ?
Réponse : Traitez par lots en utilisant pandas chunksize ou des approches de streaming similaires.
Partie 3 : Embeddings (Q19-25)
Q19 : Qu'est-ce qui détermine la qualité des embeddings ?
Réponse : Architecture du modèle, données d'entraînement, et nombre de dimensions. Utilisez les benchmarks MTEB pour comparer.
Q20 : Nommez deux modèles d'embeddings commerciaux et deux open-source.
Réponse : Commerciaux : OpenAI text-embedding-3, Cohere embed-v3. Open source : BGE, E5, Sentence Transformers.
Q21 : Qu'est-ce que MTEB ?
Réponse : Massive Text Embedding Benchmark - le benchmark standard pour comparer la qualité des modèles d'embeddings.
Q22 : Quand devriez-vous envisager l'hébergement autonome des embeddings ?
Réponse : Volume élevé (>10M docs), exigences de confidentialité des données, exigences de latence (<20ms), ou optimisation des coûts.
Q23 : Que se passe-t-il si vous utilisez différents modèles d'embeddings pour l'indexation et la requête ?
Réponse : La récupération échoue ou fonctionne très mal - les vecteurs doivent provenir du même modèle pour être comparables.
Q24 : Quel est le compromis avec des dimensions d'embeddings plus élevées ?
Réponse : Meilleure qualité mais plus de stockage et recherche plus lente.
Q25 : Comment fonctionne la réduction de dimension dans text-embedding-3-large ?
Réponse : Le paramètre dimensions tronque le vecteur tout en maintenant la qualité grâce à l'optimisation au moment de l'entraînement.
Partie 4 : Récupération (Q26-32)
Q26 : Qu'est-ce que la recherche hybride ?
Réponse : Combiner la recherche par mots-clés (BM25) avec la recherche vectorielle sémantique pour de meilleurs résultats.
Q27 : Qu'est-ce que MMR et quand devriez-vous l'utiliser ?
Réponse : Maximum Marginal Relevance - équilibre la pertinence avec la diversité. Utilisez-le lorsque vous voulez des résultats variés.
Q28 : Qu'est-ce que le reranking ?
Réponse : Réévaluer les résultats initiaux de récupération avec un modèle plus puissant (cross-encoder) pour une meilleure précision.
Q29 : Qu'est-ce que la fusion de rangs réciproques ?
Réponse : Une méthode pour combiner les classements de plusieurs récupérateurs en un classement final unique.
Q30 : Quelle est la différence entre le filtrage pré-récupération et post-récupération ?
Réponse : Pré-récupération : filtrer avant la recherche (plus efficace). Post-récupération : filtrer les résultats après la recherche.
Q31 : Qu'est-ce que HyDE ?
Réponse : Hypothetical Document Embeddings - générer une réponse hypothétique, l'encoder, et l'utiliser pour la récupération.
Q32 : Qu'est-ce que la récupération auto-interrogative ?
Réponse : Utiliser un LLM pour extraire à la fois la requête sémantique et les filtres de métadonnées à partir d'une entrée en langage naturel.
Partie 5 : Cadres & Évaluation (Q33-40)
Q33 : Qu'est-ce que LCEL dans LangChain ?
Réponse : LangChain Expression Language - une manière composable de construire des chaînes en utilisant l'opérateur pipe (|).
Q34 : Quelle est la différence entre LangChain et LlamaIndex ?
Réponse : LangChain : construction de chaînes à usage général. LlamaIndex : axé sur l'indexation et la requête de données.
Q35 : Que fait le type de chaîne "stuff" ?
Réponse : Met tous les documents récupérés dans une seule invite - idéal pour les petits contextes.
Q36 : Qu'est-ce que RAGAS ?
Réponse : Retrieval Augmented Generation Assessment - cadre pour l'évaluation automatisée de RAG.
Q37 : Nommez quatre métriques RAGAS.
Réponse : Fidélité, pertinence de la réponse, précision du contexte, rappel du contexte.
Q38 : Que mesure la fidélité ?
Réponse : Si la réponse générée est fondée sur (soutenue par) le contexte récupéré.
Q39 : À quoi sert LangSmith ?
Réponse : Traçage, débogage et surveillance des applications LangChain.
Q40 : Comment déboguer "mauvais documents récupérés" ?
Réponse : Imprimer les documents récupérés, vérifier la taille des segments, vérifier le modèle d'embeddings, tester avec des requêtes connues.
Partie 6 : Production (Q41-50)
Q41 : Qu'est-ce que la mise en cache sémantique ?
Réponse : Mise en cache des résultats pour des requêtes sémantiquement similaires (pas seulement des correspondances exactes).
Q42 : Qu'est-ce que la multi-location dans RAG ?
Réponse : Servir plusieurs organisations à partir d'un seul système avec isolation des données.
Q43 : Nommez deux approches pour l'isolation des locataires.
Réponse : 1) Isolation par espace de noms, 2) Filtrage des métadonnées avec tenant_id.
Q44 : Que faut-il suivre pour la facturation dans SaaS RAG ?
Réponse : Requêtes, tokens utilisés, documents indexés, stockage utilisé.
Q45 : Qu'est-ce que l'injection de prompt ?
Réponse : Entrée malveillante conçue pour manipuler le comportement du LLM.
Q46 : Comment prévenir l'injection de prompt ?
Réponse : Validation des entrées, assainissement, et conception sécurisée des prompts.
Q47 : Que doit-on enregistrer dans les journaux d'audit en production RAG ?
Réponse : ID utilisateur, requête, documents consultés, horodatage, métadonnées de réponse.
Q48 : À quelle échelle devriez-vous envisager le sharding ?
Réponse : Environ 1M+ documents nécessitent généralement le sharding.
Q49 : Qu'est-ce que l'indexation basée sur une file d'attente ?
Réponse : Ajouter des documents à une file d'attente pour un traitement en arrière-plan asynchrone.
Q50 : Quel est le principal facteur de la qualité des réponses RAG ?
Réponse : Qualité de la récupération - si vous récupérez les bons documents, le LLM peut générer de bonnes réponses.
Évaluation
| Score | Note | Évaluation |
|---|---|---|
| 90-100 | A | Excellent - Expert en RAG |
| 80-89 | B | Bon - Compréhension solide |
| 70-79 | C | Passable - Revoir les points faibles |
| 60-69 | D | En dessous de la moyenne - Plus d'étude nécessaire |
| <60 | F | Révision significative requise |
🎉 Félicitations !
Si vous avez complété cet examen et le cours, vous avez maintenant une connaissance complète des systèmes RAG. Continuez à construire et à expérimenter !