12 Punkte von xguru 2024-07-03 | 1 Kommentare | Auf WhatsApp teilen
  • Eine Datenpipeline und Transformations-Suite, die dafür entwickelt wurde, mit den leistungsstarken Fähigkeiten von LLMs aussagekräftige strukturierte Daten aus unstrukturiertem Text zu extrahieren
  • Ein graphbasierter Ansatz, der Fragen und Antworten zu bisher nicht gesehenen Datensätzen ermöglicht
  • Das bereits im Februar vorgestellte Tool ist nun als Open Source veröffentlicht und bietet strukturiertere Informationsabfrage sowie umfassendere Antwortgenerierung

Hauptfunktionen

  • Nutzt große Sprachmodelle (LLMs), um aus Sammlungen von Textdokumenten automatisch reichhaltige Wissensgraphen zu extrahieren
  • Dieser graphbasierte Datenindex kann die semantische Struktur der Daten bereits vor der Benutzeranfrage abbilden
  • Erkennt hierarchisch „Communities“ aus dicht verknüpften Knoten und unterteilt den Graphen auf mehreren Ebenen von hochrangigen bis zu niedrigstufigen Themen
  • Durch die Zusammenfassung jeder dieser Communities mit LLMs entsteht eine hierarchische Zusammenfassung des Datensatzes, wodurch sich der Datensatz verstehen lässt, ohne im Voraus wissen zu müssen, welche Fragen gestellt werden sollten
  • Jede Community dient als Grundlage für eine Community-Zusammenfassung, die die zugehörigen Entitäten und Beziehungen beschreibt

Vorteile bei Antworten auf Fragen, die den gesamten Datensatz betreffen

  • Wie können diese „Community-Zusammenfassungen“ bei globalen Fragen helfen, also Fragen zum gesamten Datensatz, bei denen ein naiver RAG-Ansatz auf Basis von Vektorsuche Schwächen hat?
  • Zum Beispiel führen Fragen wie „Was sind die Hauptthemen des Datensatzes?“ bei naive RAG zwangsläufig zu irreführenden Antworten
  • Um globale Fragen zu beantworten, muss der gesamte Eingabetext berücksichtigt werden
  • Community-Zusammenfassungen können solche globalen Fragen mit einem Map-Reduce-Ansatz beantworten, der alle relevanten Inhalte des globalen Datenkontexts beibehält:
    1. Community-Berichte werden bis zur Größe des LLM-Kontextfensters gruppiert
    2. Die Frage wird auf jede Gruppe gemappt, um Community-Antworten zu erzeugen
    3. Alle relevanten Community-Antworten werden zu einer finalen globalen Antwort reduziert

Evaluierung und Ergebnisse

  • Um diesen Ansatz mit naive RAG und hierarchischer Zusammenfassung von Quelltexten zu vergleichen, wurde das LLM GPT-4 verwendet, um verschiedene activity-centered sense-making questions zu erzeugen
  • Für die erzeugten Antworten wurden drei Bewertungsmetriken ausgewählt: comprehensiveness (deckt alle Aspekte detailliert ab), diversity (bietet unterschiedliche Perspektiven), empowerment (unterstützt fundierte Entscheidungen)
  • GraphRAG zeigt gegenüber naive RAG eine bessere Leistung bei comprehensiveness und diversity (~70–80 % Gewinnrate)
  • Außerdem zeigt GraphRAG bei Verwendung von Community-Zusammenfassungen mittlerer und niedriger Ebene in diesen Aspekten bessere Leistung als Quelltext-Zusammenfassungen bei geringeren Token-Kosten (~20–70 % Token-Nutzung pro Anfrage)
  • Auf der höchsten Community-Ebene zeigte es eine mit hierarchischer Quelltext-Zusammenfassung konkurrenzfähige Leistung bei deutlich niedrigeren Token-Kosten (~2–3 % Token-Nutzung pro Anfrage)

Forschungserkenntnisse und künftige Ausrichtung

  • Der anfängliche Forschungszyklus belegt, dass LLMs aus unstrukturierten Texteingaben erfolgreich reichhaltige Wissensgraphen ableiten können
  • Diese Graphen können neue Arten globaler Abfragen unterstützen, für die naive RAG keine geeigneten Antworten erzeugen kann und bei denen hierarchische Quelltext-Zusammenfassungen zu teuer sind
  • Derzeit werden verschiedene Ansätze untersucht, um diese Kosten zu senken und gleichzeitig die Vorabkosten für die Erstellung des Graphenindex beizubehalten
  • Neuere Arbeiten zur automatischen Anpassung von LLM-Extraktions-Prompts an den Problembereich sind ein Beispiel dafür, wie sich der Vorabaufwand für das Anpassen dieser Prompts, das Auflisten von Entitätstypen und das Erstellen von Shot-Beispielen reduzieren lässt
  • Durch die öffentliche Bereitstellung von GraphRAG und den Solution Accelerators soll der graphbasierte RAG-Ansatz für Nutzer und Anwendungsfälle leichter zugänglich werden, bei denen ein ganzheitliches Verständnis der Daten wichtig ist

1 Kommentare

 
xguru 2024-07-04
Hacker-News-Kommentare
  • Das GraphRAG-Projekt von Microsoft nutzt eine Methode zum Aufbau von Wissensgraphen auch ohne moderne Extraktionsbibliotheken

    • Das liegt möglicherweise daran, dass Modelle wie GPT-4 Anweisungen zu bestimmten Formaten gut befolgen
    • Durch Beispiele werden sie dazu gebracht, dem gewünschten Schema zu folgen
  • Ich freue mich sehr darüber, dass Microsoft GraphRAG als Open Source veröffentlicht hat

    • Ich plane, GraphRAG und Llama3 auf einem MacBook auszuprobieren
    • Ich denke, dass dieses Tool ein Game Changer sein könnte
  • Ein Link für alle, die detailliertere Informationen zur GraphRAG-Methode suchen

  • Das GraphRAG-Projekt zeigt, dass eine Vektordatenbank für komplexe Suchanfragen eine vollständige RAG-Lösung bereitstellen kann

    • Um einen präzisen Wissensgraphen aufzubauen, reicht es nicht aus, nur Text in ein LLM zu laden
    • Dafür wurde das GraphRAG-SDK geschrieben, um eine stabile Ontologie zu erzeugen
  • Wissensgraphen ersetzen die traditionelle semantische Suche nicht, bieten bei der Ausführung von RAG aber neue Fähigkeiten

    • Lange Kontexte oder unterschiedliche Kontexte lassen sich konsistent und effizient durchsuchen
    • Die bisherigen Ergebnisse bei der Graph-Erzeugung mit LLMs waren unzureichend
    • Ich freue mich darauf, das auszuprobieren
  • Wenn ich das Paper richtig verstanden habe, wird das LLM beim Indexing mehrfach ausgeführt, um Entitäten zu extrahieren und einen Graph-Index aufzubauen

    • Der Graph wird mehrfach ausgeführt, um Cluster zu erzeugen
    • Zum Zeitpunkt der Abfrage werden alle Cluster ausgeführt, um aus jedem Cluster eine Antwort zu erzeugen und zu bewerten
    • Danach werden alle Antworten außer der mit der niedrigsten Bewertung ausgeführt, um eine „globale Antwort“ zu erzeugen
    • Diese Rechenanforderungen könnten bei großen Datensätzen untragbar sein
  • Ich habe bereits mehrere kleine Projekte mit Graphen und LLMs umgesetzt und bestätigt gesehen, dass dieser Ansatz funktioniert

    • Mir wurde klar, dass sich das mit Prompt Engineering und mehreren Durchläufen lösen lässt
    • Ich werde das ausprobieren und mich bei guten Ergebnissen bemühen, aus der Python-Umgebung herauszukommen
  • Ich frage mich, ob es mit der Knowledge Graph RAG Query Engine von LlamaIndex verwandt ist

  • Die Wahl des russisch-ukrainischen Kriegs als Beispiel ist interessant

    • Das könnte eine bewusste Entscheidung mit Blick auf Verträge zur Analyse militärischer Daten gewesen sein
  • Nachdem ich das Paper gelesen hatte, wollte ich dieses Projekt unbedingt ausprobieren

    • Ich wollte es selbst implementieren, dachte aber, der Code würde erst ein paar Wochen später erscheinen
    • Geduld hat sich ausgezahlt