Heim > Technologie-Peripheriegeräte > KI > Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Christopher Nolan
Freigeben: 2025-03-17 11:17:09
Original
713 Leute haben es durchsucht

GraphRag verwendet eine strukturiertere und hierarchischer Methode zum Abrufen von Augmented Generation (RAG) und unterscheidet sich von traditionellen Lag -Ansätzen, die auf grundlegenden semantischen Suchanfragen unorganisierter Textausschnitte beruhen. Der Prozess beginnt mit der Konvertierung von Rohtext in ein Wissensgraphen, die Organisation der Daten in eine Gemeinschaftsstruktur und die Zusammenfassung dieser Gruppierungen. Dieser strukturierte Ansatz ermöglicht es GraphRag, diese organisierten Informationen zu nutzen, seine Wirksamkeit bei Aufgaben auf ragenbasierten Fabriken zu verbessern und präziseere und kontextbezogene Ergebnisse zu liefern.

Lernziele

  • Verstehen Sie, was Graphgrag ist, und erforschen Sie die Bedeutung von Graphrag und wie es die traditionellen naiven Lappenmodelle verbessert.
  • Erhalten Sie ein tieferes Verständnis von Microsofts Graphrag, insbesondere der Anwendung von Wissensgraphen, der Erkennung von Community und hierarchischen Strukturen. Erfahren Sie, wie sowohl globale als auch lokale Suchfunktionen in diesem System funktionieren.
  • Nehmen Sie an einer praktischen Python-Implementierung der Microsoft-GraphRAG-Bibliothek teil, um ein praktisches Verständnis für den Workflow und die Integration zu erhalten.
  • Vergleichen und kontrastieren Sie die von Graphrag und traditionellen RAG -Methoden erzeugten Ausgänge, um die Verbesserungen und Unterschiede hervorzuheben.
  • Identifizieren Sie die wichtigsten Herausforderungen von GraphRAG, einschließlich ressourcenintensiver Prozesse und Optimierungsanforderungen in groß angelegten Anwendungen.

Dieser Artikel wurde als Teil des Data Science -Blogathons veröffentlicht.

Inhaltsverzeichnis

  • Lernziele
  • Was ist Graphgrag?
  • Warum Graphrag über traditionellem/naivem Lappen?
  • Einschränkungen des von Graphrag behandelten Lappen
  • Wie funktioniert Microsoft's Graphrag?
    • Indexierungsphase
    • Abfragephase
  • Python -Implementierung von Microsoft's GraphRag
    • STEP1: Erstellen von Python Virtual Umgebung und Installation der Bibliothek
    • STEP2: Generation von Einstellungen.YAML -Datei
    • Schritt 3: Ausführen der Indexierungspipeline
    • Schritt 4: Ausführen einer Anfrage
    • Lokale Suche
  • Herausforderungen von Graphrag
  • Abschluss
    • Key Takeaways
  • Häufig gestellte Fragen

Was ist Graphgrag?

Die relieval-augmented-Generation (RAG) ist eine neuartige Methodik, die die Kraft von vorgebliebenen Großsprachenmodellen (LLMs) mit externen Datenquellen integriert, um präzise und kontextbezogene Ausgaben zu erstellen. Die Synergie des Zustands der Kunst-LLMs mit kontextbezogenen Daten ermöglicht es, Antworten zu liefern, die nicht nur gut geartet, sondern auch in sachlich und domänenspezifischen Wissen beruht.

GraphRAG (Graph-basierte Abrufgütergenerierung) ist eine erweiterte Methode für Standard- oder herkömmliche Lappen, die diese durch Nutzung von Wissensgraphen erhöht, um das Abrufen des Informationen und die Reaktionsgenerierung zu verbessern. Im Gegensatz zu Standard Rag, der sich auf einfache semantische Suche und einfache Textausschnitte beruht, organisiert und verarbeitet Graphrag Informationen in einem strukturierten, hierarchischen Format.

Warum Graphrag über traditionellem/naivem Lappen?

Kämpfe mit Informationen, die über verschiedene Quellen verteilt sind. Die traditionelle Wiederholungserzeugung (RAG) steht vor Herausforderungen, wenn es darum geht, Informationen über mehrere Quellen zu synthetisieren. Es hat Schwierigkeiten, Erkenntnisse zu identifizieren und zu kombinieren, die durch subtile oder indirekte Beziehungen verbunden sind, was es für Fragen, die miteinander verbundenen Denken erforderlich sind, weniger effektiv werden.

Fehlt es, einen breiteren Kontext zu erfassen. Traditionelle Lag -Methoden erfassen häufig den breiteren Kontext oder die Zusammenfassung komplexer Datensätze. Diese Einschränkung ergibt sich aus einem Mangel an tieferem semantischem Verständnis, das zur Extraktion übergeordneter Themen erforderlich ist, oder destillieren wichtige wichtige Punkte aus komplizierten Dokumenten genau. Wenn wir eine Abfrage wie „Was sind die Hauptthemen im Datensatz?“ Ausführen, wird es für herkömmliche Lappen schwierig, relevante Textbrocken zu identifizieren, es sei denn, der Datensatz definiert diese Themen explizit. Im Wesentlichen ist dies eher eine auf Abfrage ausgerichtete Zusammenfassung und eher eine explizite Abrufaufgabe, bei der der traditionelle Lappen zu kämpfen hat.

Einschränkungen des von Graphrag behandelten Lappen

Wir werden nun die Grenzen des von Graphrag behandelten Lappen untersuchen:

  • Durch die Nutzung der Verbindungen zwischen Entitäten verfeinert Graphrag seine Fähigkeit, relevante Daten mit höherer Genauigkeit zu bestimmen und abzurufen.
  • Durch die Verwendung von Wissensgraphen bietet Graphrag ein detaillierteres und differenzierteres Verständnis von Abfragen, was bei genauerer Reaktionserzeugung unterstützt wird.
  • Durch die Erde der Antworten in strukturierten Faktendaten reduziert Graphrag die Chancen, falsche oder hergestellte Informationen zu erstellen.

Wie funktioniert Microsoft's Graphrag?

Graphrag erweitert die Fähigkeiten der traditionellen Abrufgenerierung (RAG), indem ein zweiphasige Betriebsdesign einbezogen wird: eine Indexierungsphase und eine Abfragephase. Während der Indexierungsphase erstellt es ein Wissensgraphen, wodurch hierarchisch die extrahierten Informationen organisiert werden. In der Abfragephase nutzt es diese strukturierte Darstellung, um sehr kontextbezogene und präzise Antworten auf Benutzeranfragen zu liefern.

Indexierungsphase

Die Indizierungsphase umfasst die folgenden Schritte:

  • Teilen Sie Eingabetexte in kleinere, überschaubare Stücke auf.
  • Enthand der Entitäten und Beziehungen aus jedem Chunk.
  • Fassen Sie Entitäten und Beziehungen in ein strukturiertes Format zusammen.
  • Erstellen Sie einen Wissensgraphen mit Knoten als Entitäten und Kanten als Beziehungen.
  • Identifizieren Sie die Gemeinschaften innerhalb des Wissensgrafiks mithilfe von Algorithmen.
  • Fassen Sie einzelne Unternehmen und Beziehungen innerhalb kleinerer Gemeinschaften zusammen.
  • Erstellen Sie höhere Zusammenfassungen für aggregierte Gemeinschaften hierarchisch.

Abfragephase

Ausgestattet mit einem Wissensdiagramm und detaillierten Zusammenfassungen der Community kann Graphrag dann auf Benutzeranfragen reagieren, wobei eine gute Genauigkeit die verschiedenen in der Abfragephase vorhandenen Schritte nutzt.

Globale Suche - Nach Anfragen, die eine breite Analyse des Datensatzes erfordern, wie z. B. „Was werden die Hauptthemen diskutiert?“, Verwendet Graphrag die zusammengestellten Zusammenfassungen der Community. Dieser Ansatz ermöglicht es dem System, Erkenntnisse im Datensatz im Datensatz zu integrieren und gründliche und abgerundete Antworten zu liefern.

Lokale Suche - Für Abfragen, die auf eine bestimmte Entität abzielen, nutzt Graphrag die miteinander verbundene Struktur des Wissensgraphen. Durch die Navigation der unmittelbaren Verbindungen des Unternehmens und die Prüfung der damit verbundenen Behauptungen sammelt es relevante Details, sodass das System genaue und kontextsensitive Antworten liefern kann.

Python -Implementierung von Microsoft's GraphRag

Lassen Sie uns nun die Python -Implementierung von Microsoft's GraphRag in detaillierten Schritten unten untersuchen:

STEP1: Erstellen von Python Virtual Umgebung und Installation der Bibliothek

Erstellen Sie einen Ordner und erstellen Sie eine virtuelle Python -Umgebung darin. Wir erstellen den Ordner Graphrag wie unten gezeigt. Innerhalb des Ordners erstellte Ordner installieren wir die GraphRAG -Bibliothek mit dem Befehl "PIP Installation GraphRag".

 PIP Installieren Sie GraphRag
Nach dem Login kopieren

STEP2: Generation von Einstellungen.YAML -Datei

Im Ordner GraphRag erstellen wir einen Eingabefordner und stellen einige Textdateien in den Ordner ein. Wir haben diese TXT -Datei verwendet und sie im Eingangsordner gehalten. Der Text des Artikels wurde von dieser Nachrichtenwebsite entnommen.

Führen Sie aus dem Ordner, der den Eingabeforder enthält, den folgenden Befehl aus:

 python -m graphrag.index - -init -root
Nach dem Login kopieren

Dieser Befehl führt zur Erstellung einer .Env -Datei und einer Einstellungsdatei.

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Geben Sie in der.Envile Ihre OpenAI -Taste ein, die sie dem GraphRag_API_Key zuweist. Dies wird dann von der Datei "Einstellungen" unter den Feldern "LLM" verwendet. Andere Parameter wie Modellname Max_tokens, Chunk -Größe unter anderem können in der Datei der Einstellungen definiert werden. Wir haben das "GPT-4O" -Modell verwendet und es in der Datei "Einstellungen" definiert.

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Schritt 3: Ausführen der Indexierungspipeline

Wir führen die Indexierungspipeline mit dem folgenden Befehl aus dem Inneren des Ordners „GraphRag“ aus.

 Python -m Graphrag.Index --root.
Nach dem Login kopieren

Alle im vorherigen Abschnitt unter der Indexierungsphase definierten Schritte finden im Backend, sobald wir den obigen Befehl ausführen.

Eingabeaufgabe

Um alle Schritte der Indexierungsphase auszuführen, z. B. Entitäts- und Beziehungserkennung, Erstellung von Wissensgrafiken, Community -Erkennung und Zusammenfassung der Erzeugung verschiedener Gemeinschaften, führt das System mehrere LLM -Aufrufe durch, wobei die Eingabeaufforderungen im Ordner „Eingabeaufforderungen“ definiert sind. Das System generiert diesen Ordner automatisch, wenn Sie den Indexierungsbefehl ausführen.

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Die Anpassung der Eingabeaufforderungen zur Einrichtung der spezifischen Domäne Ihrer Dokumente ist für die Verbesserung der Ergebnisse von wesentlicher Bedeutung. In der Datei entity_extraction.txt können Sie beispielsweise Beispiele für relevante Entitäten der Domain behalten. Ihr Textkorpus ist eingeschaltet, um genauere Ergebnisse von LAG zu erhalten.

Einbettungsdings, die in Lancedb gespeichert sind

Zusätzlich wird LancyB verwendet, um die Einbettungsdaten für jeden Textanteil zu speichern.

Parquetendateien für Grafikdaten

Der Ausgangsordner speichert viele Parkettdateien, die dem Diagramm und den zugehörigen Daten entsprechen, wie in der folgenden Abbildung gezeigt.

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Schritt 4: Ausführen einer Anfrage

Um eine globale Abfrage wie „Top -Themen des Dokuments“ auszuführen, können wir den folgenden Befehl vom Terminal innerhalb des GraphRag -Ordners ausführen.

Globale Suche

 Python -m Graphrag.Query -Root. -Methode Global "Was sind die Top-Themen im Dokument?"
Nach dem Login kopieren

Eine globale Abfrage verwendet die generierten Zusammenfassungen der Community, um die Frage zu beantworten. Die Zwischenantworten werden verwendet, um die endgültige Antwort zu generieren.

Die Ausgabe für unsere TXT -Datei ist Folgendes lautet:

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Vergleich mit der Ausgabe von naiven Lappen:

Der Code für naive Lappen befindet sich in meinem Github .

 1. Die Integration von SAP- und Microsoft 365 -Anwendungen
2. Das Potenzial für eine nahtlose Benutzererfahrung
3. Die Zusammenarbeit zwischen SAP und Microsoft
4. Das Ziel, die Produktivität zu maximieren
5. Die Vorschau bei Microsoft Ignite
6. Die begrenzte Vorschau -Ankündigung
7. Die Möglichkeit, sich für die begrenzte Vorschau zu registrieren.
Nach dem Login kopieren

Lokale Suche

Um eine lokale Abfrage auszuführen, die für unser Dokument relevant ist, wie "Was arbeitet Microsoft und SAP zusammen? Der folgende Befehl bezeichnet die Abfrage speziell als lokale Abfrage und stellt sicher, dass die Ausführung tiefer in das Wissensgraphen eintaucht, anstatt sich auf die in globalen Abfragen verwendeten Community -Zusammenfassungen zu verlassen.

 Python -m Graphrag.Query -Root. --Methode Local "Worauf arbeiten SAP und Microsoft gemeinsam?
Nach dem Login kopieren

Ausgabe von Graphrag

Graphrag von der Theorie zur Implementierung - Analytics Vidhya

Vergleich mit der Ausgabe von naiven Lappen :

Der Code für naive Lappen befindet sich in meinem Github .

 Microsoft und SAP arbeiten an einer nahtlosen Integration ihrer KI -Copiloten Joule und Microsoft 365 Copilot, um die Produktivität der Arbeitsplatz neu zu definieren und Benutzern die Ausführung von Aufgaben und Zugriff auf Daten aus beiden Systemen zu ermöglichen, ohne zwischen Anwendungen zu wechseln.
Nach dem Login kopieren

Wie sowohl aus den globalen als auch aus den lokalen Ausgaben beobachtet, sind die Antworten von Graphrag im Vergleich zu Antworten von naivem Lappen viel umfassender und erklärbarer.

Herausforderungen von Graphrag

Es gibt bestimmte Herausforderungen, die Grafrag im Folgenden kämpfen:

  • Mehrere LLM -Anrufe: Aufgrund der mehrfachen LLM -Anrufe kann GraphRag teuer und langsam sein. Die Kostenoptimierung wäre daher unerlässlich, um die Skalierbarkeit zu gewährleisten.
  • Hoher Ressourcenverbrauch: Das Erstellen und Abfragen von Wissensgraphen beinhaltet erhebliche Rechenressourcen, insbesondere bei der Skalierung großer Datensätze. Die Verarbeitung großer Diagramme mit vielen Knoten und Kanten erfordert sorgfältige Optimierung, um Leistungs Engpässe zu vermeiden.
  • Komplexität im semantischen Clustering: Die Identifizierung sinnvoller Cluster mithilfe von Algorithmen wie Leiden kann eine Herausforderung sein, insbesondere für Datensätze mit locker verbundenen Entitäten. Fehl identifizierte Cluster können zu fragmentierten oder übermäßig breiten Zusammenfassungen der Gemeinschaft führen
  • Umgang mit verschiedenen Datenformaten: GraphRag basiert auf strukturierten Eingaben, um aussagekräftige Beziehungen zu extrahieren. Unstrukturierte, inkonsistente oder verrauschte Daten können den Extraktions- und Graph-Bauprozess erschweren

Abschluss

GraphRAG zeigt erhebliche Fortschritte gegenüber dem traditionellen Lappen, indem er seine Grenzen in Bezug auf Argumentation, Kontextverständnis und Zuverlässigkeit befasst. Es zeichnet sich in der Synthese von dispergierten Informationen über Datensätze hinweg durch, indem Sie Wissensgrafiken und strukturierte Entitätsbeziehungen nutzen und ein tieferes semantisches Verständnis ermöglichen.

Microsofts GraphRag verbessert den traditionellen Lappen, indem ein Zwei-Phasen-Ansatz kombiniert wird: Indexierung und Abfrage. Die Indexierungsphase erstellt einen hierarchischen Wissensgraphen aus extrahierten Entitäten und Beziehungen, wodurch Daten in strukturierte Zusammenfassungen organisiert werden. In der Abfragephase nutzt GraphRag diese Struktur für präzise und kontextreiche Antworten und sorgt für die globale Datensatzanalyse und spezifische entitätsbasierte Abfragen.

Die Vorteile von Graphgrag sind jedoch mit Herausforderungen verbunden, einschließlich hoher Ressourcenanforderungen, der Abhängigkeit von strukturierten Daten und der Komplexität der semantischen Clusterbildung. Trotz dieser Hürden legt seine Fähigkeit, genaue, ganzheitliche Reaktionen zu liefern, als leistungsstarke Alternative zu naiven Lappensystemen für den Umgang mit komplizierten Abfragen fest.

Key Takeaways

  • GraphRAG verbessert den Lappen, indem er Rohtext in hierarchische Wissensgraphen organisiert und präzise und kontextbezogene Antworten ermöglicht.
  • Es verwendet Community-Zusammenfassungen für breite Analyse- und Graph-Verbindungen für bestimmte, eingehende Abfragen.
  • GraphRAG überwacht die Einschränkungen im Kontextverständnis und im Argumentation, indem Unternehmensverbindungen und strukturierte Daten eingesetzt werden.
  • Die GraphRAG -Bibliothek von Microsoft unterstützt die praktische Anwendung mit Tools zur Erstellung und Abfrage von Wissensgraphen.
  • Trotz seiner Präzision sieht sich Graphrag Hürden wie Ressourcenintensität, semantischer Clustering -Komplexität und Umgang mit unstrukturierten Daten aus.
  • Durch die Erde von Reaktionen im strukturierten Wissen reduziert Graphrag Ungenauigkeiten, die in herkömmlichen Lappensystemen üblich sind.
  • Ideal für komplexe Abfragen, die miteinander verbundener Argumentation erfordern, wie z. B. thematische Analyse oder entitätspezifische Erkenntnisse.

Häufig gestellte Fragen

Q1. Warum wird Graphgrag gegenüber traditionellen Lappen für komplexe Abfragen bevorzugt?

A. Graphrag zeichnet sich aus, um Erkenntnisse über verstreute Quellen hinweg zu synthetisieren, indem sie die Verbindungen zwischen Entitäten nutzen, im Gegensatz zu traditionellen Lappen, die mit der Identifizierung von subtilen Beziehungen zu kämpfen haben.

Q2. Wie erstellt Graphrag während der Indexierungsphase ein Wissensgraphen?

A. Es verarbeitet Textbrocken, um Entitäten und Beziehungen zu extrahieren, organisiert sie hierarchisch mithilfe von Algorithmen wie Leiden und erstellt ein Wissensgraphen, in dem Knoten Entitäten und Kanten Beziehungen darstellen.

Q3. Was sind die beiden wichtigsten Suchmethoden in der Abfragephase von GraphRag?

Globale Suche: Verwendet Community -Zusammenfassungen für eine breite Analyse und Beantwortung von Abfragen wie „Was werden die Hauptthemen diskutiert?“.
Lokale Suche: Konzentriert sich auf bestimmte Entitäten, indem sie ihre direkten Verbindungen im Wissensgraphen untersuchen.

Q4. Welche Herausforderungen stellen sich Graphrag gegenüber?

A. Graphrag begegnet Probleme wie hohe Rechenkosten aufgrund mehrerer LLM -Aufrufe, Schwierigkeiten bei der semantischen Clusterbildung und Komplikationen bei der Verarbeitung unstrukturierter oder lautes Daten.

Q5. Wie verstärkt Graphrag das Kontextverständnis bei der Reaktionsgenerierung?

A. Indem Graphrag seine Antworten in hierarchischen Wissensgrafiken und Community-basierten Zusammenfassungen erdenkt, bietet er ein tieferes semantisches Verständnis und kontextuell reichhaltige Antworten.

Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Das obige ist der detaillierte Inhalt vonGraphrag von der Theorie zur Implementierung - Analytics Vidhya. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage