Retour d’expérience sur un RAG en production après avoir traité plus de 5 millions de documents
(blog.abdellatif.io)- Pendant 8 mois, un projet de RAG (génération augmentée par la recherche) a permis de distinguer les méthodes réellement efficaces de celles qui faisaient perdre du temps
- Au départ, un prototype a été rapidement finalisé avec Langchain et Llamaindex, mais les retours des utilisateurs ont révélé des limites de performance en conditions réelles
- Les principaux facteurs d’amélioration de la recherche documentaire ont été identifiés comme étant la génération de requêtes, le reranking, la stratégie de chunking, l’exploitation des métadonnées et le routage des requêtes
- En pratique, l’équipe a construit un pipeline sur mesure en choisissant de façon flexible base de données vectorielle, embeddings, reranking, LLM, etc.
- Toute cette expérience et ce savoir-faire ont été regroupés et publiés dans le projet open source (agentset-ai/agentset)
Aperçu de 8 mois de construction d’un RAG en production
- Retour d’expérience sur la construction et l’exploitation d’un système RAG sur de grands jeux de données, notamment 9 millions de pages (Usul AI) et 4 millions de pages (une entreprise anonyme d’IA juridique)
- Au début, en suivant des tutoriels YouTube, un prototype a été réalisé en quelques jours en passant de Langchain à Llamaindex, mais au moment du déploiement, des problèmes de performances insuffisantes perceptibles uniquement par les utilisateurs sont apparus
- Après plusieurs mois d’ajustements partiels des composants du système, des performances optimales ont été atteintes
Les éléments qui ont réellement contribué à améliorer les performances (par ordre de ROI)
-
Génération de requêtes (Query Generation)
- La dernière requête de l’utilisateur ne suffit pas à elle seule à contenir tout le contexte, donc le LLM passe en revue la conversation pour générer plusieurs requêtes sémantiques et requêtes par mots-clés
- Ces requêtes sont traitées en parallèle puis envoyées à un reranker, ce qui permet d’élargir le périmètre de recherche et de compenser les biais de la recherche hybride
-
Reranking
- L’impact d’un reranking implémentable en environ 5 lignes de code sur les performances est bien plus important qu’on ne l’imagine
- Sur un grand volume de chunks en entrée (par exemple 50), le plus fort ROI vient du processus consistant à réordonner et sélectionner une partie des meilleurs chunks (par exemple 15)
- Le reranking seul peut déjà compenser en grande partie les faiblesses d’un pipeline mal conçu
-
Stratégie de chunking (Chunking Strategy)
- C’est la partie qui a pris le plus de temps pendant tout le développement
- Il faut comprendre précisément la structure et les motifs des données, effectuer le chunking selon des unités logiques, et vérifier manuellement que le texte ou les phrases ne sont pas coupés au milieu
- Chaque chunk doit conserver un sens autonome
-
Exploitation des métadonnées en entrée du LLM
- Au lieu d’envoyer uniquement le texte brut des chunks au LLM, l’ajout de métadonnées (title, author, etc.) améliore fortement le contexte et la qualité des réponses
-
Routage des requêtes (Query Routing)
- Pour les types de demandes auxquels le RAG ne peut pas répondre (par exemple résumé d’article, demande d’informations sur l’auteur, etc.), un routeur léger a été introduit afin de diriger ces requêtes vers un chemin de traitement API+LLM
Stack utilisée en pratique (Our stack)
- Base de données vectorielle : Azure → Pinecone → Turbopuffer (peu coûteux et avec prise en charge native de la recherche par mots-clés)
- Extraction de documents : méthode personnalisée
- Outil de chunking : Unstructured.io par défaut, pipeline personnalisé pour l’entreprise (Chonkie a aussi bonne réputation)
- Modèle d’embedding : utilisation de text-embedding-large-3 (autres modèles non testés)
- Reranker : None → Cohere 3.5 → Zerank (peu connu, mais réellement excellent)
- LLM : GPT 4.1 → GPT 5 → GPT 4.1 (principalement avec des crédits Azure)
Open source et conclusion
- Tous les enseignements et l’expérience terrain ont abouti au projet open source agentset-ai/agentset
- Le projet est publié sous licence MIT et peut être utilisé librement ; il est aussi possible de poser des questions (coordonnées fournies)
1 commentaires
Avis Hacker News
text-embedding-large-3).