RAG-Muster
RAG-Muster (engl. RAG Patterns) sind eine Sammlung von architektonischen und methodischen Ansätzen zum Aufbau von Retrieval-Augmented Generation (RAG)-Systemen. Diese Muster dienen der Lösung grundlegender Probleme von Großen Sprachmodellen (LLMs), wie Halluzinationen, veraltetem Wissen und mangelnder Domänenspezifität, durch die Integration von LLMs mit externen, dynamisch zugänglichen Datenquellen[1]. Die Entwicklung von RAG reicht von einfachen linearen Pipelines bis hin zu komplexen modularen und agentenbasierten Systemen[2].
Grundlegende RAG-Muster
Mit der Weiterentwicklung der Technologie sind zahlreiche RAG-Muster entstanden, von denen jedes spezifische Aufgaben löst und eigene Kompromisse zwischen Qualität, Geschwindigkeit und Kosten aufweist.
- Classic RAG (Klassisches RAG) — der grundlegende Ansatz, bei dem die Anfrage eines Benutzers vektorisiert wird, um relevante Fragmente (Chunks) in einer Vektordatenbank zu finden; die gefundenen Chunks werden zusammen mit der Frage an das LLM übergeben, um eine Antwort zu generieren[1].
- Multi-Query RAG (Mehrfachanfragen) — das LLM generiert mehrere umformulierte oder präzisierte Varianten der ursprünglichen Anfrage; die Suche wird für alle Varianten ausgeführt und die Ergebnisse werden zusammengeführt, was die Trefferquote (recall) erhöht[3].
- HyDE (Hypothetical Document Expansion) — um die „semantische Lücke“ zwischen einer kurzen Anfrage und langen Dokumenten zu überbrücken. Das LLM generiert zunächst ein „hypothetisches“ Antwortdokument, dessen Embedding dann für die Suche verwendet wird, was oft die Qualität des Retrievals verbessert[4].
- Hybrid Retrieval (Hybride Suche) — eine Kombination aus semantischer (vektorbasierter) und lexikalischer (BM25) Suche. Hybride Schemata sind zum Standard für Produktionssysteme geworden: Die Vektorsuche deckt semantische Übereinstimmungen ab, während BM25 exakte Begriffe, IDs oder Akronyme findet; die Ergebnisse werden durch Fusion zusammengeführt[5][6][7].
- Re-ranking (Zusätzliches Ranking) — ein zweistufiger Prozess: Ein schneller Retriever liefert eine Reihe von Kandidaten (z. B. die Top 100), danach berechnet ein Cross-Encoder (oder ein anderer Reranker) die Relevanz neu und wählt die besten (z. B. die Top 5) für das LLM aus[8][9].
- Query Routing (Anfragen-Routing) — in Systemen mit mehreren heterogenen Datenquellen (verschiedene Indizes, Datenbanken, APIs) wird die Anfrage mithilfe eines Routers (LLM-Selektor oder Klassifikator) an die am besten geeignete Quelle weitergeleitet; dies schließt Fallback-Strategien ein[10].
- Agentic/Web RAG (Agentenbasiertes RAG) — das LLM agiert als Agent: Es zerlegt komplexe Fragen, plant Iterationen und nutzt Werkzeuge (Vektorsuche, Websuche) mit Feedbackschleifen. Eine typische Implementierung ist das ReAct-Paradigma[11]; für weborientierte Datensammlung und obligatorische Quellenangaben siehe WebGPT[12].
Verwandte und sich entwickelnde Paradigmen
- GraphRAG (Graphbasiertes RAG) — nutzt einen Wissensgraphen als Quelle und Mechanismus zur Kontextermittlung; die Suche erfolgt entlang der Verbindungsstruktur zwischen Entitäten sowie im Text, was die Interpretierbarkeit und Qualität bei Multi-Hop-Fragen verbessert[13][14].
- MM-RAG (Multimodales RAG) — arbeitet mit textuellen und visuellen Quellen (Scans, Diagramme, Tabellen). Beispiel: VisRAG demonstriert VLM-orientiertes Retrieval und Generierung auf Basis multimodaler Dokumente[15].
- Kontext-Packaging — Methoden zur Integration der gefundenen Chunks in den Prompt: Stuff, Map-Reduce, Refine, Tree-of-Chunks (RAPTOR)[16].
Vergleichstabelle der Muster
| Muster | Anwendungsfall | Einfluss auf die Qualität | Kosten / Latenz | Risiken und Einschränkungen |
|---|---|---|---|---|
| Classic RAG | PoC und einfache Q&A-Systeme über einer homogenen Datenbasis | Grundniveau; stark abhängig von den Embeddings[1] | Niedrig | Empfindlichkeit gegenüber Formulierungen; Risiko von irrelevantem Kontext |
| Hybrid Retrieval | In den meisten Produktionsszenarien; viele Codes/Akronyme/IDs | Erhöht den Recall; deckt exakte Begriffe ab[5][6][7] | Niedrig/Mittel | Anpassung der Fusion-Gewichte; zwei Indizes erforderlich |
| Re-ranking | Kritisch, wenn hohe Präzision erforderlich ist | Signifikanter Anstieg der Precision bei Top-k[8][9] | Mittel/Hoch | Zusätzliche Latenz/Kosten |
| Multi-Query | Kurze oder vielschichtige Anfragen | Erhöht den Recall[3] | Mittel | Überflüssige/verrauschte Umformulierungen |
| HyDE | Kurze/mehrdeutige Anfragen mit großer „semantischer Lücke“ | Verbessert die Retrieval-Qualität im Zero-Shot-Szenario[4] | Mittel | Abhängig von der Qualität des „hypothetischen“ Textes |
| Query Routing | Mehrere Quellen (Dokumentenbasis, SQL, API, Web) | Erhöht die Relevanz durch Auswahl der korrekten Quelle[10] | Mittel | Fehlerhaftes Routing führt zum Scheitern der Suche |
| Agentic/Web RAG | Komplexe, explorative, mehrstufige Anfragen | Löst Aufgaben, die über eine lineare Pipeline hinausgehen[11][12] | Hoch | Komplexität, Risiko von Endlosschleifen; benötigt Guardrails |
Praktische Umsetzung und Architektur
Implementierungsphasen
- Proof of Concept (PoC): Beginnen Sie mit Classic RAG auf einem begrenzten, aber repräsentativen Datensatz, um die Qualität der Embeddings und das grundlegende Retrieval zu überprüfen[1].
- Minimum Viable Product (MVP): Implementieren Sie Hybrid Retrieval und Re-ranking als bestes Verhältnis von Aufwand zu Nutzen[5][8].
- Production: Fügen Sie Anfragetransformationen (HyDE, Multi-Query) und bei Bedarf Query Routing hinzu; richten Sie Observability (Protokollierung von Retrieval, Reranking, Antworten) und A/B-Tests ein[3][10].
Schlüsselkomponenten
- Chunking: Einer der kritischsten Faktoren für die Qualität. Eine naive feste Größe zerreißt oft semantische Einheiten. Empfohlen werden strukturbasierte (anhand des Markups) oder rekursive Splitter (Absatz → Satz → Wort)[17][18].
- Embeddings und Metadaten: Speichern Sie mit jedem Chunk die document_id, Seite/Abschnitt, Überschrift und Daten; dies ist für die Filterung und korrekte Quellenangabe unerlässlich.
- Hybrides Retrieval und Reranking: Verwenden Sie BM25 in Kombination mit Vektorsuche und Fusion (oder RRF), gefolgt von einem Cross-Encoder für das Reranking einer kleinen Menge von Kandidaten[5][6][8].
- Kontext-Packaging: Wählen Sie für umfangreiche Korpora Ansätze wie Map-Reduce, Refine oder Tree-of-Chunks[16][18].
Häufige Fehler (Anti-Muster)
- Ausschließlich Vektorsuche ohne BM25 → führt zu Fehlern bei Codes, IDs und Akronymen[5][7].
- Zu große oder zu kleine Chunks → führen zum Verlust von Kontext oder zur „Verwässerung“ des Embeddings[17].
- Fehlendes Reranking in der Produktion → das LLM erhält verrauschten Kontext[8].
- Fehlende Observability und Quellennachverfolgung → macht die Analyse von Fehlerursachen unmöglich (siehe RAG-Evaluierung).
Qualitätsbewertung und Metriken
Die Bewertung erfolgt auf der Ebene des Retrievals (offline) und End-to-End (Generierung).
Metriken für den Retriever
- Hit Rate, Recall@k, MRR — Abdeckung und Position relevanter Dokumente.
- Context Precision & Recall — gibt an, wie frei der abgerufene Kontext von irrelevanten Informationen ist und ob er alle notwendigen Informationen abdeckt (implementiert in RAGAS)[19].
Metriken für den Generator (End-to-End)
- Faithfulness / Groundedness — Übereinstimmung der Antwort mit dem bereitgestellten Kontext.
- Answer Relevancy (Antwortrelevanz) — Übereinstimmung mit der ursprünglichen Frage.
Zur Automatisierung dieser Metriken werden Open-Source-Frameworks wie RAGAS, TruLens (die RAG-Triade: context relevance, groundedness, answer relevance) und DeepEval verwendet[20][21].
Siehe auch
- Retrieval-Augmented Generation (RAG)
- Vektordatenbanken
- Embedding
- KI-Agent
- GraphRAG
- MM-RAG
- Bewertung und Benchmarks von LLMs
Literatur
- Lewis, P., Perez, E., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
- Fan, W., Ding, Y., et al. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models. KDD. DOI:10.1145/3637528.3671470; arXiv:2405.06211.
- Gao, L., Ma, X., Lin, J., Callan, J. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE). ACL 2023. ACL Anthology; arXiv:2212.10496.
- Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- Weaviate Docs. Hybrid search (BM25+Vector). [1].
- Qdrant Docs. Hybrid Queries. [2].
- Milvus Docs. Full‑Text Search / Hybrid Search. [3] / [4].
- LangChain Docs. MultiQueryRetriever. [5].
- Cohere Docs. Rerank — best practices. [6].
- LlamaIndex Docs. Routing (query routers/selectors). [7].
- Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR. arXiv:2210.03629.
- Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
- Microsoft Research Blog. GraphRAG: Unlocking LLM discovery on narrative private data. (2024). [8].
- Microsoft Research. Project GraphRAG. (2024). [9].
- Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594.
- Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
- Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). [10].
- TruLens Docs. RAG Triad. [11].
- DeepEval (GitHub). The LLM Evaluation Framework. [12].
- LangChain Docs. RecursiveCharacterTextSplitter. [13].
- LlamaIndex Docs. HierarchicalNodeParser; Response Synthesis (Tree/Refine). [14]; [15].
Einzelnachweise
- ↑ 1.0 1.1 1.2 1.3 Lewis, P., Perez, E., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
- ↑ Fan, W., Ding, Y., et al. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models. KDD. DOI:10.1145/3637528.3671470; arXiv:2405.06211.
- ↑ 3.0 3.1 3.2 LangChain Docs. MultiQueryRetriever. https://python.langchain.com/docs/how_to/MultiQueryRetriever/
- ↑ 4.0 4.1 Gao, L., Ma, X., Lin, J., Callan, J. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels. ACL 2023. arXiv:2212.10496; ACL Anthology: 2023.acl‑long.99.
- ↑ 5.0 5.1 5.2 5.3 5.4 Weaviate Docs. Hybrid search (BM25+Vector). https://docs.weaviate.io/weaviate/concepts/search/hybrid-search
- ↑ 6.0 6.1 6.2 Qdrant Docs. Hybrid Queries. https://qdrant.tech/documentation/concepts/hybrid-queries/
- ↑ 7.0 7.1 7.2 Milvus Docs. Full‑Text Search und Hybrid Search. https://milvus.io/docs/full-text-search.md; https://milvus.io/docs/hybrid_search_with_milvus.md
- ↑ 8.0 8.1 8.2 8.3 8.4 Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- ↑ 9.0 9.1 Cohere Docs. Rerank — best practices. https://docs.cohere.com/docs/reranking-best-practices
- ↑ 10.0 10.1 10.2 LlamaIndex Docs. Routing (query routers/selectors). https://docs.llamaindex.ai/en/stable/module_guides/querying/router/
- ↑ 11.0 11.1 Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629.
- ↑ 12.0 12.1 Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
- ↑ Microsoft Research Blog. GraphRAG: Unlocking LLM discovery on narrative private data. 2024. https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
- ↑ Microsoft Research. Project GraphRAG. https://www.microsoft.com/en-us/research/project/graphrag/
- ↑ Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594; OpenReview: zG459X3Xge.
- ↑ 16.0 16.1 Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
- ↑ 17.0 17.1 LangChain Docs. RecursiveCharacterTextSplitter. https://python.langchain.com/docs/how_to/recursive_text_splitter/
- ↑ 18.0 18.1 LlamaIndex Docs. HierarchicalNodeParser und Tree Summarization. https://docs.llamaindex.ai/en/stable/api/llama_index.core.node_parser.HierarchicalNodeParser.html; https://docs.llamaindex.ai/en/stable/examples/low_level/response_synthesis/
- ↑ Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). https://aclanthology.org/2024.eacl-demo.16/
- ↑ TruLens Docs. RAG Triad. https://www.trulens.org/getting_started/core_concepts/rag_triad/
- ↑ DeepEval (GitHub). https://github.com/confident-ai/deepeval