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.
Dieser Artikel wurde als Teil des Data Science -Blogathons veröffentlicht.
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.
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.
Wir werden nun die Grenzen des von Graphrag behandelten Lappen untersuchen:
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.
Die Indizierungsphase umfasst die folgenden Schritte:
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.
Lassen Sie uns nun die Python -Implementierung von Microsoft's GraphRag in detaillierten Schritten unten untersuchen:
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
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
Dieser Befehl führt zur Erstellung einer .Env -Datei und einer Einstellungsdatei.
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.
Wir führen die Indexierungspipeline mit dem folgenden Befehl aus dem Inneren des Ordners „GraphRag“ aus.
Python -m Graphrag.Index --root.
Alle im vorherigen Abschnitt unter der Indexierungsphase definierten Schritte finden im Backend, sobald wir den obigen Befehl ausführen.
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.
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.
Zusätzlich wird LancyB verwendet, um die Einbettungsdaten für jeden Textanteil zu speichern.
Der Ausgangsordner speichert viele Parkettdateien, die dem Diagramm und den zugehörigen Daten entsprechen, wie in der folgenden Abbildung gezeigt.
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.
Python -m Graphrag.Query -Root. -Methode Global "Was sind die Top-Themen im Dokument?"
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:
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.
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?
Ausgabe von Graphrag
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.
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.
Es gibt bestimmte Herausforderungen, die Grafrag im Folgenden kämpfen:
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.
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.
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!