Bauen Sie Retrieval-Augmented-Generation-Systeme, die in der Produktion tatsächlich funktionieren. Von Architekturentscheidungen bis zu Evaluierungs-Frameworks deckt dieser Leitfaden alles ab, was Sie zum Ausliefern zuverlässiger RAG-Systeme brauchen.
Retrieval-Augmented Generation (RAG) ist ein Architekturmuster, das große Sprachmodelle erweitert, indem es ihnen relevanten Kontext aus externen Wissensquellen bereitstellt. Anstatt sich ausschließlich auf die Trainingsdaten des Modells zu verlassen, ruft RAG zur Inferenzzeit relevante Dokumente ab und nutzt sie, um die Antworten des Modells zu fundieren.
Dieser Ansatz löst mehrere grundlegende Einschränkungen von LLMs:
RAG-Systeme sind jedoch nur so gut wie ihre Implementierung. Schlechtes Chunking, unzureichendes Retrieval oder unpassende Prompts können zu Systemen führen, die genauso stark halluzinieren wie reine LLMs — jedoch mit falscher Zuversicht. Dieser Leitfaden behandelt die Muster, die funktionieren.
Ein produktives RAG-System besteht aus sechs Kernkomponenten, jede mit eigenen Optimierungsüberlegungen. Das Verständnis dieser Komponenten ist entscheidend für den Bau skalierbarer Systeme.
Quelldokumente verschiedener Formate laden und vorverarbeiten
Dokumente in semantisch sinnvolle Chunks aufteilen
Textchunks in dichte Vektordarstellungen umwandeln
Embeddings für effizientes Retrieval speichern und indexieren
Relevante Chunks für eine gegebene Anfrage finden
Antworten anhand des abgerufenen Kontexts generieren
Trennen Sie bei Produktionssystemen Ihre Ingestion-Pipeline von Ihrer Query-Pipeline. Die Ingestion kann asynchron laufen (Batch-Verarbeitung, Queues), während Anfragen eine synchrone Ausführung mit niedriger Latenz benötigen. Diese Trennung ermöglicht unabhängige Skalierung.
Chunking ist beim RAG oft die entscheidende Weichenstellung. Schlechtes Chunking führt zu irrelevanten Retrievals und unvollständigem Kontext. Die richtige Strategie hängt von Ihren Dokumenttypen und Anfragemustern ab.
| Strategie | Am besten für | Kompromisse | Komplexität |
|---|---|---|---|
| Feste Größe | Einfache Dokumente, einheitliche Struktur | Kann semantische Einheiten zerteilen | Low |
| Satzbasiert | Inhalte in natürlicher Sprache | Variable Chunk-Größen | Medium |
| Semantisch | Komplexe Dokumente, vielfältige Themen | Höhere Rechenkosten | High |
| Hierarchisch | Lange Dokumente, mehrstufiges Retrieval | Komplexe Implementierung | High |
Embeddings wandeln Text in numerische Vektoren um, die die semantische Bedeutung erfassen. Die Wahl des richtigen Embedding-Modells und der richtigen Vektordatenbank beeinflusst Retrieval-Qualität, Latenz und Kosten.
| Modell | Dimensionen | Leistung | Kosten | Anmerkungen |
|---|---|---|---|---|
| OpenAI text-embedding-3-large | 3072 | Exzellent | $$ | Beste Gesamtqualität, unterstützt Dimensionsreduktion |
| Cohere embed-v3 | 1024 | Sehr gut | $$ | Mehrsprachig, Kompressionsoptionen |
| Voyage AI | 1024 | Exzellent | $$$ | Domänenspezifische Modelle verfügbar |
| BGE-large | 1024 | Gut | Free | Open Source, selbst gehostete Option |
| Mistral Embed | 1024 | Sehr gut | $ | Europäischer Anbieter, DSGVO-freundlich |
Schneller Start, verwaltete Infrastruktur
Hybride Suche, GraphQL-API
Leistung, feingranulares Filtern
Entwicklung, Prototyping
Bestehende Postgres-Infrastruktur
Die einfache semantische Suche ist nur der Ausgangspunkt. Produktionssysteme nutzen mehrere Retrieval-Strategien, um die Relevanz zu maximieren.
Kombinieren Sie dichte Vektorsuche mit spärlicher Schlüsselwortsuche (BM25). Dies erfasst sowohl semantische Treffer als auch exakte Schlüsselworttreffer, die die Vektorsuche übersehen könnte.
Verwenden Sie ein Cross-Encoder-Modell, um die anfänglichen Retrieval-Ergebnisse neu zu ordnen. Teurer, verbessert jedoch die Relevanz der Top-k-Ergebnisse erheblich.
Verwenden Sie ein LLM, um mehrere Query-Varianten zu generieren oder komplexe Anfragen in Teilanfragen zu zerlegen. Rufen Sie für jede ab und führen Sie die Ergebnisse zusammen.
Filtern Sie vor der Vektorsuche nach Metadaten (Datum, Quelle, Kategorie) vor. Unverzichtbar für große Dokumentsammlungen und mandantenfähige Systeme.
Die Generierungsphase synthetisiert den abgerufenen Kontext zu einer kohärenten Antwort. Prompt-Engineering und Kontext-Formatierung sind für die Qualität entscheidend.
Selbst mit Kontextfenstern von 128k+ ist mehr Kontext nicht immer besser. Studien zeigen, dass LLMs mit Informationen in der „Mitte" langer Kontexte Schwierigkeiten haben. Beschränken Sie den abgerufenen Kontext auf 3-5 hochrelevante Chunks und nutzen Sie Reranking, um Qualität vor Quantität zu stellen.
Man kann nicht verbessern, was man nicht misst. Produktive RAG-Systeme benötigen eine kontinuierliche Evaluierung über mehrere Dimensionen hinweg.
| Metrik | Beschreibung | Zielwert | Wie messen |
|---|---|---|---|
| Retrieval-Präzision | % der abgerufenen Chunks, die relevant sind | > 80% | Manuelles Labeln der Retrieval-Ergebnisse |
| Retrieval-Recall | % der relevanten Chunks, die abgerufen werden | > 90% | Vergleich mit Ground-Truth-Datensatz |
| Antwortrelevanz | Wie gut die Antwort die Anfrage adressiert | > 85% | LLM-as-Judge oder menschliche Bewertung |
| Treue | Antwort ist im abgerufenen Kontext fundiert | > 95% | Extraktion und Verifizierung von Aussagen |
| Latenz (P95) | End-to-End-Antwortzeit | < 3s | Leistungsüberwachung |
Open-Source-Framework zur RAG-Evaluierung mit Metriken für Treue, Relevanz und Kontext-Recall.
Produktive Observability mit Tracing, Evaluierungen und Prompt-Versionierung.
Der Schritt vom Prototyp zur Produktion erfordert, Zuverlässigkeit, Sicherheit und betriebliche Belange zu adressieren.
Über das grundlegende RAG hinaus adressieren diese Muster spezifische Anwendungsfälle und verschieben die Grenzen des Möglichen.
Verwenden Sie eine Agentenschleife, um das Retrieval iterativ zu verfeinern. Der Agent kann entscheiden, wann gesucht wird, wonach gesucht wird und wann er genug Kontext zum Antworten hat.
Am besten für komplexe, mehrstufige FragenBauen Sie einen Wissensgraphen aus Dokumenten und durchlaufen Sie Beziehungen während des Retrievals. Ermöglicht Multi-Hop-Schlussfolgern und entitätenzentrierte Anfragen.
Am besten für strukturierte Domänen mit BeziehungenTrainieren oder prompten Sie das Modell, um zu entscheiden, wann Retrieval nötig ist, die Retrieval-Relevanz zu bewerten und generierte Antworten selbst zu kritisieren.
Reduziert unnötige RetrievalsBewerten Sie die Retrieval-Qualität und greifen Sie auf Websuche oder andere Quellen zurück, wenn internes Wissen unzureichend oder unzuverlässig ist.
Verbessert die Abdeckung von Randfällen