IA & traitement du langage Système RAG Production

Système RAG avancé pour le traitement de données confidentielles

Système de génération augmentée par recherche (RAG), prêt pour la production, avec recherche hybride, orchestration de modèles de langage auprès de plusieurs fournisseurs cloud et déploiement entièrement sur site pour les données sensibles.

1. Contexte et Objectifs

À l’ère des grands modèles de langage (LLM), les organisations doivent pouvoir utiliser l’IA tout en préservant la souveraineté et la confidentialité des données. Ce projet répond à ce besoin avec un système RAG avancé pouvant fonctionner entièrement sur site ou s’intégrer à des fournisseurs cloud selon les exigences de sécurité.

Objectifs Clés

  • Confidentialité dès la conception : Déploiement entièrement local pour traiter les données confidentielles sans dépendance à des services cloud
  • Recherche hybride : Recherche vectorielle dense, recherche lexicale BM25 et techniques de fusion avancées pour améliorer la précision
  • Flexibilité entre fournisseurs : Comparaison en temps réel des modèles locaux (Ollama) et des fournisseurs cloud (Claude, GPT-4, Gemini, Mistral, Cohere)
  • Pipeline prêt pour la production : Ingestion automatisée de documents avec découpage intelligent, filtrage qualité et enrichissement des métadonnées
  • Optimisation des performances : Représentations vectorielles accélérées par GPU et indexation efficace pour une recherche à faible latence
Vue d’ensemble de l’architecture du système RAG

Figure 1 - Architecture haut niveau du système RAG

Le principal défi consistait à équilibrer les performances, le coût et la confidentialité tout en préservant la fiabilité et la capacité de montée en charge nécessaires en production.

2. Architecture de Recherche Hybride

La recherche combine des représentations vectorielles denses (BAAI/bge-m3), une recherche lexicale BM25 et la fusion des rangs réciproques (RRF) pour améliorer la précision sur différents types de requêtes.

  • Recherche dense : Représentations sémantiques à 1 024 dimensions, stockées dans PostgreSQL/PGVector avec indexation HNSW
  • Recherche lexicale : Correspondance de mots-clés avec BM25 pour retrouver la terminologie exacte
  • Fusion RRF : Algorithme exécuté directement en SQL, combinant les résultats denses (60 %) et lexicaux (40 %)
  • Reclassement : CrossEncoder facultatif pour améliorer la précision de 5 à 10 %
Pipeline de recherche hybride

Figure 2 — Pipeline de recherche hybride combinant recherche dense, recherche lexicale et fusion

3. Orchestration des modèles : déploiement local ou cloud

Le système permet d’intégrer différents modèles de langage et de comparer leurs performances en temps réel.

  • Déploiement Local : Ollama avec llama3.1:8b, mistral, qwen2.5 (optimisé GPU, 100% privé)
  • Fournisseurs Cloud : Claude Sonnet 4.5, GPT-4o, Gemini 2.0, Mistral Large, Cohere Command R+
  • Comparaison des performances : Comparaison côte à côte de la latence, du coût et de la qualité
Comparaison des modèles de langage locaux et cloud

Figure 3 - Comparaison en temps réel entre réponses LLM locales et cloud

4. Pipeline d'Ingestion de Documents Automatisé

Le pipeline ETL traite les documents par analyse, découpage, filtrage qualité et génération de représentations vectorielles accélérée par GPU.

Pipeline d’ingestion de documents

Figure 4 - Architecture du pipeline d'ingestion de documents automatisé

  • Formats pris en charge : PDF, DOCX, TXT, Markdown, fichiers de code et carnets Jupyter
  • Découpage : Segments de 512 à 1 024 caractères, avec détection des limites sémantiques et conservation des métadonnées
  • Filtrage qualité : Détection de la langue, déduplication et évaluation de la cohérence
  • Stockage : PostgreSQL/PGVector avec indexation HNSW et recherche en texte intégral

5. Implémentation Technique

PostgreSQL 15+ avec extension PGVector, conteneurisation Docker et interface Streamlit.

  • Base de données : PGVector avec indexation HNSW et recherche en texte intégral
  • Environnement logiciel : LangChain avec prise en charge de plusieurs fournisseurs (Ollama, Claude, GPT-4, Gemini, Mistral)
  • Apprentissage automatique et traitement du langage : PyTorch, Sentence-Transformers, spaCy et CrossEncoder
  • Infrastructure : Déploiement Docker avec interface Streamlit et Python 3.9+
Architecture de déploiement du système RAG

Figure 5 - Architecture de déploiement conteneurisée

6. Performances et résultats

Tests réalisés sur 22 678 segments de texte indexés à partir de 182 fichiers.

Tableau de bord des performances du système RAG

Figure 6 - Métriques de performance en temps réel du déploiement production

  • Recherche : Environ 342 ms en recherche hybride avec reclassement (128 ms sans reclassement)
  • RAG local : Environ 8,7 s de bout en bout avec Ollama et llama3.1:8b
  • RAG cloud : Environ 2 à 3 s avec Claude/GPT-4
  • Qualité : Rappel amélioré de 10 à 15 % par rapport à la recherche dense seule ; fusion RRF dix fois plus rapide

7. Interface Utilisateur

Interface Streamlit avec conversation, citations des sources, comparaison côte à côte des modèles locaux et cloud, et téléversement de documents.

Interface de conversation du système RAG

Figure 7 — Interface de conversation avec citations des sources

Comparaison des réponses locales et cloud

Figure 8 - Comparaison côte à côte des réponses LLM locales et cloud

8. Conclusion

Ce projet présente un système RAG prêt pour la production, associant un fonctionnement entièrement sur site à la flexibilité de plusieurs fournisseurs cloud. La recherche hybride (dense, lexicale et RRF) améliore la précision ; la fusion exécutée en SQL offre des performances dix fois supérieures aux implémentations Python.

Les évolutions prévues comprennent l’intégration de plusieurs agents, la recherche à partir de graphes, la prise en charge de plusieurs modalités et le passage à l’échelle pour des millions de segments de texte.

Architecture complète du système RAG

Figure 9 - Architecture système complète avec tous composants

Références & Ressources

Technologies Clés

Références Académiques

  • Lewis, Patrick, et al. « Génération augmentée par recherche pour les tâches de traitement du langage mobilisant des connaissances » [titre traduit]. Advances in Neural Information Processing Systems 33 (2020) : 9459–9474.
  • Malkov, Yury A., et Dmitry A. Yashunin. « Recherche efficace et robuste de voisins proches approximatifs à l’aide de graphes hiérarchiques navigables de petit monde » [titre traduit]. IEEE Transactions on Pattern Analysis and Machine Intelligence 42.4 (2018) : 824–836.
  • Cormack, Gordon V., Charles L. A. Clarke et Stefan Buettcher. « La fusion des rangs réciproques surpasse Condorcet et les méthodes individuelles d’apprentissage du classement » [titre traduit]. Proceedings of the 32nd International ACM SIGIR Conference (2009).

Informations Projet

Statut : Prêt pour la production et entièrement déployable

Contact : Pour accéder au dépôt ou poser une question technique, contacter Martin LE CORRE