Knowledge Graphs und Retrieval-Augmented Generation: Ein Leitfaden zur Verbesserung von RAG-Systemen

Ein Einblick von Sara A. Bejandi

Einleitung

In der heutigen digitalen Welt sind die effiziente Vernetzung, Verwaltung und Nutzung von Wissen entscheidend. Knowledge Graphs, als strukturierte Darstellungen von Wissen in Form von Entitäten und deren Beziehungen. Diese erleichtern das Verständnis und die Abfrage komplexer Verbindungen zwischen verschiedenen Entitäten und Konzepten. Knowledge Graphs können Retrieval-Augmented Generation (RAG)-Systeme verbessern, indem sie strukturierte Daten, Erklärbarkeit und Zugang zu faktischen Informationen bieten, was die Genauigkeit erhöht. Allerdings sind Knowledge Graphs, insbesondere in domänenspezifischen Anwendungen, nicht immer verfügbar. Daher ist es notwendig, maßgeschneiderte Knowledge Graphs aus unstrukturierten Daten zu erstellen, um deren Vorteile zu nutzen. Dieser Artikel untersucht, wie Knowledge Graphs aus Texten erstellt werden können. Er erläutert verschiedene Ansätze und Technologien, die zur Verbesserung von Retrieval-Augmented Generation (RAG)-Systemen beitragen.

Knowledge Graphs vs. LLMs

Knowledge Graphs und Large Language Models (LLMs) sind zwei unterschiedliche, aber komplementäre Ansätze zur Verarbeitung und Nutzung von Informationen. Während LLMs große Mengen an Text analysieren und verarbeiten können, bieten Knowledge Graphs eine strukturierte Darstellung von Wissen. Diese Struktur ermöglicht es, Beziehungen zwischen Entitäten klar zu definieren und komplexe Abfragen effizient zu beantworten. Im Gegensatz dazu basieren LLMs auf statistischen Modellen, die Vorhersagen und Antworten generieren, jedoch nicht immer die zugrunde liegende Struktur und Logik der Informationen offenlegen.

Ziele der Knowledge Graph-Erstellung

Um Knowledge Graphs in RAG-Systemen nutzen zu können, müssen wir zunächst hochwertige Knowledge Graphs aus unstrukturierten Dokumenten konstruieren. Nach der Erstellung des Knowledge Graphs kann eine natürliche Sprachabfrage oder Frage in eine Knowledge Graph-Abfrage umgewandelt werden, um präzise faktische Antworten zu liefern. Diese Methode ermöglicht eine effiziente Extraktion und Nutzung von Wissen aus großen Textmengen, was besonders in datenintensiven Bereichen von Vorteil ist.

Methoden der Knowledge Graph-Erstellung

Dieser Abschnitt stellt aktuelle Forschungen zur Konstruktion von Knowledge Graphs aus Texten vor, mit Fokus auf Techniken, die große Sprachmodelle (LLMs) und Transformer nutzen.

Feinabstimmung von Sprachmodellen (LLMs) zur Triple-Extraktion

  1. Feinabstimmung: Anpassung von LLMs, um präzise Entitäten und Beziehungen zu identifizieren. Diese Optimierung verbessert die Algorithmen der LLMs und deren Fähigkeit zur Textanalyse.
  2. Zero-Shot-Triple-Extraktion: Verwendung von LLMs ohne vorheriges Training auf spezifischen Datensätzen, was im Bereich der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) von Bedeutung ist.
  3. Few-Shot-Triple-Extraktion: Minimaler Trainingsaufwand zur Erzielung hoher Genauigkeit, was die Effizienz der Datenverarbeitung und KI-Entwicklung steigert.

Zero-Shot-Triple-Extraktion

Zero-Shot-Ansätze bieten Flexibilität bei der Triple-Extraktion. Arbeiten wie Chat-IE[1] verwenden mehrstufige Frameworks, die Chat-basierte Eingabeaufforderungen nutzen, um Entitätstypen und entsprechende Entitäten zu extrahieren und so vollständige Tripel abzuleiten. Darüber hinaus wird das Fehlen erforderlicher Trainingsdaten in der Triple-Extraktion durch Ansätze angegangen, die sich auf die Generierung von Trainingsdaten mittels Zero-Shot-Methoden konzentrieren. GenRDK[2] unterstützt die Triple-Extraktion, indem es ChatGPT durch eine Reihe von Retrieval-Aufforderungen führt, um schrittweise lange, annotierte Textdaten zu generieren. Darüber hinaus reframed RelationPrompt[3] das Zero-Shot-Problem als Generierung synthetischer Daten und nutzt Sprachmodell-Aufforderungen, um synthetische Beziehungsmuster zu erzeugen, insbesondere für unbekannte Beziehungen.

  • Chat-IE[1]: Ein zweistufiges Framework, das Chat-basierte Eingabeaufforderungen verwendet, um Entitätstypen und Beziehungslisten zu definieren.
  • GenRDK[2]: Eine Kette von Retrieval-Aufforderungen, die ChatGPT anleiten, lange, annotierte Textdaten Schritt für Schritt zu generieren.
  • RelationPrompt[3]: Erstellung von Beziehungsmustern durch Sprachmodell-Aufforderungen, um ein weiteres Modell für die Zero-Shot-Aufgabe zu trainieren.
Diagramm, das positive (grün) und negative (rot) Paare von Entitäten und Beziehungen in einem Satz zeigt:

Das Diagramm illustriert die Identifikation von positiven und negativen Paaren in einem Knowledge Graph. Positive Paare (grün) repräsentieren korrekte Entitäts-Beziehungs-Kombinationen, während negative Paare (rot) fehlerhafte Zuordnungen anzeigen.

Knowledge Graph Pipeline

Der Prozess der Konstruktion eines Knowledge Graphs umfasst eine Reihe von Schritten, die in der folgenden Abbildung dargestellt sind. Zuerst erstellt die Wissensakquisition einen rohen Knowledge Graph aus unstrukturierten Eingabedaten. Als nächstes wird der rohe Knowledge Graph mithilfe bestehender Knowledge Graphs verfeinert oder angereichert. Schließlich verwaltet der Schritt der Wissensevolution die Entwicklung des Knowledge Graphs und dynamische Informationen. In diesem Artikel konzentrieren wir uns nur auf den ersten Schritt der Konstruktion des Knowledge Graphs aus unstrukturierten Textdaten. Eine detaillierte Abbildung der Pipeline ist unten zu finden:

Diagramm der Knowledge Graph Pipeline zur Extraktion und Organisation von Entitäten und Beziehungen aus Texten. Knowledge Graphs und Retrieval-Augmented Generation

Die Knowledge Graph Pipeline zeigt die Schritte zur Erstellung von Knowledge Graphs aus Texten, beginnend mit der Extraktion von Entitäten und Beziehungen bis hin zur finalen Integration in den Knowledge Graph.

End-to-End-Lösungen für Knowledge Graphs und Retrieval-Augmented Generation

Es gibt verschiedene End-to-End-Lösungen zur Erstellung von Knowledge Graphs. Zwei bemerkenswerte Ansätze sind Grapher und PiVe, die unterschiedliche Methoden und Frameworks nutzen.

Grapher

Grapher [4] verwendet ein mehrstufiges Verfahren zur Erstellung von Knowledge Graphs. Im ersten Schritt extrahiert ein LLM Entitäten aus dem Text. Im zweiten Schritt werden Beziehungen zwischen diesen Entitäten generiert. Diese Lösung basiert auf dem WebNLG+ Korpus und behandelt die Knoten- und Beziehungsgenerierung als ein sequenzbasiertes Problem. Grapher integriert fortschrittliche Techniken der natürlichen Sprachverarbeitung, um präzise und umfassende Knowledge Graphs zu erstellen. Diese Lösung ist ein Beispiel für die Optimierung von Algorithmen und die Anwendung von maschinellem Lernen in der Praxis.

PiVe

PiVe [5] (Prompting with Iterative Verification) setzt auf eine iterative Verifikation, um die Leistung eines LLMs kontinuierlich zu verbessern. Ein kleineres Sprachmodell fungiert als Verifikationsmodul, das die Ausgaben des LLMs überprüft und durch feingliedrige Korrekturanweisungen schrittweise optimiert. PiVe nutzt Datensätze wie GenWiki und WebNLG, um das System zu trainieren und die Genauigkeit der Knowledge Graph-Erstellung zu erhöhen. Dies zeigt die Bedeutung der Programmierung und kontinuierlichen Verbesserung in der KI-Entwicklung.

Frameworks für die Knowledge Graph-Erstellung

Neben der laufenden Forschung zur Knowledge Graph-Erstellung mit LLMs haben Frameworks wie Neo4j und LambdaIndex Knowledge Graphs in ihre RAG-Systeme integriert. Einige andere Lösungen schlagen die Erstellung von Knowledge Graphs aus Text vor.

  • Text2Cypher: Konvertiert natürliche Sprache in Cypher-Abfragen.
  • LlamaIndex’s KnowledgeQueryEngine: Ein Abfrage-Framework für Knowledge Graphs.
  • NebulaGraph: Eine verteilte Graph-Datenbank, die auch Graph-RAG bietet. Solche Datenbanken sind entscheidend für die effiziente Speicherung und Abfrage großer Wissensmengen.
  • OntoGPT [6]: Ein Python-Paket zur Extraktion strukturierter Informationen aus Texten unter Verwendung von LLMs.
  • Understand: Erzeugt kleine Graphen basierend auf Seed-Konzepten in natürlicher Sprache.

Fazit

Die Erstellung von Knowledge Graphs aus Texten erfordert einen systematischen Ansatz, der von der Entitätserkennung bis zur Beziehungsgenerierung reicht. Moderne Methoden nutzen fortschrittliche Sprachmodelle und optimierte Frameworks, um präzise und effiziente Knowledge Graphs zu erstellen. Durch die Integration von Verifikationsschritten und iterativen Verbesserungen können diese Systeme kontinuierlich optimiert werden, um genaue und zuverlässige Ergebnisse zu liefern.

Weitere spannende Inhalte zum Thema:

Retrieval Augmented Fine-Tuning (RAFT): Wie Sprachmodelle mit neuem Wissen schlauer werden

Large Language Model Pricing: Ein entscheidender Faktor bei der Wahl des richtigen LLMs

Fortschritte und Herausforderungen im Finetuning von großen Sprachmodellen

Externe Links:

Llama Index | Fraunhofer (RAG)

Referenzen:

1.     Wei, Xiang, et al. „Zero-shot information extraction via chatting with chatgpt.“ arXiv preprint arXiv:2302.10205 (2023).

2.     Sun, Qi, et al. „Consistency Guided Knowledge Retrieval and Denoising in LLMs for Zero-shot Document-level Relation Triplet Extraction.“ arXiv preprint arXiv:2401.13598 (2024).

3.     Chia, Yew Ken, et al. „RelationPrompt: Leveraging prompts to generate synthetic data for zero-shot relation triplet extraction.“ arXiv preprint arXiv:2203.09101 (2022).

4.     Melnyk, Igor, Pierre Dognin, and Payel Das. „Grapher: Multi-stage knowledge graph construction using pretrained language models.“ NeurIPS 2021 Workshop on Deep Generative Models and Downstream Applications. 2021.

5.     Han, Jiuzhou, et al. „Pive: Prompting with iterative verification improving graph-based generative capability of llms.“ arXiv preprint arXiv:2305.12392 (2023).

6.     Caufield JH, Hegde H, Emonet V, Harris NL, Joachimiak MP, Matentzoglu N, et al. Structured prompt interrogation and recursive extraction of semantics (SPIRES): A method for populating knowledge bases using zero-shot learning. Bioinformatics, Volume 40, Issue 3, March 2024, btae104

7.     Zhong, Lingfeng, et al. „A comprehensive survey on automatic knowledge graph construction.“ ACM Computing Surveys 56.4 (2023): 1-62.

Fußnoten:

[1] The image is adapted from [7], where the authors presented a comprehensive survey on automatic knowledge graph construction.