Dieses Diagramm zeigt deutlich den architektonischen Entwurf eines modernen, komplexen Systems zur Beantwortung von Fragen (QA) oder Retrieval-Augmented Generation (RAG). Es beginnt damit, dass ein Benutzer eine Frage stellt, und reicht bis zur endgültigen Generierung einer Antwort, wobei die wichtigsten Schritte und Technologieentscheidungen dazwischen detailliert dargestellt werden. Wir können den gesamten Prozess in die folgenden Kernphasen zerlegen:
1, Abfragekonstruktion (Abfragekonstruktion)
Dies ist der erste Schritt in der Interaktion des Benutzers mit dem System und der Ausgangspunkt für das System, um die Absicht des Benutzers zu verstehen. Die Abbildung zeigt, wie Abfragen für verschiedene Arten von Datenbanken aufgebaut sind:
a. Relationale DBs: Bei relationalen Datenbanken ist eine gängige Methode zur Erstellung von Abfragen Text-to-SQL, was bedeutet, dass das System die Fragen des Benutzers in natürlicher Sprache in strukturierte SQL-Abfrageanweisungen übersetzen muss. Dies erfordert in der Regel Techniken zum Verstehen natürlicher Sprache (Natural Language Understanding, NLU) und die Fähigkeit, die Semantik der natürlichen Sprache auf die SQL-Syntax und das Datenbankschema abzubilden. In der Abbildung wird auch SQL w/ PGVector erwähnt, das in Verbindung mit Vektordatenbanken verwendet werden kann (PGVector ist eine Vektorerweiterung von PostgreSQL), um SQL-Abfragen zu verbessern, z. B. um semantische Ähnlichkeitssuchen durchzuführen und somit flexibler mit unscharfen oder semantisierten Abfragen von Benutzern umzugehen.
b. Graphen-DBs: Für Graphen-Datenbanken ist die entsprechende Abfragekonstruktionsmethode Text-to-Cypher, eine Abfragesprache für die Graphen-Datenbank Neo4j, ähnlich wie SQL, aber besser geeignet für graphenstrukturierte Abfragen.Text-to-Cypher erfordert die Übersetzung von Fragen in natürlicher Sprache in Cypher-Abfrageanweisungen, was ein Verständnis der Struktur der Graphen-Datenbank und der Eigenschaften der Graphen-Abfragesprache erfordert. erfordert ein Verständnis der Struktur von Graphdatenbanken und der Eigenschaften von Graphabfragesprachen.
c. Vektordatenbank (Vektor-DBs): Für Vektordatenbanken wird Self-query retriever dargestellt, was bedeutet, dass das System automatisch Metadatenfilter auf der Grundlage der Frage des Benutzers generieren und die Vektordatenbank direkt abfragen kann. Der Schlüssel zu Self-query retriever ist die Fähigkeit, strukturierte Informationen für die Filterung aus natürlichsprachlichen Fragen zu extrahieren und sie mit der Vektorähnlichkeitssuche zu kombinieren, um eine genauere Suche zu erreichen.
Zusammenfassung der Phase der Abfragekonstruktion: Das Hauptziel dieser Phase besteht darin, die vom Benutzer in natürlicher Sprache gestellten Fragen in Abfrageanweisungen umzuwandeln, die vom System verstanden und ausgeführt werden können, wobei verschiedene Abfragesprachen und -techniken für verschiedene Arten von Datenspeichern (relational, Graphen, Vektoren) verwendet werden. Die Unterstützung des Systems für multimodale Daten und Abfragemodalitäten wird demonstriert.
2、Query Translation (Abfrageübersetzung)
Nach der Erstellung der Abfrage ist es manchmal notwendig, die ursprüngliche Benutzerabfrage weiter zu verarbeiten und zu optimieren, um die Absicht des Benutzers effizienter abrufen und verstehen zu können. Zwei wichtige Strategien zur Übersetzung von Abfragen sind in Abb. 1 dargestellt:
a. Zerlegung der Abfrage: Komplexe Fragen können in kleinere, besser handhabbare Teilfragen zerlegt werden (Sub-/Step-back-Frage(n)). Dies kann mit Techniken wie Mehrfachabfrage, Step-back, RAG-Fusion geschehen. - Multi-query kann bedeuten, dass mehrere verschiedene Abfragen erstellt werden, um die Frage aus verschiedenen Blickwinkeln zu untersuchen. - Step-back kann sich darauf beziehen, dass zuerst einfachere, voraussetzende Fragen beantwortet werden und dann schrittweise die endgültige komplexe Frage gelöst wird. - RAG-Fusion kann sich auf die Kombination von Retrieval-gestützter Generierung mit Abfragefusionstechniken beziehen, um die Absicht des Benutzers durch mehrfaches Retrieval und Fusion besser zu verstehen. - Der Kerngedanke ist die Zerlegung oder Umformulierung der Eingabefrage, d. h. die Zerlegung oder Umformulierung der Eingabefrage, um die Schwierigkeit der Bearbeitung komplexer Fragen zu verringern.
b. Pseudodokumente: HyDE (Hypothetical Document Embeddings) ist eine typische Methode zur Erzeugung von Pseudodokumenten. Die Idee ist, das Modell ein "hypothetisches Dokument" (Pseudodokument) auf der Grundlage der Frage generieren zu lassen. Dieses Pseudodokument muss nicht real sein, aber es sollte das anfängliche Verständnis des Modells und die Vorhersage der Antwort auf die Frage enthalten. Das Pseudodokument wird dann zusammen mit dem realen Dokument als Vektor dargestellt, und es wird eine Ähnlichkeitssuche durchgeführt.HyDE zielt darauf ab, dem Vektorsucher zu helfen, das relevante reale Dokument besser zu finden, indem das a priori Wissen des Modells eingeführt wird.
Zusammenfassung der Abfrageübersetzungsphase: Diese Phase zielt darauf ab, die Benutzerabfrage zu optimieren, damit sie für den nachfolgenden Abrufprozess besser geeignet ist. Die Komplexität kann durch die Zerlegung der Anfrage gehandhabt werden, und die Genauigkeit der Vektorabfrage kann durch die Generierung von Pseudodokumenten verbessert werden, was die Flexibilität und Intelligenz des Systems beim Verstehen und Verarbeiten der Benutzerabsicht widerspiegelt.
3 Weiterleitung
Wenn das System eine übersetzte Anfrage erhält, muss es entscheiden, an welche Datenquelle(n) es die Anfrage zum Abruf weiterleiten soll. Zwei Routing-Strategien sind in Abb. dargestellt:
a. Logisches Routing: LLM wählt die DB auf der Grundlage der Frage aus, d. h. es wird das Large Language Model (LLM) verwendet, um zu bestimmen, welche Datenbank auf der Grundlage des Inhalts und der Merkmale der Frage abgefragt werden soll. Wenn die Frage zum Beispiel Entitäten und Beziehungen in Bezug auf Wissensgraphen beinhaltet, wird sie an eine Graphdatenbank weitergeleitet; wenn die Frage strukturierte Datenabfragen beinhaltet, wird sie an eine relationale Datenbank weitergeleitet; wenn die Frage mehr auf semantische Suche ausgerichtet ist, wird sie an eine Vektordatenbank weitergeleitet.
b. Semantisches Routing: Frage einbetten und Prompt auf Basis der Ähnlichkeit auswählen: Bei diesem Ansatz wird zunächst die Frage eingebettet und dann ein anderer Prompt auf Basis der Ähnlichkeit der Fragevektoren (Prompt #1 , Prompt #2) ausgewählt. , Prompt #2). Das bedeutet, dass das System für verschiedene Arten von Fragen oder Absichten verschiedene Prompt-Strategien voreinstellt und automatisch den am besten geeigneten Prompt anhand der semantischen Ähnlichkeit auswählt, um den anschließenden Abruf- oder Generierungsprozess zu steuern.
Zusammenfassung der Routing-Phase: Die Routing-Phase ist ein wichtiger Schritt in der intelligenten Entscheidungsfindung des Systems, die je nach Inhalt und Merkmalen des Problems die am besten geeignete Datenquelle und Verarbeitungsstrategie auswählt und die Intelligenz des Systems bei der Ressourcenverwaltung und Aufgabenplanung widerspiegelt.
4、Indexierung (Indexierung)
Für einen effizienten Abruf müssen die Daten vorindiziert werden. Der blaue Bereich des Bildes zeigt eine Reihe von Strategien zur Optimierung der Indizierung:
a. Chunk-Optimierung: Bei langen Dokumenten ist es oft notwendig, das Dokument in Chunks aufzuteilen und diese dann zu indizieren. Die Chunk-Optimierung befasst sich mit der Frage, wie das Chunking effizienter durchgeführt werden kann.
- Aufteilung nach Zeichen, Abschnitten, semantischen Begrenzungszeichen: Verschiedene Chunking-Strategien, z. B. nach Anzahl der Zeichen, Abschnitten oder semantischen Begrenzungszeichen.
- Semantic Splitter: unterstreicht die Bedeutung des semantischen Chunking, optimiert die für die Einbettung verwendete Chunk-Größe, macht jeden Chunk semantisch vollständiger und unabhängiger und verbessert so die Qualität der Einbettungs- und Abrufergebnisse.
b. Indizierung mit mehreren Repräsentationen: Zusammenfassung -> {} -> Relationale DB / Vectorstore Dies bedeutet, dass es möglich ist, mehrere Repräsentationen eines Dokuments für die Indizierung zu erstellen, z.B. kann zusätzlich zum ursprünglichen Textblock des Dokuments auch eine Zusammenfassung des Dokuments erzeugt werden ( Das bedeutet, dass mehrere Repräsentationen des Dokuments für die Indizierung erstellt werden können, z.B. kann zusätzlich zum ursprünglichen Textblock des Dokuments eine Zusammenfassung des Dokuments generiert werden, und die Zusammenfassung kann indiziert werden. Auf diese Weise können verschiedene Darstellungen verwendet werden, um unterschiedliche Abfrageanforderungen zu erfüllen. Die Abbildung impliziert, dass die Zusammenfassung in einer relationalen Datenbank oder einer Vektordatenbank gespeichert werden kann.
- Übergeordnetes Dokument, Dense X: kann sich auf die Indizierung eines Dokuments zusammen mit Informationen über sein übergeordnetes Dokument beziehen, sowie auf die Darstellung eines Dokuments unter Verwendung einer dichten Darstellung (Dense X), die sich auf eine dichte Vektordarstellung beziehen kann.
- Umwandlung von Dokumenten in kompakte Abruf Einheiten (z. B. eine Zusammenfassung): Der Schwerpunkt liegt auf der Umwandlung von Dokumenten in kompaktere Retrieval-Einheiten, wie z. B. Zusammenfassungen, um die Retrieval-Effizienz zu verbessern.
c. Spezialisierte Einbettungen: Feinabstimmung, CoLBERT, [0, 1, ...] -> Vectorstore. Dies bedeutet, dass speziell trainierte oder fein abgestimmte Einbettungsmodelle, wie CoLBERT, verwendet werden können, um Vektordarstellungen von Dokumenten zu erzeugen und diese Vektoren in einer Vektordatenbank zu speichern.
- Domänenspezifische und/oder fortgeschrittene Einbettungsmodelle: hebt die Möglichkeit hervor, domänenspezifische oder fortgeschrittene Einbettungsmodelle zu verwenden, um genauere semantische Darstellungen zu erhalten und die Suche zu verbessern.
d. Heirarchische Indexierung Zusammenfassungen: Splits -> cluser -> cluser -> ... -> RAPTOR -> Graph DB. -> RAPTOR -> Graph DB. RAPTOR (das sich auf eine hierarchische Dokumentenzusammenfassung und Indexierungsmethode beziehen kann) konstruiert eine hierarchische Struktur von Dokumentenzusammenfassungen mittels mehrschichtigem Clustering (cluser).
- Baum der Dokumentenzusammenfassung auf verschiedenen Abstraktionsebenen: Betonung der Tatsache, dass RAPTOR einen Baum von Dokumentenzusammenfassungen auf mehreren Abstraktionsebenen konstruiert.
- Die in einer Graphdatenbank (Graph DB) gespeicherte Graphdatenbank dient der Speicherung und Verwaltung dieser hierarchischen Indexstruktur und erleichtert die Suche und Navigation auf mehreren Ebenen.
Zusammenfassung der Indizierungsphase: Die Indizierungsphase befasst sich mit der effizienten und effektiven Organisation und Darstellung von Daten für einen schnellen und genauen Abruf. Von der Chunking-Optimierung über Mehrfachdarstellungen, dedizierte Einbettung bis hin zu hierarchischen Indexzusammenfassungen spiegelt sie die Vielfalt und Raffinesse der Indexierungsstrategien wider.
5. abrufen
Auf der Grundlage der gerouteten Datenquellen und Indizes führt das System den eigentlichen Abrufprozess durch. Die grünen Bereiche des Bildes zeigen die beiden Hauptaspekte des Abrufs:
a. Ranking: Frage -> {} -> Relevanz -> Filter. Die abgerufenen Dokumente müssen nach ihrer Relevanz für die Anfrage geordnet werden.
- Re-Rank, RankGPT, RAG-Fusion: Es werden einige fortgeschrittene Ranking-Techniken erwähnt, wie z.B. Re-Rank (Re-Ranking, das ein feineres Ranking auf den ursprünglichen Retrieval-Ergebnissen durchführt), RankGPT (Ranking mit einem großen Modell wie GPT) und RAG-Fusion (das Ranking mit der Generierung von Retrieval-Erweiterungen verschmilzt).
- Rangfolge oder Filterung/Komprimierung von Dokumenten auf der Grundlage der Relevanz: Der Zweck der Rangfolge kann entweder darin bestehen, direkt eine Rangfolge zu erstellen und die relevantesten Dokumente zurückzuliefern, oder Dokumente auf der Grundlage der Relevanz für die weitere Verarbeitung zu filtern oder zu komprimieren. - CRAG (Context-Relevant Answer Generation) erscheint auch in der Sortiersitzung, der Sortierprozess muss auch kontextuelle Informationen berücksichtigen.
b. Aktiver Abruf: {} -> CRAG -> Antwort. Erneuter Abruf und/oder Abruf aus neuen Datenquellen (z. B. Web), wenn die abgerufenen Dokumente nicht relevant sind. Aktives Abrufen bedeutet, dass das System aktiv neu abrufen (Re-retrieve) oder aus neuen Datenquellen (z. B. Web) abrufen kann, wenn die ursprünglichen Abrufergebnisse nicht zufriedenstellend sind.
- CRAG taucht auch beim aktiven Retrieval auf, was die Bedeutung der kontextuellen Relevanz und des iterativen Retrievals weiter unterstreicht.
- Techniken wie Self-RAG, RRR (Retrieval-Rewrite-Read) können auch für das aktive Retrieval von Bedeutung sein, das darauf abzielt, die Retrieval-Ergebnisse und die Qualität der Antworten durch einen iterativen Retrieval- und Generierungsprozess kontinuierlich zu optimieren.
Zusammenfassung der Abrufphase: Das Hauptziel der Abrufphase besteht darin, das relevanteste Dokument oder die relevanteste Information für die Anfrage des Nutzers zu finden. Vom Sortieren bis zum aktiven Retrieval spiegelt das System die Verfeinerung und Intelligenz der Retrieval-Strategie wider und strebt danach, qualitativ hochwertige Retrieval-Ergebnisse zu liefern.
6. generation
Letztendlich muss das System auf der Grundlage der abgerufenen Dokumente Antworten generieren und sie dem Benutzer präsentieren. Der violette Bereich des Bildes zeigt die Kerntechnologie in der Generierungsphase:
a. Aktives Retrieval (Wiederauftauchen): {} -> Antwort -> Selbst-RAG, RRR -> Neuverfassen von Fragen und/oder erneutes Abrufen von Dokumenten. Das aktive Retrieval spielt auch in der Generierungsphase eine wichtige Rolle.
- Self-RAG (Self-Retrieval Augmented Generation) ist ein Verfahren zur selbstgesteuerten Generierung, das es einem generativen Modell ermöglicht, während der Generierung einer Antwort bei Bedarf aktiv eine Abfrage durchzuführen und die Generierungsstrategie auf der Grundlage der Ergebnisse der Abfrage anzupassen. - RRR (Retrieval-Rewrite-Read) ist ein iterativer Generierungsprozess, der Schritte wie Retrieval, Neuschreiben der Frage und Lesen des Dokuments umfassen kann, um die Qualität der Antwort durch mehrere Iterationen zu optimieren.
- Nutzung der Qualität der Generierung als Grundlage für die Neuformulierung von Fragen und/oder den erneuten Abruf von Dokumenten: Es wird betont, dass die Qualität der generierten Antworten dazu verwendet werden kann, die Neuformulierung von Fragen und den erneuten Abruf von Dokumenten zu steuern, wodurch ein geschlossener Optimierungsprozess entsteht.
Zusammenfassung der Generierungsphase: Die Generierungsphase ist ein wichtiger Schritt für die endgültige Ausgabe von Antworten. Aktive Retrieval- und Self-RAG-Technologien (Self-RAG, RRR) machen den Generierungsprozess intelligenter und kontrollierbarer und können genauere und benutzerfreundlichere Antworten erzeugen.
Zusammenfassung: Dieses Diagramm zeigt deutlich die Komplexität und Granularität eines modernen RAG-Systems. Es deckt den gesamten Prozess vom Verstehen der Abfrage, dem Datenrouting, der Optimierung der Indizierung, dem effizienten Retrieval bis hin zur endgültigen Generierung der Antwort ab und zeigt die vielen fortgeschrittenen Techniken und Strategien, die bei jedem Schritt eingesetzt werden können.
Wichtige Highlights und Trends.
- Multi-Datenbank-Unterstützung: Das System unterstützt relationale Datenbanken, Graph-Datenbanken und Vektor-Datenbanken, die unterschiedliche Datentypen und Abfrageanforderungen verarbeiten können.
- Optimierung und Übersetzung von Abfragen: Verbesserung der Fähigkeit des Systems, komplexe und semantische Abfragen durch Techniken wie die Zerlegung von Abfragen und die Erzeugung von Pseudodokumenten zu bearbeiten.
- Intelligentes Routing: Routing-Entscheidungen unter Verwendung von LLM und semantischer Ähnlichkeit für die intelligente Auswahl von Datenquellen und die Planung von Aufgaben.
- Vielfalt der Indizierungsoptimierung: Von Chunking, Mehrfachrepräsentation, Dedicated Embedding bis hin zu Hierarchical Index Digest, was die Vielfalt der Indizierungsstrategien und der Tiefenoptimierung widerspiegelt.
- Suchverfeinerung und Proaktivität: Von Sortieralgorithmen bis hin zur proaktiven Suche ist das System bestrebt, qualitativ hochwertige, relevante Suchergebnisse zu liefern.
- Tiefgreifende Integration von Generierung und Retrieval: Self-RAG, RRR und andere Techniken zeigen, dass die Generierungsphase nicht mehr ein einfaches Zusammenfügen von Informationen ist, sondern eine tiefgreifende Integration mit dem Retrievalprozess, die eine geschlossene Schleife der iterativen Optimierung bildet.
Dieses Diagramm repräsentiert einen wichtigen Trend in der Entwicklung aktueller RAG-Systeme, d.h. eine stärkere Konzentration auf die Intelligenz, Modularität und Skalierbarkeit des Systems. Das zukünftige RAG-System wird nicht nur ein einfaches "Retrieval + Generierung" sein, sondern sich in eine intelligentere Richtung entwickeln, die die Intention des Nutzers besser verstehen kann, multimodale Daten effektiver nutzt, das Retrieval und die Generierung genauer durchführt und letztendlich ein besseres und personalisiertes Nutzererlebnis bietet. Dieses Diagramm bietet einen sehr wertvollen Referenzrahmen für das Verständnis und den Aufbau der nächsten Generation von RAG-Systemen.
Referenzen:
[1] GitHub: https://github.com/bRAGAI/bRAG-langchain/
[2] https://bragai.dev/