Cinquième étape : Exploration des scénarios d'application de l'IA
Collection complète de techniques avancées de génération augmentée par la récupération (RAG), couvrant plus de 30 implémentations de techniques RAG, des fondamentales aux plus avancées, avec des exemples de code complets et une documentation détaillée.
Techniques RAG : Présentation détaillée des ressources d'apprentissage
Présentation du projet
RAG Techniques est un projet open-source GitHub créé par Nir Diamant, dédié à la présentation de diverses techniques avancées de systèmes de Génération Augmentée par Récupération (Retrieval-Augmented Generation, RAG). Ce projet vise à fournir une bibliothèque de ressources complète aux chercheurs et développeurs, les aidant à construire des systèmes RAG plus précis et plus pertinents contextuellement.
Caractéristiques du projet
🌟 Points Forts
- Technologies de pointe : Couvre les dernières techniques d'amélioration des systèmes RAG.
- Documentation complète : Chaque technique est accompagnée d'une documentation détaillée.
- Guides pratiques : Fournit des conseils de mise en œuvre concrets.
- Mises à jour continues : Met régulièrement à jour les dernières avancées technologiques.
- Piloté par la communauté : Dispose d'une communauté Discord active (plus de 20 000 passionnés d'IA).
🎯 Public Cible
- Chercheurs en IA
- Ingénieurs en apprentissage automatique
- Développeurs et praticiens
- Apprenants intéressés par les techniques RAG
Classification des techniques et présentation détaillée
1. Techniques Fondamentales (🌱)
RAG Simple
- Description : Présente les techniques RAG de base, adaptées aux débutants.
- Implémentation : Prend en charge LangChain et LlamaIndex.
- Fonctionnalités : Requêtes de récupération de base et mécanismes d'apprentissage incrémentiel.
RAG Simple utilisant des fichiers CSV
- Description : Implémentation RAG de base utilisant des fichiers CSV.
- Fonctionnalités : Utilise des fichiers CSV pour créer une récupération de base et s'intègre avec OpenAI.
RAG Correctif
- Description : Améliore le RAG simple en ajoutant des mécanismes de validation et d'amélioration.
- Fonctionnalités : Vérifie la pertinence des documents récupérés et met en évidence les extraits de document utilisés pour la réponse.
2. Techniques de Découpage (Chunking)
Choix de la taille des blocs (Chunks)
- Description : Sélectionne la taille appropriée des blocs de texte pour équilibrer la rétention du contexte et l'efficacité de la récupération.
- Implémentation :
# Exemple : Expérimentation avec différentes tailles de blocs
chunk_sizes = [200, 500, 1000, 2000]
for size in chunk_sizes:
# Tester l'efficacité de la récupération pour différentes tailles
evaluate_chunk_performance(size)
Découpage par Propositions
- Description : Décompose le texte en phrases concises, complètes et significatives.
- Caractéristiques :
- 💪 Génération de propositions : Utilise un LLM pour générer des énoncés factuels à partir de blocs de documents.
- ✅ Contrôle qualité : Évalue la précision, la clarté, l'exhaustivité et la concision.
Découpage Sémantique
- Description : Segmente les documents en fonction de la cohérence sémantique plutôt que d'une taille fixe.
- Avantages : Utilise des techniques de PNL pour identifier les limites thématiques, créant ainsi des unités de récupération plus significatives.
3. Techniques de Traitement des Requêtes
Transformations de Requêtes
- Description : Modifie et étend les requêtes pour améliorer l'efficacité de la récupération.
- Les techniques incluent :
- ✍️ Réécriture de requêtes : Reformule les requêtes pour améliorer la récupération.
- 🔙 Prompting de repli : Génère des requêtes plus larges pour obtenir un meilleur contexte.
- 🧩 Décomposition en sous-requêtes : Décompose les requêtes complexes en sous-requêtes simples.
Questions Hypothétiques (HyDE)
- Description : Génère des questions hypothétiques pour améliorer la correspondance entre la requête et les données.
- Fonctionnalités : Crée des questions hypothétiques qui pointent vers des emplacements pertinents dans les données.
Embeddings de Prompts Hypothétiques (HyPE)
- Description : Version améliorée de HyDE, pré-calculant les prompts hypothétiques lors de la phase d'indexation.
- Avantages :
- 📖 Questions pré-calculées : Génère plusieurs requêtes hypothétiques lors de l'indexation.
- 🔍 Correspondance question-question : La requête de l'utilisateur correspond aux questions hypothétiques stockées.
- ⚡ Pas de surcoût d'exécution : Ne nécessite pas d'appel au LLM au moment de la requête.
4. Techniques de Traitement du Contexte
Techniques d'Enrichissement du Contexte
- Description : Améliore la précision de la récupération en intégrant des phrases individuelles et en les étendant aux phrases voisines.
- Implémentation :
# Exemple : Extension de la fenêtre contextuelle
def get_context_window(sentence_index, window_size=2):
start = max(0, sentence_index - window_size)
end = min(len(sentences), sentence_index + window_size + 1)
return sentences[start:end]
Compression Contextuelle
- Description : Compresse les informations récupérées tout en conservant le contenu pertinent pour la requête.
- Méthode : Utilise un LLM pour compresser ou résumer les blocs récupérés.
En-têtes de Blocs Contextuels (CCH)
- Description : Crée un contexte au niveau du document et du chapitre, et l'ajoute aux en-têtes des blocs.
- Fonctionnalités : Améliore la précision de la récupération.
5. Amélioration de la Récupération
Récupération par Fusion
- Description : Optimise les résultats de recherche en combinant différentes méthodes de récupération.
- Implémentation : Combine la recherche basée sur les mots-clés et la recherche basée sur les vecteurs.
Re-classement Intelligent
- Description : Applique des mécanismes de notation avancés pour améliorer le classement de pertinence des résultats de récupération.
- Techniques :
- 🧠 Notation basée sur les LLM
- 🔀 Modèles à encodeur croisé
- 🏆 Classement amélioré par les métadonnées
Filtrage Multi-facettes
- Description : Applique diverses techniques de filtrage pour améliorer la qualité des résultats de récupération.
- Inclut :
- 🏷️ Filtrage par métadonnées
- 📊 Seuil de similarité
- 📄 Filtrage de contenu
- 🌈 Filtrage par diversité
6. Architecture Avancée
Indices Hiérarchiques
- Description : Crée un système multicouche pour une navigation et une récupération d'informations efficaces.
- Implémentation : Système à deux niveaux de résumés de documents et de blocs détaillés.
Récupération par Ensemble
- Description : Combine plusieurs modèles ou techniques de récupération pour obtenir des résultats plus robustes et précis.
- Méthode : Utilise des mécanismes de vote ou de pondération pour déterminer l'ensemble final de documents récupérés.
RAPTOR
- Description : Récupération organisée en arbre par traitement abstrait récursif.
- Caractéristiques : Traite récursivement les documents récupérés en utilisant des résumés abstraits, organisant l'information dans une structure arborescente.
7. Techniques Adaptatives
Récupération Adaptative
- Description : Ajuste dynamiquement la stratégie de récupération en fonction du type de requête et du contexte utilisateur.
- Fonctionnalités : Utilise des stratégies de récupération personnalisées pour différentes catégories de requêtes.
Self RAG
- Description : Approche dynamique combinant les méthodes de récupération et de génération.
- Processus : Décision de récupération → Récupération de documents → Évaluation de la pertinence → Génération de réponse.
RAG Correctif (CRAG)
- Description : Méthode RAG complexe qui évalue et corrige dynamiquement le processus de récupération.
- Composants : Évaluateur de récupération, affinement des connaissances, réécriveur de requêtes de recherche web.
8. Techniques Multimodales
Récupération Multimodale
- Description : Étend les capacités RAG pour gérer plusieurs types de données.
- Méthodes :
- Sous-titrage multimédia : Génère des titres pour toutes les données multimédias.
- Colpali : Convertit toutes les données en images et utilise un LLM visuel.
9. Intégration de Graphes de Connaissances
Intégration de Graphes de Connaissances (Graph RAG)
- Description : Intègre les données structurées des graphes de connaissances pour enrichir le contexte.
- Fonctionnalités : Récupère les entités et les relations pertinentes pour la requête.
GraphRAG (Microsoft)
- Description : Le système GraphRAG open-source de Microsoft.
- Caractéristiques : Extrait les entités et les relations des unités de texte, génère des résumés de communauté.
10. Techniques d'Évaluation
Évaluation DeepEval
- Description : Évaluation complète des systèmes RAG.
- Indicateurs : Exactitude, fidélité, pertinence contextuelle.
Évaluation GroUSE
- Description : Évaluation de LLM basée sur le contexte.
- Fonctionnalités : Évalue en utilisant les 6 indicateurs du cadre GroUSE.
Guide d'Implémentation
Démarrage Rapide
# Cloner le dépôt
git clone https://github.com/NirDiamant/RAG_Techniques.git
# Naviguer vers le répertoire d'une technique spécifique
cd all_rag_techniques/technique-name
# Suivre les guides d'implémentation détaillés dans chaque répertoire de technique
Support de la Pile Technologique
- LangChain : Support du cadre principal.
- LlamaIndex : Support partiel pour certaines techniques.
- API OpenAI : Intégration de modèles génératifs.
- Divers modèles d'embedding : Prend en charge de multiples méthodes de vectorisation.
Suggestions de Parcours d'Apprentissage
Parcours pour Débutants
- RAG Simple → Comprendre les concepts de base.
- Choix de la taille des blocs → Apprendre le découpage de texte.
- Transformations de requêtes → Comprendre l'optimisation des requêtes.
- Enrichissement du Contexte → Maîtriser le traitement du contexte.
Parcours Avancé
- Découpage Sémantique → Techniques de découpage avancées.
- Récupération par Fusion → Combinaison de plusieurs méthodes.
- Re-classement Intelligent → Optimisation des résultats.
- Indices Hiérarchiques → Architecture complexe.
Parcours Expert
- Self RAG → Systèmes adaptatifs.
- Graph RAG → Intégration de graphes de connaissances.
- RAPTOR → Traitement récursif.
- Récupération Multimodale → Traitement multimodal.
Ce matériel d'apprentissage offre un parcours complet sur les techniques RAG, du niveau débutant à expert, adapté aux apprenants de tous niveaux, et constitue l'une des ressources les plus complètes sur les techniques RAG actuellement disponibles.