Zum Inhalt springen

Sprache wählen

Aktuelle Sprache: Deutsch

RAG

Source: https://github.com/Danielskry/Awesome-RAG at df26ec74630a
License: CC0-1.0
Read the English original

This edition is an AI-assisted translation.

😎 Ausgewählte Ressourcen zu Retrieval-Augmented Generation (RAG)

Abschnitt betitelt „😎 Ausgewählte Ressourcen zu Retrieval-Augmented Generation (RAG)“

Awesome Ask DeepWiki Awesome-RAG Agent Plugin

Eine kuratierte Übersicht über Tools, Frameworks, Techniken und Lernmaterialien zum Aufbau von Retrieval-Augmented-Generation-(RAG-)Systemen. Dieses Repository katalogisiert das RAG-Ökosystem und verlinkt maßgebliche Quellen, Tutorials und Implementierungen, damit Sie RAG-Anwendungen erkunden und erstellen können.

Auch als Agent-Plugin verfügbar für VS Code, GitHub Copilot CLI und Claude Code.

Retrieval-Augmented Generation (RAG) ist eine ausgefeilte Technik der generativen KI, die Large Language Models (LLMs) erweitert, indem sie während der Generierung dynamisch relevanten Kontext aus externen Wissensquellen abruft und einbezieht. Anders als herkömmliche LLMs, die ausschließlich auf vortrainiertem Wissen beruhen, können RAG-Systeme auf aktuelle, domänenspezifische oder proprietäre Informationen zugreifen. Das verbessert die Genauigkeit deutlich, verringert Halluzinationen und ermöglicht die Integration von Wissen in Echtzeit.

  • Weniger Halluzinationen: Verankert Antworten in abgerufenen Fakten
  • Anpassung an die Domäne: Ermöglicht LLMs den Einsatz von Fachwissen ohne Fine-Tuning
  • Aktualisierungen in Echtzeit: Bindet aktuelle Informationen ohne erneutes Modelltraining ein
  • Kosteneffizienz: Wirtschaftlicher als Fine-Tuning für domänenspezifische Aufgaben
  • Transparenz: Gibt Quellen für generierte Inhalte an
  • Datenschutz und Sicherheit: Hält sensible Daten in privaten Wissensdatenbanken

RAG adressiert eine grundlegende Einschränkung von LLMs: ihren statischen Wissensstand und die fehlende Möglichkeit, auf externe Informationen zuzugreifen. Herkömmliche RAG-Implementierungen ergänzen LLM-Prompts über eine Retrieval-Pipeline um kontextrelevante Dokumente aus einer Wissensdatenbank. Bei einer Frage zu Renovierungsmaterialien für ein bestimmtes Haus kennt ein LLM beispielsweise möglicherweise allgemeine Renovierungsregeln, aber keine Details zu diesem Objekt. Ein RAG-System kann passende Dokumente (etwa Baupläne, Materialspezifikationen und örtliche Bauvorschriften) abrufen und so eine genaue, kontextbezogene Antwort liefern.

  • Vollständige grundlegende RAG-Implementierung in Python: Durchgängiges RAG-Beispiel mit LangChain und Chroma

  • LangChain RAG Tutorial: Umfassende Anleitung zum Erstellen von RAG-Anwendungen

  • LlamaIndex RAG Tutorial: Einstieg in LlamaIndex für RAG

  • Haystack RAG Pipeline: Erstellen von RAG-Pipelines mit Haystack

  • RAG Techniques: Umfassende Open-Source-Sammlung fortgeschrittener Retrieval-Augmented-Generation-Techniken als ausführbare Jupyter-Notebooks.

  • RAG Interview System: RAG-gestütztes System zur Vorbereitung auf Vorstellungsgespräche mit 418 kuratierten Frage-Antwort-Paaren (Grundlagen bis Fortgeschrittene), die 29 RAG-Architekturmuster abdecken.

  • Search with Jev and Milvus: Neun ausführbare Python-Notebooks, die Gemini-Embeddings, Milvus-Retrieval und Jev-Bewertungen für Reranking, Kontextfilterung, Abbruch der Suche, Routing, Wiederverwendung des Caches, Kuratierung, Schutzmechanismen und Evaluierung kombinieren.

RAG-Systeme können je nach Anforderungen mit verschiedenen Mustern entworfen werden:

  • Naive RAG: Einfache Abruf-und-Generierungs-Pipeline ohne Optimierung
  • Advanced RAG: Bezieht Query-Rewriting, Reranking und Kontextkomprimierung ein
  • Modular RAG: Kombinierbare Komponenten für Retrieval, Ranking und Generierung
  • Agentic RAG: Von LLMs gesteuerte Agenten, die dynamisch über Retrieval entscheiden
  • Self-RAG: Modelle, die die Retrieval-Qualität selbst reflektieren und Strategien anpassen
  • Graph RAG: Nutzt Wissensgraphen für den strukturierten Informationsabruf
  • Reasoning-Based RAG: Nutzt mehrstufiges LLM-Reasoning, um den Abruf zu planen, zu navigieren und auszuführen

RAG-Implementierungen reichen vom einfachen Abruf von Dokumenten bis zu fortgeschrittenen Techniken mit iterativen Feedbackschleifen, Multi-Agenten-Systemen und domänenspezifischen Erweiterungen. Zu den modernen Ansätzen gehören:

  • Vision-RAG: Bettet ganze Seiten als Bilder ein, sodass Vision-Modelle direkt schlussfolgern können, ohne Text-RAG zu parsen.
  • Cache-Augmented Generation (CAG): Lädt relevante Dokumente vorab in den Modellkontext und speichert den Inferenzzustand (Key-Value-Cache, KV-Cache).
  • Agentic RAG: Auch als Retrieval-Agenten bekannt; sie können Entscheidungen über Suchprozesse treffen.
  • A-RAG: Agentisches RAG mit hierarchischen Retrieval-Schnittstellen (Schlüsselwort-, semantische und Chunk-Ebene), über die LLM-Agenten selbstständig mit unterschiedlicher Granularität suchen und Inhalte abrufen können. (Paper)
  • Corrective RAG (CRAG): Methoden, um abgerufene Informationen vor der Einbindung in LLM-Antworten zu korrigieren oder zu verfeinern.
  • Retrieval-Augmented Fine-Tuning (RAFT): Techniken zur gezielten Feinabstimmung von LLMs für verbesserte Retrieval- und Generierungsaufgaben.
  • Self Reflective RAG: Modelle, die Retrieval-Strategien dynamisch anhand von Leistungsfeedback anpassen.
  • RAG Fusion: Techniken, die mehrere Retrieval-Methoden kombinieren, um den Kontext besser zu integrieren.
  • Temporal Augmented Retrieval (TAR): Berücksichtigt zeitkritische Daten beim Retrieval.
  • Plan-then-RAG (PlanRAG): Strategien mit einer Planungsphase vor der RAG-Ausführung bei komplexen Aufgaben.
  • GraphRAG: Ein strukturierter Ansatz mit Wissensgraphen für eine bessere Kontextintegration und Schlussfolgerung.
  • Code-Graph-RAG: Ein Knowledge-Graph-RAG-System zur Analyse mehrsprachiger Codebasen.
  • FLARE - Ein Ansatz, der aktive Retrieval-Augmented Generation einsetzt, um die Antwortqualität zu verbessern.
  • GNN-RAG: Graph-neuronales Retrieval für das Reasoning großer Sprachmodelle.
  • Multimodal RAG: Erweitert RAG auf mehrere Modalitäten wie Text, Bilder und Audio.
  • VideoRAG: Erweitert RAG mithilfe großer Video-Sprachmodelle (LVLMs) auf Videos, um visuelle und textuelle Inhalte für die multimodale Generierung abzurufen und zu integrieren.
  • REFRAG: Optimiert das RAG-Decoding, indem abgerufener Kontext vor der Generierung in Embeddings komprimiert wird. So sinkt die Latenz bei gleichbleibender Ausgabequalität.
  • InstructRAG: Verbessert die Retrieval- und Generierungsqualität von RAG-Systemen durch instruktionsbasiertes Fine-Tuning mit selbst synthetisierten Begründungen.
  • PageIndex: Vektorloses, reasoning-basiertes RAG-Framework: Es erstellt hierarchische Dokumentbäume und sucht darin LLM-gestützt statt über Embeddings und Vektorähnlichkeit. Chunking und Vektordatenbanken entfallen; zugleich ermöglicht es erklärbares, kontextbezogenes Retrieval für komplexe Fachdokumente.
  • Haystack: LLM-Orchestrierungsframework zum Erstellen anpassbarer, produktionsreifer LLM-Anwendungen.
  • LangChain: Universelles Framework für die Arbeit mit LLMs.
  • Semantic Kernel: Ein SDK von Microsoft zur Entwicklung generativer KI-Anwendungen.
  • LlamaIndex: Framework, das benutzerdefinierte Datenquellen mit LLMs verbindet.
  • Dify: Open-Source-Plattform zur Entwicklung von LLM-Anwendungen.
  • Verba: Sofort einsatzbereite Open-Source-Anwendung für RAG.
  • Mastra: TypeScript-Framework zum Erstellen von KI-Anwendungen.
  • Letta: Open-Source-Framework zum Erstellen zustandsbehafteter LLM-Anwendungen.
  • Flowise: Drag-and-drop-Oberfläche zum Erstellen maßgeschneiderter LLM-Abläufe.
  • Kreuzberg: Mehrsprachige Bibliothek für Dokumentenintelligenz (Rust-Kern mit Python-, TypeScript- und Go-Anbindungen), die Text, Tabellen und Metadaten aus mehr als 62 Dokumentformaten für RAG-Aufnahmepipelines extrahiert.
  • Swiftide: Rust-Framework zum Erstellen modularer, streamender LLM-Anwendungen.
  • CocoIndex: ETL-Framework zur Datenindizierung für KI, etwa RAG, mit inkrementellen Aktualisierungen in Echtzeit.
  • Pathway: Leistungsfähiges Open-Source-Python-ETL-Framework mit Rust-Laufzeitumgebung, das mehr als 300 Datenquellen unterstützt.
  • Pathway AI Pipelines: Produktionsreifes RAG-Framework mit Echtzeitindizierung, Retrieval und Änderungsverfolgung über vielfältige Datenquellen hinweg.
  • LiteLLM: Einheitliche Schnittstelle für mehrere LLM-Anbieter (OpenAI, Anthropic, Hugging Face, Replicate) mit Protokollierung, Monitoring und Kostenverfolgung.
  • Agentset: Produktionsreife Open-Source-RAG-Plattform mit integriertem agentischem Reasoning, hybrider Suche und multimodaler Unterstützung.
  • OpenAgent: Open-Source-Plattform für persönliche KI-Assistenten, die LLMs, eine RAG-Wissensdatenbank und autonome Agentenschleifen mit Browser-Nutzung, Shell-Ausführung und MCP-Tool-Unterstützung kombiniert.
  • Local Deep Research: Lokal ausgerichtetes Framework für tiefgehende agentische Recherche mit Retrieval aus mehreren Quellen (Web, arXiv, PubMed, private Dokumente) und mehr als 20 Recherche-Strategien.

Python bietet derzeit das ausgereifteste RAG-Ökosystem mit umfassender Unterstützung für LLMs, Embeddings, Vektordatenbanken, Evaluierung und Produktivwerkzeuge.

Vollständige Anleitung: Python-Ökosystem für RAG

  • Data cleaning techniques: Vorverarbeitungsschritte zur Bereinigung der Eingabedaten und Verbesserung der Modellleistung.

Die Chunking-Strategie gehört zu den wichtigsten Entscheidungen beim Entwurf eines RAG-Systems und wirkt sich direkt auf Retrieval-Präzision und Kontextqualität aus. Der optimale Ansatz hängt von Dokumenttypen, Domänenmerkmalen und Abfragemustern ab.

  • Fixed-Size Chunking

    • Anwendungsfall: Einfache Dokumente, bei denen die Struktur weniger wichtig ist
    • Merkmale: Teilt Text in gleich große Abschnitte (meist 256–512 Token) mit einstellbarer Überlappung von 10–20 %
    • Vorteile: Einfach umzusetzen, vorhersehbare Chunk-Größen, effiziente Verarbeitung
    • Nachteile: Kann Sätze und Absätze trennen, die Dokumentstruktur verlieren und semantische Einheiten zerlegen
    • Umsetzung: CharacterTextSplitter (LangChain), SentenceSplitter (LlamaIndex)
  • Recursive Chunking

    • Anwendungsfall: Dokumente mit hierarchischer Struktur (Markdown, HTML, Code)
    • Merkmale: Teilt rekursiv an Trennzeichen (Absätze → Sätze → Wörter), bis die Zielgröße erreicht ist
    • Vorteile: Bewahrt natürliche Grenzen und Dokumenthierarchie und verbessert den semantischen Zusammenhang
    • Nachteile: Komplexer, variable Chunk-Größen und sorgfältig zu konfigurierende Trennzeichen
    • Umsetzung: RecursiveCharacterTextSplitter (LangChain)
  • Document-Based Chunking

    • Anwendungsfall: Strukturierte Dokumente mit klaren Abschnitten (Markdown-Überschriften, PDF-Abschnitte, Datenbankeinträge)
    • Merkmale: Unterteilt anhand von Dokumentmetadaten, Formatierungshinweisen oder Strukturelementen
    • Vorteile: Bewahrt die Dokumentstruktur und den Kontext und ermöglicht metadatenreiches Retrieval
    • Nachteile: Erfordert strukturierte Eingaben und kann sehr große oder sehr kleine Chunks erzeugen
    • Umsetzung: MarkdownHeaderTextSplitter (LangChain)
    • Multimodal: Verarbeitet Bilder und Text mit Modellen wie OpenCLIP
  • Semantic Chunking

    • Anwendungsfall: Dokumente, bei denen semantischer Zusammenhang entscheidend ist (Erzählungen, technische Dokumentation)
    • Merkmale: Nutzt die Ähnlichkeit von Embeddings, um natürliche semantische Grenzen zu erkennen
    • Vorteile: Bewahrt semantische Einheiten, passt sich dem Inhalt an und verbessert die Relevanz des Retrievals
    • Nachteile: Rechenintensiv, benötigt ein Embedding-Modell und führt zu weniger vorhersehbaren Chunk-Größen
    • Am besten geeignet für: Hochwertiges Retrieval, bei dem die Bewahrung des Kontexts entscheidend ist
  • Agentic Chunking

    • Anwendungsfall: Komplexe Dokumente, die intelligente Segmentierungsentscheidungen erfordern
    • Merkmale: Analysiert Inhalte mit LLMs und bestimmt optimale Chunk-Grenzen
    • Vorteile: Sehr anpassungsfähig, versteht den Kontext und kann Domänenwissen anwenden
    • Nachteile: Hohe Kosten, langsamere Verarbeitung und Zugriff auf eine LLM-API erforderlich
    • Am besten geeignet für: Spezialisierte Domänen, in denen standardmäßiges Chunking nicht ausreicht
  • Adaptive Chunking

    • Anwendungsfall: Gemischte Dokumentsammlungen, in denen unterschiedliche Dokumente von verschiedenen Aufteilungsstrategien profitieren
    • Merkmale: Bewertet mehrere Chunking-Methoden anhand intrinsischer Metriken und wählt für jedes Dokument die beste Methode aus
    • Vorteile: Flexibler als eine Einheitslösung, bewahrt Struktur und semantischen Zusammenhang und unterstützt benutzerdefinierte Splitter und Metriken
    • Nachteile: Erhöht gegenüber festem oder rekursivem Chunking den Evaluierungsaufwand und die Implementierungskomplexität

Best Practices für Chunking:

  • Überlappungsstrategie: Verwenden Sie eine Überlappung von 10–20 %, um den Kontext über Chunk-Grenzen hinweg zu erhalten
  • Größenoptimierung: Stimmen Sie die Chunk-Größe ab (größer = mehr Kontext, kleiner = höhere Präzision)
  • Bewahrung von Metadaten: Bewahren Sie Dokumentstruktur, Überschriften und Formatierung in den Chunk-Metadaten
  • Mehrere Granularitätsebenen: Ziehen Sie hierarchische Ansätze in Betracht (kleine Chunks für das Retrieval, größere für den Kontext)

Embeddings bilden die Grundlage der semantischen Suche in RAG-Systemen. Die Wahl des Embedding-Modells beeinflusst die Retrieval-Qualität erheblich.

  • Modellauswahl

    • MTEB Leaderboard: Umfassender Benchmark zur Bewertung von Embedding-Modellen über mehrere Aufgaben und Sprachen hinweg. Wählen Sie Modelle, die bei für Ihren Anwendungsfall relevanten Aufgaben (Retrieval, Clustering, Klassifikation) gut abschneiden.
    • Modelleigenschaften: Bewerten Sie Modelle anhand der folgenden Kriterien:
      • Dimensionen: Höhere Dimensionen (768–1024) liefern meist bessere Qualität, erhöhen aber Speicher- und Rechenkosten
      • Kontextlänge: Stellen Sie sicher, dass das Modell Ihre Dokument-Chunk-Größen unterstützt
      • Mehrsprachige Unterstützung: Für internationale Anwendungen erforderlich
      • Domänenspezialisierung: Allzweck- oder domänenspezifische Modelle (z. B. Wissenschaft, Recht, Medizin)
  • Benutzerdefinierte Embeddings

    • Fine-Tuning: Passen Sie vortrainierte Modelle mit kontrastivem Lernen, Triplet-Loss oder überwachtem Fine-Tuning an Ihre Domäne an
    • Training von Grund auf: Für hochspezialisierte Domänen mit ausreichend gelabelten Daten
    • Multimodale Embeddings: Für Anwendungen, die Text, Bilder oder Audio verstehen müssen (z. B. CLIP, ImageBind)
    • Ensemble-Methoden: Kombinieren Sie mehrere Embedding-Modelle, um die Robustheit zu verbessern
  • Suchmethoden
    • Vector Store Flat Index
      • Einfache und effiziente Form des Retrievals.
      • Inhalte werden vektorisiert und als flache Inhaltsvektoren gespeichert.
    • Hierarchical Index Retrieval
      • Schränkt Daten hierarchisch auf verschiedene Ebenen ein.
      • Führt das Retrieval in hierarchischer Reihenfolge aus.
    • Hypothetical Questions
      • Erhöht die Ähnlichkeit zwischen Datenbank-Chunks und Abfragen (ebenso wie HyDE).
      • Ein LLM generiert spezifische Fragen für jeden Text-Chunk.
      • Wandelt diese Fragen in Vektor-Embeddings um.
      • Gleicht bei der Suche Abfragen mit diesem Index aus Fragenvektoren ab.
    • Hypothetical Document Embeddings (HyDE)
      • Erhöht die Ähnlichkeit zwischen Datenbank-Chunks und Abfragen (ebenso wie Hypothetical Questions).
      • Ein LLM generiert anhand der Abfrage eine hypothetische Antwort.
      • Wandelt diese Antwort in ein Vektor-Embedding um.
      • Vergleicht den Abfragevektor mit dem Vektor der hypothetischen Antwort.
    • Small to Big Retrieval
      • Verbessert das Retrieval, indem kleinere Chunks für die Suche und größere für den Kontext verwendet werden.
      • Kleinere untergeordnete Chunks verweisen auf größere übergeordnete Chunks.
    • Contextual Retrieval
      • Verbessert die Retrieval-Genauigkeit von RAG, indem der Dokumentkontext bewahrt wird, der beim Chunking üblicherweise verloren geht.
      • Jeder Text-Chunk wird vor dem Erstellen von Embeddings und der Indexierung um eine kurze, modellgenerierte Zusammenfassung ergänzt. So entstehen Contextual Embeddings und Contextual BM25.
      • In Kombination mit Reranking verbessert dieser Ansatz sowohl den semantischen als auch den lexikalischen Abgleich und verringert fehlgeschlagene Abrufe.
    • Adaptive Retrieval
      • Entscheidet während der Generierung dynamisch, wann und wie viele Informationen abgerufen werden.
    • Query Reformulation and Expansion
      • Formuliert Abfragen vor dem Retrieval automatisch um oder erweitert sie, um den Recall zu erhöhen.
      • Nützlich bei langen oder mehrdeutigen Benutzerabfragen.
  • Re-ranking: Verbessert Suchergebnisse in RAG-Pipelines, indem zunächst abgerufene Dokumente neu geordnet und die semantisch relevantesten für die Abfrage priorisiert werden.

Urteilsmodelle treffen begrenzte semantische Entscheidungen über abgerufene Inhalte, Abfragen, generierte Antworten oder den Pipeline-Status. Anders als generative LLMs können sie als programmierbare Entscheidungspunkte in RAG-Pipelines für Reranking, Filterung, Routing, Verifizierung und Evaluierung dienen.

  • Jev: Das System-One-Modell von TypeSafe AI für schnelle, typisierte Entscheidungen. In RAG kann es Reranking, Filterung, Routing, Verifizierung, Schutzmechanismen und Evaluierung unterstützen.
  • AnyJev: Macht aus offenen LLMs typisierte Entscheidungsmodelle im Jev-Stil, mit Bias-Korrektur ohne Labels und optionaler Kalibrierung für Entscheidungen mit Schwellenwerten.

Hochwertige, sichere und zuverlässige Antworten sind für RAG-Systeme im Produktivbetrieb entscheidend.

  • Eindämmung von Halluzinationen

    • Detection Techniques: Setzen Sie Methoden ein, um unbelegte Aussagen in Modellantworten zu erkennen
    • Überprüfung der Fundierung: Gleichen Sie generierte Aussagen mit dem abgerufenen Kontext ab
    • Konfidenzbewertung: Weisen Sie generierten Antworten anhand der Quellenqualität Konfidenzwerte zu
    • Quellenangaben: Verlangen Sie Belege für alle sachlichen Aussagen
    • Retrieval-Qualität: Verbessern Sie die Retrieval-Präzision, um das Halluzinationsrisiko zu senken
  • Schutzmechanismen und Sicherheit

    • Implementation Guide: Umfassender Ansatz zur Implementierung von Sicherheitsmechanismen
    • Inhaltsmoderation: Filtern Sie schädliche, voreingenommene oder unangemessene Inhalte bei Eingabe und Ausgabe
    • Eindämmung von Verzerrungen: Erkennen und mindern Sie Verzerrungen in abgerufenen Inhalten und generierten Antworten
    • Faktenprüfung: Überprüfen Sie Aussagen anhand maßgeblicher Quellen oder Wissensdatenbanken
    • Erkennung toxischer Inhalte: Verwenden Sie Klassifikatoren, um toxische Inhalte zu erkennen und zu filtern
  • Schutz vor Prompt-Injection

    • Security Guide: Prompt-Injection-Angriffe verstehen und verhindern
    • Eingabevalidierung: Validieren und bereinigen Sie alle externen Eingaben streng mithilfe von Allowlisting, Längenbegrenzungen und Musterabgleichen
    • Inhaltstrennung: Verwenden Sie eindeutige Trennzeichen, Vorlagensysteme und rollenbasierte Prompts, um Anweisungen von Benutzerdaten zu trennen
    • Ausgabeüberwachung: Überwachen Sie Antworten fortlaufend auf Anomalien, unerwartetes Verhalten oder Sicherheitsverstöße
    • Ratenbegrenzung: Setzen Sie Ratenbegrenzungen und Missbrauchserkennung ein, um systematische Angriffe zu verhindern
    • Sandboxing: Isolieren Sie LLM-Ausführungsumgebungen, um mögliche Schäden durch erfolgreiche Injections zu begrenzen

Diese Metriken messen die Ähnlichkeit zwischen Embeddings und sind entscheidend, um zu bewerten, wie effektiv RAG-Systeme externe Dokumente oder Datenquellen abrufen und integrieren. Mit passenden Ähnlichkeitsmetriken lassen sich Leistung und Genauigkeit eines RAG-Systems optimieren. Alternativ können Sie maßgeschneiderte Metriken für Ihre Domäne entwickeln, um spezifische Nuancen abzubilden und die Relevanz zu verbessern.

  • Cosine Similarity

    • Misst den Kosinus des Winkels zwischen zwei Vektoren in einem mehrdimensionalen Raum.
    • Besonders wirksam beim Vergleich von Text-Embeddings, deren Vektorrichtung semantische Informationen repräsentiert.
    • Wird in RAG-Systemen häufig verwendet, um die semantische Ähnlichkeit von Abfrage- und Dokument-Embeddings zu messen.
  • Dot Product

    • Berechnet die Summe der Produkte korrespondierender Einträge zweier Zahlenfolgen.
    • Bei normalisierten Vektoren entspricht es der Kosinusähnlichkeit.
    • Einfach und effizient; wird bei Berechnungen großen Umfangs oft hardwarebeschleunigt eingesetzt.
  • Euclidean Distance

    • Berechnet die geradlinige Entfernung zwischen zwei Punkten im euklidischen Raum.
    • Kann mit Embeddings verwendet werden, verliert in hochdimensionalen Räumen jedoch möglicherweise durch den „Fluch der Dimensionalität“ an Aussagekraft.
    • Wird nach einer Dimensionsreduktion häufig in Cluster-Algorithmen wie K-Means eingesetzt.
  • Jaccard Similarity

    • Misst die Ähnlichkeit zweier endlicher Mengen als Größe ihres Schnitts geteilt durch die Größe ihrer Vereinigung.
    • Nützlich beim Vergleich von Token-Mengen, etwa in Bag-of-Words-Modellen oder bei n-Gramm-Vergleichen.
    • Für kontinuierliche, von LLMs erzeugte Embeddings weniger geeignet.

Hinweis: Kosinusähnlichkeit und Skalarprodukt gelten allgemein als die wirksamsten Metriken zur Messung der Ähnlichkeit hochdimensionaler Embeddings.

Bei der Antwortbewertung in RAG-Lösungen wird die Qualität der Ausgaben von Sprachmodellen anhand verschiedener Metriken beurteilt. Hier sind strukturierte Ansätze für diese Bewertung:

  • Automatisiertes Benchmarking

    • BLEU: Bewertet die Überschneidung von n-Grammen zwischen maschinell erzeugten und Referenzausgaben und gibt Aufschluss über die Präzision.
    • ROUGE: Misst den Recall, indem n-Gramme, Skip-Bigramme oder die längste gemeinsame Teilsequenz mit Referenzausgaben verglichen werden.
    • METEOR: Berücksichtigt exakte Übereinstimmungen, Wortstämme, Synonyme und Alignment bei der maschinellen Übersetzung.
  • Menschliche Bewertung Dabei beurteilen Menschen Antworten anhand folgender Kriterien:

    • Relevanz: Übereinstimmung mit den Benutzerabfragen.
    • Sprachfluss: Grammatikalische und stilistische Qualität.
    • Faktische Richtigkeit: Überprüfung von Aussagen anhand maßgeblicher Quellen.
    • Kohärenz: Logische Stimmigkeit der Antworten.

    Dazu gehören:

    • Annotation queues: Bieten eine übersichtliche, gezielte Ansicht, in der menschliche Annotatoren bestimmten Durchläufen Feedback hinzufügen können.
  • Modellbewertung Nutzt vortrainierte Bewertungsmodelle, um Ausgaben anhand verschiedener Kriterien zu vergleichen:

    • TuringBench: Bietet umfassende Bewertungen anhand verschiedener Sprachbenchmarks.
    • Hugging Face Evaluate: Berechnet die Übereinstimmung mit menschlichen Präferenzen.
  • Zentrale Bewertungsdimensionen

    • Fundierung: Prüft, ob Antworten vollständig auf dem bereitgestellten Kontext beruhen. Eine geringe Fundierung kann auf halluzinierte oder irrelevante Informationen hindeuten.
    • Vollständigkeit: Misst, ob die Antwort alle Aspekte einer Abfrage abdeckt.
    • Ansätze: KI-gestützte Bewertung des Retrievals und promptbasierte Prüfung der Absicht.
    • Nutzung: Bewertet, in welchem Umfang abgerufene Daten zur Antwort beitragen.
    • Analyse: Prüfen Sie mit LLMs, ob abgerufene Chunks in den Antworten enthalten sind.

Diese Werkzeuge unterstützen Sie bei der Bewertung Ihres RAG-Systems – von der Nachverfolgung des Nutzerfeedbacks und der Protokollierung von Suchanfragen bis zum Vergleich mehrerer Evaluierungsmetriken im Zeitverlauf.

  • LangFuse: Open-Source-Werkzeug zur Nachverfolgung von LLM-Metriken, Observability und Prompt-Verwaltung.
  • Opik: Open-Source-Plattform für LLM-Observability, Evaluierungen und Prompt-Optimierung.
  • Ragas: Framework zur Bewertung von RAG-Pipelines.
  • WFGY Problem Map: Checkliste mit 16 Modi zur Diagnose von Fehlern in RAG und LLMs.
  • LangSmith: Plattform zum Erstellen produktionsreifer LLM-Anwendungen, mit der Sie Ihre Anwendung genau überwachen und bewerten können.
  • Hugging Face Evaluate: Werkzeug zur Berechnung von Metriken wie BLEU und ROUGE, um die Textqualität zu bewerten.
  • Weights & Biases: Verfolgt Experimente, protokolliert Metriken und visualisiert die Leistung.

Vektordatenbanken sind zentrale Komponenten von RAG-Systemen und ermöglichen die effiziente Speicherung von Embeddings sowie Ähnlichkeitssuchen. Die Wahl einer geeigneten Datenbank hängt unter anderem von Skalierung, Latenzanforderungen, Bereitstellungsmodell (Cloud oder lokal) und benötigten Funktionen wie hybrider Suche oder Filtern ab. Die folgende Liste enthält Datenbanksysteme für RAG-Anwendungen:

Verteilte Datenverarbeitungs- und Serving-Engines:

Abschnitt betitelt „Verteilte Datenverarbeitungs- und Serving-Engines:“
  • Apache Cassandra: Verteiltes NoSQL-Datenbankmanagementsystem.
  • MongoDB Atlas: Weltweit verteilter, multimodaler Datenbankdienst mit integrierter Vektorsuche.
  • Vespa: Open-Source-Engine für Big-Data-Verarbeitung und -Bereitstellung, ausgelegt auf Echtzeitanwendungen.
  • Elasticsearch: Bietet neben herkömmlichen Suchfunktionen auch Vektorsuche.
  • OpenSearch: Verteilte Such- und Analyse-Engine, die als Fork von Elasticsearch entstanden ist.
  • Chroma DB: KI-native Open-Source-Datenbank für Embeddings.
  • Milvus: Open-Source-Vektordatenbank für KI-gestützte Anwendungen.
  • Pinecone: Serverlose Vektordatenbank, optimiert für Machine-Learning-Workflows.
  • Oracle AI Vector Search: Integriert Vektorsuche in Oracle Database, um semantische Abfragen auf Grundlage von Vektor-Embeddings zu ermöglichen.
  • Pgvector: Open-Source-Erweiterung für die Vektorähnlichkeitssuche in PostgreSQL.
  • psql_bm25s: PostgreSQL-Erweiterung für lexikalisches Retrieval auf Basis der BM25-Familie, nützlich für schlüsselwortbasierte und hybride Retrieval-Pipelines.
  • Azure Cosmos DB: Weltweit verteilter, multimodaler Datenbankdienst mit integrierter Vektorsuche.
  • Couchbase: Verteilte NoSQL-Cloud-Datenbank.
  • Lantern: Datenschutzorientierte persönliche Suchmaschine.
  • LlamaIndex: Nutzt einen einfachen In-Memory-Vektorspeicher für schnelle Experimente.
  • Neo4j: Datenbankmanagementsystem für Graphen.
  • Qdrant: Open-Source-Vektordatenbank für die Ähnlichkeitssuche.
  • Redis Stack: In-Memory-Datenspeicher, der als Datenbank, Cache und Nachrichtenbroker eingesetzt wird.
  • SurrealDB: Skalierbare multimodale Datenbank, optimiert für Zeitreihendaten.
  • Weaviate: Cloud-native Open-Source-Engine für die Vektorsuche.
  • FAISS: Bibliothek für effiziente Ähnlichkeitssuche und Clusterbildung mit dichten Vektoren, ausgelegt auf große Datensätze und schnellen Abruf nächster Nachbarn.

Für produktionsreife RAG-Systeme müssen neben der zentralen Retrieval- und Generierungspipeline mehrere wichtige Aspekte berücksichtigt werden:

  • Indexierungsdurchsatz: Entwerfen Sie Pipelines für die Aufnahme großer Dokumentmengen mit inkrementellen Aktualisierungen
  • Abfragelatenz: Optimieren Sie das Retrieval durch effiziente Indexierung (HNSW, IVF), Caching-Strategien und parallele Verarbeitung
  • Gleichzeitige Anfragen: Implementieren Sie Verbindungspooling, Warteschlangen für Anfragen und Lastverteilung für stark frequentierte Szenarien
  • Ressourcenverwaltung: Überwachen Sie GPU-/CPU-Auslastung, Speicherverbrauch und Datenbank-Verbindungspools
  • Observability: Implementieren Sie umfassende Protokollierung, Tracing und Metrikerfassung (Latenz, Durchsatz, Fehlerraten)
  • Integritätsprüfungen: Überwachen Sie die Verfügbarkeit des Embedding-Dienstes, die Verbindung zur Vektordatenbank und den Status der LLM-API
  • Fehlerbehandlung: Implementieren Sie Wiederholungslogik, Circuit Breaker und Strategien zur kontrollierten Leistungsreduzierung
  • A/B-Tests: Vergleichen Sie verschiedene Retrieval-Strategien, Chunking-Methoden und Prompt-Vorlagen
  • Inkrementelle Aktualisierungen: Unterstützen Sie die Dokumentindexierung in Echtzeit oder nahezu in Echtzeit, ohne den vollständigen Index neu aufzubauen
  • Versionsverwaltung: Verfolgen Sie Dokumentversionen, Versionen der Embedding-Modelle und Prompt-Vorlagen
  • Datenqualität: Implementieren Sie Validierungspipelines, um beschädigte Embeddings, fehlende Metadaten oder veraltete Inhalte zu erkennen
  • Sicherung und Wiederherstellung: Sichern Sie Vektorindizes und Metadatenspeicher regelmäßig
  • Zugriffskontrolle: Implementieren Sie Authentifizierung, Autorisierung und Audit-Protokollierung
  • Datenschutz: Verschlüsseln Sie ruhende und übertragene Daten und erfüllen Sie Anforderungen an den Speicherort der Daten
  • Inhaltsfilterung: Setzen Sie Inhaltsmoderation, Erkennung personenbezogener Daten und Compliance-Prüfungen ein
  • Ratenbegrenzung: Schützen Sie vor Missbrauch und sorgen Sie für eine faire Zuweisung von Ressourcen
  • Embedding-Caching: Zwischenspeichern häufig verwendeter Embeddings, um API-Kosten zu senken
  • Selektives Retrieval: Nutzen Sie Query-Routing, um unnötige Abrufe zu vermeiden
  • Modellauswahl: Wägen Sie bei der Wahl von Embedding- und LLM-Modellen Kosten und Leistung gegeneinander ab
  • Bedarfsgerechte Dimensionierung von Ressourcen: Optimieren Sie die Infrastruktur anhand tatsächlicher Nutzungsmuster

Ausführliche Implementierungsanleitungen für bestimmte Plattformen finden Sie in der Dokumentation:

  • Domänenbewusstes Chunking: Verwenden Sie semantisches oder dokumentstrukturbezogenes statt festem Chunking, um den Kontext besser zu bewahren
  • Verwaltung der Überlappung: Verwenden Sie eine gezielte Überlappung (10–20 %), um den Kontext über Chunk-Grenzen hinweg zu erhalten
  • Bewahrung von Metadaten: Erhalten Sie Dokumentstruktur, Überschriften und Formatierungshinweise in den Chunk-Metadaten
  • Mehrere Granularitätsebenen: Ziehen Sie hierarchisches Chunking in Betracht (kleine Chunks für das Retrieval, größere für den Kontext)
  • Modellbewertung: Nutzen Sie das MTEB Leaderboard und domänenspezifische Benchmarks, um geeignete Modelle auszuwählen
  • Dimensionsoptimierung: Stimmen Sie die Embedding-Dimensionen ab (höher = bessere Qualität, niedriger = schnelleres Retrieval)
  • Domänenspezifisches Fine-Tuning: Stimmen Sie Embeddings nach Möglichkeit mit domänenspezifischen Daten fein ab
  • Konsistenz: Verwenden Sie für Indexierung und Abfragen dasselbe Embedding-Modell
  • Hybride Suche: Kombinieren Sie semantische (Vektor-) und lexikalische (BM25/Schlüsselwort-)Suche, um den Recall zu verbessern
  • Re-ranking: Setzen Sie Cross-Encoder oder Learned-to-Rank-Modelle ein, um die Präzision zu verbessern
  • Abfrageverständnis: Implementieren Sie Abfrageklassifizierung, Absichtserkennung und Abfrageerweiterung
  • Ergebnisdiversifizierung: Vermeiden Sie redundante Ergebnisse durch Diversitätsbeschränkungen
  • Klare Anweisungen: Geben Sie explizit vor, wie der abgerufene Kontext verwendet werden soll
  • Quellenangaben: Fordern Sie Zitate an und verlangen Sie eine Fundierung im bereitgestellten Kontext
  • Few-Shot-Beispiele: Fügen Sie Beispiele ein, die das gewünschte Antwortformat und die erwartete Qualität zeigen
  • Kontextkomprimierung: Verwenden Sie Zusammenfassungen oder Extraktion, wenn der Kontext die Grenzen überschreitet
  • Mehrdimensionale Metriken: Bewerten Sie Relevanz, Genauigkeit, Vollständigkeit und Fundierung
  • Menschliche Beteiligung: Beziehen Sie menschliches Feedback zur kontinuierlichen Verbesserung ein
  • Synthetische Evaluierung: Erzeugen Sie Testabfragen und erwartete Ausgaben für automatisierte Tests
  • Monitoring im Produktivbetrieb: Verfolgen Sie Nutzerzufriedenheit, Abfragemuster und Fehlermodi
  • Feedbackschleifen: Sammeln Sie Nutzerfeedback, Abfrageprotokolle und Leistungsmetriken
  • Experimente: Testen Sie Verbesserungen (Chunking, Retrieval, Prompts) systematisch in kontrollierten Experimenten
  • Modellaktualisierungen: Planen Sie Aktualisierungen der Embedding-Modelle und Migrationsstrategien
  • Dokumentation: Dokumentieren Sie Architektur, Entscheidungen und Betriebsabläufe klar und verständlich

Diese gemeinschaftlich gepflegte Ressourcensammlung wird laufend erweitert. Beiträge sind willkommen! Wenn Sie Ressourcen ergänzen, Fehler beheben oder die Gliederung verbessern möchten:

  1. Forken Sie das Repository
  2. Erstellen Sie einen Branch für Ihre Änderungen
  3. Reichen Sie einen Pull Request mit einer aussagekräftigen Beschreibung ein

Achten Sie bei neuen Einträgen auf funktionierende Links, genaue und knappe Beschreibungen sowie die passende Rubrik.

Dieses Projekt steht unter der Lizenz CC0 1.0 Universal.

HagiCode

HagiCode ist ein agentischer Coding-Arbeitsplatz. Vielseitige, komfortable Interaktionen in der Benutzeroberfläche machen Planung, Agent-Ausführung und Projektarbeit zugänglich und leicht nachvollziehbar – für ein ansprechendes Entwicklungserlebnis.

Entdecken Sie ein ansprechendes Entwicklungserlebnis mit vielseitigen, komfortablen Interaktionen in der Benutzeroberfläche.

HagiCode besuchenDokumentation lesen
  • IntelligentOpenSpec-Workflows machen aus einer Absicht einen umsetzbaren Weg vom Vorschlag über Design und Aufgaben bis zur Auslieferung.
  • EffizientMulti-Agent-Ausführung führt Recherche, Umsetzung und Prüfung parallel aus, über mehrere Repositories und die Agent CLIs, die Sie bereits nutzen.
  • InteressantVielseitige, komfortable Interaktionen in der Benutzeroberfläche machen Planung, Agent-Ausführung und Projektarbeit zugänglich und leicht nachvollziehbar.

Für Windows herunterladen

Im Microsoft Store erhaltenAlle Downloads

Aus Ideen wird ausgelieferte Software.

HagiCode ist ein agentischer Coding-Arbeitsplatz: OpenSpec-Workflows planen die Änderung, Multi-Agent-Ausführung setzt sie um, und Hero Scenario macht den langen Weg sichtbar, bis aus der Idee ausgelieferte Software wird.

Intelligent
OpenSpec-Workflows machen aus einer Absicht einen Weg vom Vorschlag bis zur Auslieferung.
Effizient
Multi-Agent-Ausführung treibt Recherche, Umsetzung und Prüfung parallel voran.
Unterhaltsam
UI-Interaktionen erleichtern Planung, Agent-Ausführung und Projektarbeit.

Awesome Site verlassen?

Du bist dabei, eine externe Website aufzurufen. Wir haben keine Kontrolle über deren Inhalte oder Datenschutzpraktiken.

Ziel

Zur Website wechseln