Cependant, la plupart des tutoriels disponibles sont soit trop théoriques, soit ils utilisent directement des frameworks comme LangChain sans expliquer le fonctionnement interne. Comprendre véritablement les subtilités du RAG reste un défi.
Récemment, j'ai découvert un projet open source particulièrement intéressant — all-rag-techniques — qui compte désormais plus de 6 100 étoiles sur GitHub.
Ce qui rend ce projet unique : 22 techniques RAG entièrement implémentées manuellement, sans aucune dépendance à un framwork.
L'auteur a choisi d'utiliser uniquement les bibliothèques Python de base (numpy, matplotlib) pour implémenter chaque technique RAG à partir de zéro. Chaque technique dispose de son propre Jupyter Notebook, avec du code clair et des commentaires détaillés.
L'objectif : vous permettre de comprennent exactement ce que fait chaque ligne de code.
Les technologies couvertes représentent une véritable encyclopédie des techniques RAG :
Des bases du Simple RAG jusqu'aux techniques avancées comme le chunking sémantique, la compression contextuelle, le RAG adaptatif, le Graph RAG, le Multimodal RAG, et même le RAG par apprentissage par renforcement — presque toutes les techniques d'optimisation RAG imaginables sont présentes.
Voici les techniques les plus remarquables :
Semantic Chunking (Chunking sémantique) — Au lieu de diviser le texte en longueurs fixes, cette technique segmente intelligemment selon la similarité sémantique, rendant chaque bloc plus cohérent.
Reranker (Réordonnancement) — Une approche en deux étapes : sélection grossière suivie d'un tri précis, utilisant un LLM pour réordonner les résultats de检索 préliminaires et améliorer significativement la pertinence.
Self RAG — Un système capable de déterminer de manière autonome quand une recherche est nécessaire, si le contenu récupéré est pertinent, et si la réponse générée est utile.
Graph RAG — Organisation des connaissances sous forme de structure de graphe, permettant de comprendre les relations entre concepts et produisant des résultats exceptionnels pour les requêtes complexes.
Multimodal RAG — Au-delà du texte, cette technique traite également les images en utilisant LLaVA pour générer des descriptions qui participent au processus de recherche.
Chaque technique inclut des étapes d'implémentation détaillées et des comparaisons de performance. Ce n'est pas de la théorie — vous pouvez réellement exécuter le code et observer les résultats.
L'auteur a également développé un sélecteur de techniques RAG particulièrement utile — il suffit de saisir votre requête et le système identifie automatiquement la combinaison de techniques RAG la plus appropriée.
Cette fonctionnalité est extrêmement pratique. Différents types de questions nécessitent différentes stratégies RAG, et cet outil évite les essayages multiples.
Installation et utilisation simplifies :
git clone https://github.com/FareedKhan-dev/all-rag-techniques.git
cd all-rag-techniques
pip install -r requirements.txt
Configuration de la clé API :
export OPENAI_API_KEY='VOTRE_CLE_API'
Ouvrez ensuite n'importe quel Jupyter Notebook pour commencer l'apprentissage. Chaque notebook est indépendant — vous pouvez étudier la technique de votre choix directement.
Le code est particulièrement bien écrit, accessible même aux débutants en IA.
Le projet utilise l'API Nebius AI (compatible avec le format OpenAI) et le modèle meta-llama/Llama-3.2-3B-Instruct. Vous pouvez toutefois utiliser d'autres API car l'architecture du code est flexible.
L'atout majeur : l'absence de dépendances aux frameworks.
Pas besoin d'apprendre LangChain ou de configurer FAISS — seules les bibliothèques Python de base sont utilisées. Cela vous permet de véritablement comprendre chaque étape du processus, plutôt que de manipulez des boites noires opaques.
Par exemple, pour le stockage vectoriel, l'auteur a implémenté directement une classe SimpleVectorStore avec NumPy, incluant le calcul de similarité et le tri des résultats. Moins de 100 lignes de code mais toutes les fonctionnalités essentielles sont présentes.
L'avantage de cette implémentation artisanale est la flexibilité totale : modifiez ce que vous voulez, optimisez n'importe quel环节 — tout est sous votre contrôle.
La structure du projet est bien organisée :
22 notebooks pour les techniques RAG핵심, un sélecteur de meilleures techniques, un notebook pour le traitement de grandes bases de connaissances avec graphes.
Des données d'exemple et des fichiers PDF de test sont également fournis, prêts à être utilisés.
Chaque technique inclut une explication détaillée du principe, du code d'implémentation, une évaluation des performances, et des résultats visualisés. Une expérience d'apprentissage exceptionnelle.
Pour les ingénieurs IA, ce projet représente un outil d'évolution de compétences essentiel.
Le RAG est maintenant au cœur des applications IA. Maîtriser ces techniques avancées peut améliorerenormément les performances de vos systèmes IA. Especially dans les applications enterprise, où un RAG basique est souvent insuffisant — ces techniques avancées deviennent nécessaires.
Ces techniques représentent les recherches les plus récentes.
L'auteur met régulièrement à jour le projet, avec récemment l'ajout du RAG par apprentissage par renforcement et du traitement de grandes bases de connaissances avec graphes. En suivant ce projet, vous maîtriserez les techniques les plus récentes du domaine RAG.
Le seul léger inconvenient : une clé API est nécessaire. Cependant, les API IA доступны à des prix razonables, et l'investissement en vaut绝对的 pour apprendre des techniques aussi poussées.
Si vous souhaitez progresser dans le domaine de l'IA, ce projet mérite une étude approfondie.
Que vous cherchiez à comprendre les principes fondamentaux du RAG ou à appliquer des techniques RAG avancées dans vos projets, vous y trouverez les réponses necesarias.