Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Modular RAG

ia

Définition

Modular RAG est une architecture RAG avancee decrite par Gao et al. (2023) qui decompose le pipeline RAG en modules independants et interchangeables, permettant de composer des workflows differents selon le type de question, le domaine, ou les ressources disponibles. C'est une evolution naturelle de l'Advanced RAG vers plus de flexibilite architecturale. Les modules fondamentaux du Modular RAG : (1) Query Processor — reformulation, decomposition, expansion des requetes, (2) Retriever — dense (vectorstore), sparse (BM25), hybride, web, SQL, APIs, (3) Reranker — cross-encoder, cohere API, custom model, (4) Context Processor — compression, filtrage, deduplication, (5) Generator — LLM de generation, (6) Validator — verification de la reponse, critiques. L'innovation est le routing adaptatif : selon le type de question (factuelle vs analytique vs creative), la complexite, et le domaine, different modules sont actives et combines. Une question factuelle simple peut aller directement retriever→generator, tandis qu'une analyse complexe peut activer query decomposition→multi-path retrieval→reranking→synthesis. LlamaIndex Workflows (depuis v0.10) et LangGraph sont les frameworks les plus adaptes au Modular RAG : ils permettent de definir des graphes de modules avec des conditions de routing, des boucles de feedback, et du parallelisme. Le code du workflow est explicitement lisible et testable. L'avantage pratique du Modular RAG en entreprise : chaque module peut etre optimise independamment, remplace par une meilleure implementation, ou desactive selon les besoins. Un retriever BM25 peut etre remplace par un retriever vectoriel ou hybride sans changer le reste du pipeline. Cela facilite la maintenance et l'evolution des systemes RAG en production.

Architecture Modular RAG

from llama_index.core.workflow import Workflow, StartEvent, StopEvent, step

class ModularRAGWorkflow(Workflow):
    @step
    async def route_query(self, ev: StartEvent) -> RoutingEvent:
        query_type = classify_query(ev.query)  # factual/analytical/creative
        return RoutingEvent(query=ev.query, type=query_type)

    @step
    async def retrieve(self, ev: RoutingEvent) -> RetrievalEvent:
        if ev.type == 'factual':
            docs = await dense_retriever.aretrieve(ev.query)
        else:
            docs = await hybrid_retriever.aretrieve(ev.query)  # Dense+sparse
        return RetrievalEvent(docs=docs, query=ev.query)

    @step
    async def generate(self, ev: RetrievalEvent) -> StopEvent:
        response = await llm.acomplete(ev.query, context=ev.docs)
        return StopEvent(result=response)

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis