GraphRAG-Patterns Musterabfragen für Künstliche Intelligenz

Von Michael Hunger und Elena Kohlwey* 7 min Lesedauer

Anbieter zum Thema

GraphRAG erweitert den traditionellen Ansatz von Retrieval Augmented Generation (RAG) um einen Knowledge-Graphen und verbessert dadurch die Genauigkeit, Aktualität und Relevanz der Antworten von LLMs. Eine standardisierte Integration von Graphdatenbanken in die RAG-Pipeline gibt es zwar nicht. Mit GraphRAG-Patterns lässt sich der Wissenskontext der Graphen jedoch einfach für die Retrieval-Phase heranziehen.

GraphRAG-Patterns: Die Verbindung von Knowledge-Graphen mit RAG verbessert die Relevanz und Präzision von KI-Antworten durch den Einsatz von strukturierten Daten und wiederverwendbaren Abfrage-Mustern.(Bild:  Neo4j)
GraphRAG-Patterns: Die Verbindung von Knowledge-Graphen mit RAG verbessert die Relevanz und Präzision von KI-Antworten durch den Einsatz von strukturierten Daten und wiederverwendbaren Abfrage-Mustern.
(Bild: Neo4j)

Komplexe Abfragen erfordern nicht nur umfassende Daten bzw. Dokumente, sondern auch ein ganzheitliches Verständnis darüber, wie diese Informationen zusammenhängen. Konventionelle GenAI-Ansätze tun sich damit allerdings schwer. Retrieval Augmented Generation (RAG) hat sich deshalb in den vergangenen zwei Jahren als bewährter Ansatz zur Optimierung etabliert.

Bei Standard-RAG erhält das KI- oder Sprachmodell Zugriff auf externe Wissensquellen (z. B. Datenbanken) und zieht diese zur Generierung von Antworten heran. Neben dem festen Satz an Trainingsdaten werden also neue oder auch proprietäre Informationen verarbeitet. Das macht die Ergebnisse für gewöhnlich genauer. RAG-Implementierungen nutzen standardmäßig Vektordatenbanken. Dabei wird unstrukturierter Text (z. B. PDFs, Website-Inhalte) in Abschnitte unterteilt und als Vektor-Embeddings gespeichert, die den semantischen Gehalt der Texte erfassen. Wo vektorbasiertes RAG an Grenzen stößt? Wenn es darum geht, Informationen sinnvoll miteinander zu verknüpfen und das semantische Konzept dahinter zu verstehen. Hier kommt immer häufiger GraphRAG durch die Kombination von Graphdatenbanken und LLMs ins Spiel.

Was ist GraphRAG?

Der RAG-Prozess mit einem Knowledge Graphen als externe Datenquelle (Bild:  Neo4j)
Der RAG-Prozess mit einem Knowledge Graphen als externe Datenquelle
(Bild: Neo4j)

GraphRAG ist eine spezielle Retrieval-Methode, die Knowledge-Graphen (KG) verwendet. KGs setzen sich aus Knoten (Entitäten, z. B. Personen, Konzepte, Objekte) und deren Kanten (Beziehungen, z. B. „ist verbunden mit“, „verursacht“, „ist Teil von“) zusammen. Der Graph dient bei GraphRAG also als zusätzliche Retrieval-Komponente. Statt einer flachen Liste von Dokumenten oder Abschnitten durchsucht das KI-Modell einen semantischen Datenkontext und verwendet den Input zur Generierung von Antworten.

Die Ergänzung um einen KG hat gleich mehrere Vorteile: Die Struktur des Graphen liefert präzisere Antworten für das Retrieval. Da der Graph explizit Beziehungen darstellt, sind die abgeleiteten Antworten zudem erklärbarer und nachvollziehbarer. Schließlich gewinnen die Antworten mehr Aktualität, da sich der Datenpool über das Knoten-Kanten-Prinzip dynamisch erweitert und neue Informationen hinzugefügt werden können.

Was sind GraphRAG-Patterns?

Patterns (Muster) sind wiederverwendbare Designvorlagen, die helfen, häufig auftretende Probleme in einem bestimmten Kontext systematisch zu lösen. In GraphRAG ermöglichen die Retrieval-Patterns die effiziente Implementierung von graphbasierten Retrieval- und Generierungsprozessen, indem sie typische Vorgehensweisen für den Umgang mit Knowledge-Graphen standardisieren. Die Muster helfen Entwicklern und Forschern dabei, effektive Architekturen und Methoden zu definieren und die Ergebnisse ihrer KI-Anwendungen weiter zu verbessern.

In verschiedenen Knowledge-Graphen lassen sich Retrieval-Patterns unterschiedlich verwenden.

1. Basic GraphRAG-Patterns (Lexikalischer Graph)

Im Kontext von RAG-Abfrageprozessen mit unstrukturierten Daten trifft man sehr schnell auf einige grundlegende GraphRAG-Pattern. So auch in sogenannten Lexikalischen Graphen, die in der linguistischen Forschung und der natürlichen Sprachverarbeitung (NLP) zum Einsatz kommen. Sie repräsentieren eine Struktur von Wörtern oder Phrasen (Lexeme), um lexikalische Bedeutungs- und Beziehungsstrukturen zu modellieren.

Basic GraphRAG-Patterns stützen sich auf diese Beziehungsstrukturen. Sie filtern zum Beispiel Metadaten, um alle Artikel eines bestimmten Autors oder zu einem bestimmten Thema zu finden. Oder sie analysieren die Eltern-Kind-Beziehungen zwischen den Knoten, um zum übergeordneten Teil eines Textstücks zurückzunavigieren und kontextbezogen zu antworten.

Beispiele

Basic Retriever gehören zu den einfachsten Retrieval-Patterns im Kontext von GraphRAG. Das Muster konzentriert sich auf die grundlegende Suche nach Informationen in einem Graphen. Tiefere Hierarchien oder komplexe Traversal-Strategien sind hier nicht nötig. Gesucht wird gezielt nach Knoten oder Kanten, die direkt mit der Abfrage übereinstimmen. Die Frage „Was ist Protein X?“ liefert also als Antwort die Eigenschaften des Knoten „Protein X“ im Graphen.

Der Basic Retriever ist äquivalent zu standardmäßigen Abfragen auf Vektordatenbanken. Im Grunde handelt es sich daher um eine Vektorsuche, die in der Graphdatenbank Neo4j jedoch nativ laufen kann. Durch die einfache Logik eignet sich dieser Retrieval-Prozess für flache oder unstrukturierte Graphen, um schnell und auf direktem Weg ans Ziel zu kommen. Das macht Basic Retriever auch für den Einstieg in GraphRAG interessant.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Einfache Variante eines Lexikalischen Graphen(Bild:  Neo4j)
Einfache Variante eines Lexikalischen Graphen
(Bild: Neo4j)

Oft bildet das Pattern auch die Grundlage für komplexere Muster wie den Parent Child Retriever, der den Graphen entlang der Eltern-Kind-Beziehungen von Knoten durchsucht und so miteinander verbundene Informationen, Hierarchien oder Zusammenhänge aufdeckt. Ein weiteres Basis-Pattern ist der Hypothetical Question Retriever. Dabei werden im Pre-Processing (meist durch ein LLM) mögliche Fragen generiert, auf die die vorhandenen Text-Chunks grundsätzlich eine Antwort geben können. Die Fragen werden wieder vektorisiert, sodass der Retriever nicht mehr nach den ähnlichsten Chunks, sondern nach den ähnlichsten Fragen sucht und die damit verbundenen Chunks an das LLM weitergibt – was die Ergebnisse verbessert.

2. Intermediate GraphRAG-Patterns (Domain Graph)

Retrieval-Patterns finden sich auch in Domain Graphs. Diese Art von Graphen enthält in der Regel spezifisches Domänenwissen, zum Beispiel über ein Unternehmen oder einen Fachbereich. Jeder Domain Graph sieht daher auch unterschiedlich aus. Was sie jedoch in der Regel gemein haben, sind strukturierte Daten und ein Schema.

Um strukturierte Daten innerhalb des Retrieval-Prozesses abrufen zu können, müssen Abfragen so übersetzt werden, dass sie von der Datenbank verarbeitet werden können. Ein grundlegender Ansatz besteht darin, vordefinierte Abfragen zu nutzen, auf denen sich eine Benutzerfrage abbilden lässt.

Beispiele

Das Cypher Template-Pattern ist ein solches spezifisches GraphRAG-Muster, das auf der Verwendung von vorgefertigten Abfragevorlagen basiert. Die Vorlagen werden in der Abfragesprache Cypher (der Sprache für Neo4j-Graphdatenbanken) definiert und ermöglichen eine strukturierte und wiederholbare Datenabfrage.

Eine Vorlage für standardisierte Abfragen kann zum Beispiel die Suche nach benachbarten Knoten bzw. Entitäten sein. Im Business-Kontext lassen sich dann Fragen stellen, die genau die Beziehungen ersten Grades abfragen: „Wie viele Mitarbeiter gehören dem Unternehmen ABC an?“, „Mit wem ist Person 1 befreundet?“ oder „Gibt es eine Wechselwirkung zwischen Protein X und Protein Y?“. Dabei enthalten die Templates Platzhalter, die mit spezifischen Parametern gefüllt werden können. „Wie viele Mitarbeiter gehören dem Unternehmen ABC an?“ wird dann zum Beispiel Unternehmen ABC als Parameter identifiziert.

Cypher Templates eignen sich vor allem bei komplexen oder häufig wiederkehrenden Abfragemustern, wo sie den Entwicklungsaufwand minimieren. Sie kommen primär in domänenspezifischen Anwendungen (z. B. in der wissenschaftlichen Forschung) zum Einsatz. Dabei optimieren sie die Effizienz und Präzision von Abfragen in großen Graphdatenbanken. Zu den weiterführenden GraphRAG-Patterns gehören Dynamic Cypher Generation und Text2Cypher (siehe GraphRAG-Pattern-Katalog, Infokasten).

3. Advanced GraphRAG-Patterns (Lexikalische & Domain Graph)

In der Praxis findet sich häufig nicht nur ein Lexikalischer oder ein Domain Graph, sondern eine Kombination aus einem Lexikalischen und einem Domain-Graphen. Strukturierte Daten werden beispielsweise mit unstrukturierten Informationen ergänzt oder Entitäten aus Dokumenten extrahiert und in einen Domain-Graphen integriert. Unabhängig davon, wie die Kombination stattfindet, lassen sich GraphRAG-Muster zur Optimierung der Antworten verwenden.

Beispiele

Schaubild für die Kombination aus Lexikalischem Graph und Domain Graph (Bild:  Neo4j)
Schaubild für die Kombination aus Lexikalischem Graph und Domain Graph
(Bild: Neo4j)

Graph-Enhanced Vector Search kombiniert die Leistungsfähigkeit von Vektor-Suchen (ähnlichkeitsbasiertes Retrieval) mit den strukturierten Informationen des Domain-Graphen. Das Muster nutzt die vektorisierten Text-Chunks, um semantisch relevante Inhalte zu finden, und kombiniert dies mit den Beziehungsstrukturen im Graphen, um wiederum kontextuelle und präzisere Ergebnisse zu liefern. Dazu können auch Nachbarn oder spezifische Beziehungstypen in die Abfrage einbezogen werden. Die Nähe von „Protein X“ zu „Signalweg W“ im Graphen fließt so zum Beispiel in die Antwort ein und erhöht ihre kontextuelle Relevanz.

Dieser hybride Ansatz ist insbesondere bei komplexen Abfragen von Vorteil, bei denen die Vektorsuche allein nicht ausreicht und sowohl semantische als auch strukturelle Relevanz erforderlich ist. Es gibt zudem Methoden rund um dieses Pattern. Entity Disambiguation kommt im Pre-Processing zum Einsatz, um den Graph „sauberer“ zu machen und bessere Antworten zu erhalten. Entitäten, z. B. verschiedene Bedeutungen eines gleichen Begriffs, werden identifiziert und unterschieden. Ein Ontology-driven Traversal steuert die Navigation und Abfrage von Informationen durch eine formale Ontologie.

Fazit

Es gibt eine Vielzahl von GraphRAG-Mustern, wobei die Liste oben nur eine kleine Auswahl darstellt. Jedes RAG-Muster ist auf die Beantwortung spezifischer Fragestellungen zugeschnitten und erfordert dementsprechend spezifische Vorverarbeitungsschritte. Die Suche nach einem geeigneten GraphRAG-Pattern für einen Anwendungsfall verläuft nicht immer geradlinig, sondern erfordert vielmehr das Experimentieren mit verschiedenen Abfragemustern und anschließend eine angemessene Bewertung der Ergebnisse. Ein Pattern allein ist oft nicht ausreichend, weshalb meist ein agentenbasierter Ansatz, der sich an verschiedene Abfragen anpasst, erforderlich ist.

Die hier vorgestellten GraphRAG-Patterns zielen alle auf Once-Retrieval-Strategien ab, bei denen der Kontext für eine Antwort auf eine Frage bereitgestellt und die Datenbank nur einmal abgefragt wird. Komplexere Fragen könnten ein iteratives oder ein mehrstufiges Retrieval-Paradigma erfordern, das die Verwendung verschiedener Muster kombiniert. GraphRAG befindet sich in vieler Hinsicht noch im Anfangsstadium und wird in Zukunft neue Patterns und damit neue Möglichkeiten zur Abfrage und Optimierung von KI-Ergebnissen liefern.

GraphRAG-Patterns: Open-Source-Katalog zum Mitmachen

Der GraphRAG-Pattern-Katalog ist eine Open-Source-Initiative, die eine wachsende Liste an Retrieval-Mustern aufführt und detailliert beschreibt. Das Nachschlagewerk bietet weiterführendes Lesematerial zu jedem Pattern sowie Beispiele für bestehende Implementierungen (z. B. LangChain) und Templates. Ziel ist es, eine umfassende Liste sowie Aktualisierungen rund um GraphRAG-Patterns zu erstellen. Entwickler sind eingeladen, neue Muster hinzuzufügen und sich am Projekt zu beteiligen.

Mehr Infos unter graphrag.com

* Michael Hunger ist Head of Product Innovation & Developer Product Strategy bei Neo4j und Elena Kohlwey ist Graph Database Specialist und Neo4j Ninja (X-INTEGRATE)

Artikelfiles und Artikellinks

(ID:50361838)