AI Personal Learning
und praktische Anleitung
TRAE

ZEP: Eine temporale Wissensgraphenarchitektur für ein intelligentes Körpergedächtnis

Abstracts

Wir stellen Zep vor, einen neuartigen Memory-Layer-Dienst für Intelligenz, der das derzeitige State-of-the-Art-System MemGPT in Deep-Memory-Retrieval (DMR)-Benchmarks übertrifft und darüber hinaus in umfassenderen und anspruchsvolleren Evaluierungen als DMR glänzt, die reale Anwendungsfälle in Unternehmen besser widerspiegeln. Während bestehende Large Language Model (LLM)-basierte Retrieval Augmented Generation (RAG)-Frameworks auf die statische Abfrage von Dokumenten beschränkt sind, müssen Unternehmensanwendungen Wissen aus verschiedenen Quellen, einschließlich laufender Konversationen und Geschäftsdaten, dynamisch integrieren.Zep adressiert diese grundlegende Einschränkung mit seiner Kernkomponente Graphiti, einer zeitbewussten Knowledge Graph Engine. Sie integriert dynamisch unstrukturierte Konversationsdaten und strukturierte Geschäftsdaten unter Beibehaltung historischer Beziehungen. Zep hat seine überlegene Leistung (94,81 TP3T gegenüber 93,41 TP3T) in einem DMR-Benchmark-Test des MemGPT-Teams bewiesen. Zusätzlich zu DMR wurden die Fähigkeiten von Zep in dem anspruchsvolleren LongMemEval-Benchmark, der die Anwendungsfälle in Unternehmen durch komplexe temporale Schlussfolgerungen besser widerspiegelt, weiter validiert. In dieser Evaluierung verbesserte Zep die Genauigkeit um bis zu 18,51 TP3T bei gleichzeitiger Reduzierung der Antwortlatenz um 901 TP3T im Vergleich zur Basisimplementierung. Diese Ergebnisse sind besonders bei unternehmenskritischen Aufgaben wie der sitzungsübergreifenden Informationssynthese und der langfristigen Kontextpflege von Bedeutung und zeigen die Effektivität von Zep in realen Anwendungen.

1. einleitung

In den letzten Jahren haben die Auswirkungen von Transformator-basierten großen Sprachmodellen (LLMs) auf Industrie und Forschung viel Aufmerksamkeit erregt [1]. Eine wichtige Anwendung von LLMs ist die Entwicklung von Chat-basierten Intelligenzen. Die Fähigkeiten dieser Intelligenzen sind jedoch durch das LLM-Kontextfenster, die effektive Nutzung des Kontexts und das beim Vortraining gewonnene Wissen begrenzt. Daher wird zusätzlicher Kontext benötigt, um Wissen außerhalb der Domäne (OOD) bereitzustellen und Illusionen zu verringern.

Retrieval Augmented Generation (RAG) ist zu einem wichtigen Interessengebiet für LLM-Anwendungen geworden. RAG nutzt Information Retrieval (IR)-Techniken, die in den letzten fünfzig Jahren entwickelt wurden [2], um das notwendige Domänenwissen für LLM bereitzustellen.


Derzeitige Ansätze zur Nutzung von RAG konzentrieren sich auf umfangreiches Domänenwissen und relativ statische Korpora - d.h. der Inhalt der Dokumente, die einem Korpus hinzugefügt werden, ändert sich nur selten. Damit Intelligenzen in unserem täglichen Leben allgegenwärtig werden und in der Lage sind, autonom Probleme zu lösen, die von trivial bis hochkomplex reichen, benötigen sie Zugang zu einem sich ständig weiterentwickelnden großen Korpus, der durch Interaktionen zwischen Nutzer und Intelligenz generiert wird, sowie zu relevanten Geschäfts- und Weltdaten. Wir glauben, dass die Ausstattung von Intelligenzen mit einem solchen umfangreichen und dynamischen "Gedächtnis" eine Schlüsselkomponente für die Verwirklichung dieser Vision ist, und wir glauben nicht, dass die derzeitigen RAG-Ansätze für diese Zukunft geeignet sind. Da ganze Dialogverläufe, Geschäftsdatensätze und andere domänenspezifische Inhalte nicht effektiv an das kontextuelle Fenster des LLM angepasst werden können, müssen neue Ansätze entwickelt werden, um mit dem intelligenten Körpergedächtnis umzugehen. Das Hinzufügen von Gedächtnis zu LLM-gesteuerten Intelligenzen ist keine neue Idee - dieses Konzept wurde bereits in MemGPT [3] erforscht.

Kürzlich wurden Wissensgraphen (Knowledge Graphs, KGs) zur Erweiterung von RAG-Architekturen verwendet, um viele der Unzulänglichkeiten traditioneller IR-Techniken zu beheben [4]. In diesem Beitrag stellen wir Zep [5] vor, einen In-Memory-Layer-Service, der von Graphiti [6], einer dynamischen, zeitbewussten Wissensgraphen-Engine, angetrieben wird.Zep nimmt unstrukturierte Nachrichtendaten und strukturierte Geschäftsdaten auf und synthetisiert sie.Die Graphiti KG-Engine aktualisiert den Wissensgraphen dynamisch und verlustfrei mit neuen Informationen. Die Graphiti KG-Engine aktualisiert den Wissensgraphen dynamisch und verlustfrei mit neuen Informationen, wobei sie eine Zeitleiste der Fakten und Beziehungen, einschließlich ihrer Verfallsdaten, aufrechterhält. Dieser Ansatz ermöglicht es dem Knowledge Graph, eine komplexe, sich entwickelnde Welt darzustellen.

Da Zep ein Produktionssystem ist, legen wir großen Wert auf die Genauigkeit, Latenz und Skalierbarkeit seiner Speicherabrufmechanismen. Wir verwenden zwei bestehende Benchmarks, um die Effektivität dieser Mechanismen zu bewerten: die Deep Memory Retrieval Aufgabe (DMR) in MemGPT [3] und den LongMemEval Benchmark [7].

2. die Kartierung von Wissen

In Zep wird das Gedächtnis durch einen zeitbewussten dynamischen Wissensgraphen ℊ = (𝓃, ℯ, φ) unterstützt, wobei 𝓃 für einen Knoten, ℯ für eine Kante und φ:ℯ→ 𝓃 × 𝓃 eine formalisierte Assoziationsfunktion darstellt. Dieser Graph besteht aus drei hierarchischen Teilgraphen: dem Handlungs-Teilgraphen, dem semantischen Entitäts-Teilgraphen und dem Gemeinschafts-Teilgraphen.

2.1 Episoden

Die Graphenkonstruktion von Zep beginnt mit der Aufnahme von Rohdateneinheiten, die Episoden genannt werden. Während jeder Typ eine spezifische Verarbeitung während der Konstruktion des Graphen erfordert, konzentrieren wir uns in dieser Arbeit auf den Nachrichtentyp, da sich unsere Experimente auf das Dialoggedächtnis konzentrieren. In unserem Kontext besteht eine Nachricht aus einem relativ kurzen Text (mehrere Nachrichten können an das Kontextfenster des LLM angepasst werden) und den zugehörigen Teilnehmern, die den Diskurs produziert haben.

Jede Nachricht enthält einen Referenzzeitstempel trefDie Tageszeit, die angibt, wann die Nachricht gesendet wurde. Diese zeitlichen Informationen ermöglichen es Zep, relative oder partielle Daten, die im Inhalt der Nachricht erwähnt werden, genau zu identifizieren und zu extrahieren (z. B. "nächsten Donnerstag", "in vierzehn Tagen" oder "letzten Sommer"). Zep implementiert ein diachrones Modell, bei dem die Zeitleiste T die chronologische Reihenfolge der Ereignisse darstellt, und die Zeitleiste T steht für die chronologische Reihenfolge der Aufnahme von Zep-Daten. Obwohl T Zeitleisten dienen dem traditionellen Zweck der Datenbankprüfung, aber die T-Zeitleiste bietet eine zusätzliche Dimension zur Modellierung der dynamischen Natur von Dialogdaten und Speicher. Dieser Dual-Time-Ansatz stellt einen neuartigen Fortschritt in der Konstruktion von LLM-Wissensgraphen dar und untermauert die einzigartigen Fähigkeiten von Zep im Vergleich zu früheren graphbasierten RAG-Vorschlägen.

Grundstücksseite ℯe Verbinden Sie Plots mit ihren extrahierten Entity-Knoten. Plots und ihre abgeleiteten semantischen Kanten erhalten bidirektionale Indizes, die die Beziehung zwischen einer Kante und ihrem Quellplot verfolgen. Dieses Design verbessert die verlustfreie Natur von Graphiti's Plot-Subgraphen, indem es eine Vorwärts- und Rückwärtstraversierung ermöglicht: Semantische Artefakte können zu ihren Quellen zurückverfolgt werden, um sie zu zitieren oder zu referenzieren, während Plots schnell für ihre zugehörigen Entitäten und Fakten abgerufen werden können. Obwohl diese Verbindungen in den Experimenten dieser Arbeit nicht direkt untersucht wurden, werden sie in zukünftigen Arbeiten erforscht werden.

2.2 Semantische Einheiten und Fakten

2.2.1 Entitäten

Die Extraktion von Entitäten ist die erste Phase der Episodenverarbeitung. Während der Ingestion verarbeitet das System den aktuellen Nachrichteninhalt und die letzte n Nachricht, um den Kontext für die Erkennung benannter Entitäten zu liefern. Für diese Arbeit und für die allgemeine Implementierung von Zep wird dien=4 wurden zwei vollständige Dialogrunden zur kontextuellen Bewertung bereitgestellt. Da wir uns auf die Verarbeitung von Nachrichten konzentrieren, wird der Sprecher automatisch als Entität extrahiert. Nach der anfänglichen Entitätsextraktion wenden wir eine von der Reflexion [12] inspirierte Technik an, um Täuschungen zu minimieren und die Extraktionsabdeckung zu verbessern. Das System extrahiert auch Zusammenfassungen von Entitäten aus der Episode, um die anschließende Auflösung von Entitäten und die Abfrage zu erleichtern.

Nach der Extraktion bettet das System jeden Entitätsnamen in einen 1024-dimensionalen Vektorraum ein. Diese Einbettung ermöglicht es, ähnliche Knoten unter den vorhandenen Graph-Entitätsknoten durch Kosinus-Ähnlichkeitssuche zu finden. Das System führt außerdem eine separate Volltextsuche in den vorhandenen Entitätsnamen und Zusammenfassungen durch, um zusätzliche Kandidatenknoten zu identifizieren. Diese Kandidatenknoten werden dann zusammen mit dem Handlungskontext durch LLM unter Verwendung unserer Hinweise zur Entitätsauflösung verarbeitet. Wenn das System doppelte Entitäten identifiziert, generiert es einen aktualisierten Namen und Abstract.

Nach der Entitätsextraktion und dem Parsing fügt das System die Daten mithilfe vordefinierter Cypher-Abfragen in den Wissensgraphen ein. Wir haben diesen Ansatz gegenüber LLM-generierten Datenbankabfragen gewählt, um ein einheitliches Architekturformat zu gewährleisten und die Wahrscheinlichkeit von Halluzinationen zu verringern.

Ausgewählte Tipps zur Erstellung von Atlanten finden Sie im Anhang.

2.2.2 Fakten

für jeden Fakt, der sein Schlüsselprädikat enthält. Ebenso kann derselbe Fakt mehrfach über verschiedene Entitäten hinweg extrahiert werden, so dass Graphiti durch die Implementierung von Hyperedges komplexe Multi-Entitäts-Fakten modellieren kann.

Nach der Extraktion erzeugt das System Einbettungen für Fakten als Vorbereitung für die Graphenintegration. Das System führt eine Kanten-Deduplizierung durch einen Prozess durch, der der Entitätsauflösung ähnelt. Hybride suchbezogene Kanten werden auf Kanten beschränkt, die zwischen Paaren von Entitäten existieren, die mit den vorgeschlagenen neuen Kanten identisch sind. Diese Einschränkung verhindert nicht nur falsche Kombinationen ähnlicher Kanten zwischen verschiedenen Entitäten, sondern reduziert auch die Rechenkomplexität des Deduplizierungsprozesses erheblich, indem der Suchraum auf eine Teilmenge von Kanten beschränkt wird, die mit einem bestimmten Entitätspaar verbunden sind.

2.2.3 Zeitextraktion und Kanteninvalidierung

Ein wesentliches Unterscheidungsmerkmal von Graphiti im Vergleich zu anderen Wissensgraphen-Engines besteht darin, dass es dynamische Informationsaktualisierungen durch zeitliche Extraktions- und Kanteninvalidierungsprozesse verwaltet.

Systemnutzung tref Extrahieren zeitlicher Informationen über Fakten aus dem Handlungskontext. Dies ermöglicht eine genaue Extraktion und Darstellung von Zeitangaben, einschließlich absoluter Zeitangaben (z. B. "Alan Turing wurde am 23. Juni 1912 geboren") und relativer Zeitangaben (z. B. "Ich habe meinen neuen Job vor zwei Wochen angetreten"). In Übereinstimmung mit unserem Ansatz der dualen Zeitmodellierung verfolgt das System vier Zeitstempel:t Erstellen und t Verfall ∈T Überwachen Sie, wann Fakten im System angelegt oder ungültig gemacht werden, und die tgültig im Gesang antworten tungültigT Verfolgt den Zeitrahmen, in dem der Sachverhalt festgestellt wurde. Diese zeitlichen Datenpunkte werden auf der Seite zusammen mit anderen Sachinformationen gespeichert.

Die Einführung neuer Kanten kann bestehende Kanten in der Datenbank ungültig machen. Das System verwendet LLM, um neue Kanten mit semantisch verwandten bestehenden Kanten zu vergleichen, um mögliche Widersprüche zu identifizieren. Wenn das System einen zeitlichen Widerspruch feststellt, tut es dies durch den Vergleich der tungültig Setzen Sie auf die ungültige Seite der tgültig um die betroffenen Kanten zu entwerten. Gemäß dem Zeitplan der Transaktion TBei der Entscheidung über die Invalidierung von Kanten gibt Graphiti neuen Informationen stets den Vorrang.

Dieser integrierte Ansatz ermöglicht es, Daten dynamisch zu Graphiti hinzuzufügen, wenn sich Unterhaltungen entwickeln, während der aktuelle Beziehungsstatus und die Entwicklung der Beziehung im Laufe der Zeit erhalten bleiben.

2.3 Gemeinschaft

Nach der Erstellung des Plots und der semantischen Teilgraphen konstruiert das System Community-Teilgraphen durch Community-Erkennung. Während unser Ansatz zur Erkennung von Gemeinschaften auf den in GraphRAG [4] beschriebenen Techniken aufbaut, verwenden wir den Label-Propagation-Algorithmus [13] anstelle des Leiden-Algorithmus [14]. Diese Wahl wird durch eine einfache dynamische Erweiterung der Label-Propagation beeinflusst, die es dem System ermöglicht, genaue Community-Darstellungen über längere Zeiträume aufrechtzuerhalten, wenn neue Daten in den Graphen eintreten, wodurch die Notwendigkeit einer vollständigen Aktualisierung der Community aufgeschoben wird.

Die dynamische Expansion implementiert die Logik eines einzelnen rekursiven Schritts in der Label-Propagation. Wenn das System dem Graphen einen neuen Entitätsknoten hinzufügt ni ∈Ns Wenn dies der Fall ist, werden die Gemeinschaften der Nachbarknoten untersucht. Das System ordnet den neuen Knoten der Gemeinschaft zu, die von der Mehrheit seiner Nachbarn gehalten wird, und aktualisiert dann die Zusammenfassung der Gemeinschaft und den Graphen entsprechend. Durch diese dynamische Aktualisierung können die Gemeinschaften zwar effizient skaliert werden, wenn Daten in das System fließen, aber die resultierenden Gemeinschaften weichen allmählich von denen ab, die durch vollständige Label-Propagationsläufe erzeugt werden. Daher sind regelmäßige Aktualisierungen der Communitys weiterhin erforderlich. Diese dynamische Aktualisierungsstrategie stellt jedoch eine praktische Heuristik dar, die die Latenzzeit und die LLM-Inferenzkosten erheblich reduziert.

In Anlehnung an [4] enthalten unsere Community-Knoten Zusammenfassungen, die durch iterative Map-Reduce-Zusammenfassungen von Mitgliedsknoten abgeleitet werden. Unser Retrieval-Ansatz unterscheidet sich jedoch deutlich vom Map-Reduce-Ansatz von GraphRAG [4]. Um unseren Suchansatz zu unterstützen, haben wir Community-Namen generiert, die Schlüsselbegriffe und verwandte Themen aus den Community-Zusammenfassungen enthalten. Diese Namen werden eingebettet und gespeichert, um eine Cosinus-Ähnlichkeitssuche zu ermöglichen.

3. das Abrufen von Erinnerungen

Das Speicherabrufsystem von Zep bietet leistungsstarke, ausgefeilte und hoch konfigurierbare Funktionen. Insgesamt implementiert die Zep Graph Search API eine Funktion f:SSdie eine Text-String-Abfrage α ∈ annimmt.S als Eingabe und liefert einen Textstring-Kontext β ∈S als die Ausgabe. Die Ausgabe β enthält formatierte Daten von Knoten und Kanten, die die LLM-Intelligenzen benötigen, um genaue Antworten auf die Anfrage α zu generieren. Der Prozess f(α)→β besteht aus drei verschiedenen Schritten:

- Suche (φ): Bei diesem Prozess werden zunächst nachselektierte Knoten und Kanten identifiziert, die möglicherweise relevante Informationen enthalten. Obwohl Zep eine Reihe verschiedener Suchmethoden anwendet, kann die gesamte Suchfunktion als φ ausgedrückt werden.Ssn-×𝒩sn. ×𝒩cn. Somit wandelt φ die Anfrage in ein 3-Tupel um, das eine Liste von semantischen Kanten, Entity-Knoten und Community-Knoten enthält - die drei Graphentypen, die relevante Textinformationen enthalten.

- Reorderer (ρ): Der zweite Schritt ist die Neuordnung der Suchergebnisse. Die Neuordnungsfunktion oder das Modell nimmt eine Liste von Suchergebnissen und erzeugt eine neu geordnete Version dieser Ergebnisse: ρ:φ(α),...→sn×𝒩sn×𝒩cn.

- Konstrukteur (χ): Im letzten Schritt wandelt der Konstrukteur die relevanten Knoten und Kanten in einen textuellen Kontext um: χ: diesn×𝒩sn×𝒩cnS. Für jede eis, χ liefert die Tatsache und tgültigtungültig Feld; für jedes ni𝒩sgibt die Felder Name und Zusammenfassung zurück; für jede ni𝒩cgibt das Statistikfeld zurück.

Mit diesen Definitionen können wir die f wird als eine Kombination dieser drei Komponenten dargestellt:f(α) = χ(ρ(φ(α))) = β.

Beispiel einer Vorlage für eine Kontextzeichenfolge:

FACTS 和 ENTITIES 表示与当前对话相关的上下文信息。
以下是最相关的事实及其有效日期范围。如果该事实与某个事件相关,则表示该事件发生在这个时间范围内。
格式:FACT(日期范围:from - to)
<FACTS>
{facts}
</FACTS>
以下是最相关的实体
ENTITY_NAME:实体简介
<ENTITIES>
{entities}
</ENTITIES>

3.1 Suche

Zep implementiert drei Suchfunktionen: Kosinus-Semantik-Ähnlichkeitssuche (φcos), Okapi BM25 Volltextsuche (φbm25}) und die "breadth-first"-Suche (φbfs). Die ersten beiden Funktionen nutzen Neo4js Implementierung von Lucene [15] [16]. Jede Suchfunktion bietet unterschiedliche Möglichkeiten zur Identifizierung relevanter Dokumente, und zusammen bieten sie eine umfassende Abdeckung der Kandidatenergebnisse vor der Neuordnung. Die Suchfelder unterscheiden sich je nach Objekttyp: für 𝒜ssuchen wir nach Faktenfeldern; für 𝒩sSuche nach Entitätsnamen; für 𝒩csucht nach Community-Namen, die relevante Schlüsselwörter und Phrasen enthalten, die in der Community behandelt werden. Obwohl unsere Community-Suchmethode unabhängig entwickelt wurde, weist sie Parallelen zu der High-Level-Schlüsselsuchmethode von LightRAG [17] auf. Die Kombination des LightRAG-Ansatzes mit graphenbasierten Systemen wie Graphiti bietet eine vielversprechende Richtung für zukünftige Forschung.

Während die Methoden der Kosinus-Ähnlichkeit und der Volltextsuche in RAG gut etabliert sind [18], hat die Breadth-First-Suche auf Wissensgraphen in der RAG-Domäne nur begrenzte Beachtung gefunden, mit bemerkenswerten Ausnahmen in graphbasierten RAG-Systemen wie AriGraph [9] und Distill-SynthKG [19]. In Graphiti wird die Breadth-First-Suche durch Identifizierung der n zusätzliche Knoten und Kanten innerhalb eines Sprungs, um die ersten Suchergebnisse zu verbessern. Darüber hinaus φbfs Die Möglichkeit, Knoten als Suchparameter zu akzeptieren, erlaubt eine feinere Kontrolle über die Suchfunktion. Diese Funktion erweist sich als besonders wertvoll, wenn die jüngsten Episoden als Ausgangspunkt für eine umfassende Suche verwendet werden, da sie es dem System ermöglicht, kürzlich erwähnte Entitäten und Beziehungen in den Kontext der Suche einzubinden.

Jede dieser drei Suchmethoden zielt auf einen anderen Aspekt der Ähnlichkeit ab: Die Volltextsuche ermittelt die Wortähnlichkeit, die Kosinus-Ähnlichkeit erfasst die semantische Ähnlichkeit, und die Breitensuche deckt die kontextuelle Ähnlichkeit auf - näher beieinander liegende Knoten und Kanten im Diagramm erscheinen in ähnlicheren Dialogkontexten. Dieser vielschichtige Ansatz zur Identifizierung von Kandidatenergebnissen maximiert die Wahrscheinlichkeit, den besten Kontext zu finden.

3.2 Rekorder

Während der ursprüngliche Suchansatz auf eine hohe Wiederauffindbarkeit abzielt, verbessert der Reorderer die Präzision, indem er die relevantesten Ergebnisse priorisiert.Zep unterstützt bestehende Reordering-Methoden wie Reciprocal Rank Fusion (RRF) [20] und Maximum Marginal Relevance (MMR) [21]. Darüber hinaus implementiert Zep einen graphbasierten Episodenerwähnungs-Reorderer, der die Ergebnisse auf der Grundlage der Häufigkeit von Entitäts- oder Faktenerwähnungen priorisiert und so den Zugang zu häufig zitierten Informationen erleichtert. Das System enthält auch einen Knotenentfernungs-Reorderer, der die Ergebnisse auf der Grundlage ihrer Entfernung von einem bestimmten zentralen Knoten neu anordnet und so Inhalte bereitstellt, die auf eine bestimmte Region des Wissensgraphen beschränkt sind. Die ausgefeilteste Neuordnungsfunktion des Systems verwendet Cross-Coder - LLMs, die Relevanzbewertungen durch die Verwendung von Cross-Attention erzeugen, um die Relevanz von Knoten und Kanten für eine Anfrage zu bewerten, obwohl dieser Ansatz die höchsten Rechenkosten verursacht.

4) Experimente

In diesem Abschnitt werden zwei Experimente analysiert, die mit Benchmark-Tests auf der Grundlage des LLM-Gedächtnisses durchgeführt wurden. Die erste Auswertung verwendet die in [3] entwickelte Deep Memory Retrieval (DMR)-Aufgabe, die eine Teilmenge von 500 Gesprächen aus dem Multi-Session-Chat-Datensatz verwendet, der in "Beyond Goldfish Memory: long-term open-domain conversations" [22] vorgestellt wurde. Die zweite Auswertung verwendet den LongMemEval-Benchmark-Test aus [7]. Genauer gesagt, haben wir den LongMemEval ċċċċċċċċċċiża ta 'l-ħbieb tagħha Datensatz, der umfangreiche Dialogkontexte mit einer durchschnittlichen Länge von 115.000 Token enthält.

Für beide Experimente haben wir die Dialoghistorie über die API von Zep in den Zep-Wissensgraphen integriert. Anschließend werden die 20 relevantesten Kanten (Fakten) und Entitätsknoten (Entitätszusammenfassungen) mit den in Abschnitt 3 beschriebenen Techniken ermittelt. Das System formatiert diese Daten in Kontextstrings um, die der Funktionalität der Zep-Speicher-API entsprechen.

Diese Experimente demonstrieren zwar die wichtigsten Suchfunktionen von Graphiti, stellen aber nur eine Teilmenge der gesamten Suchfunktionalität des Systems dar. Dieser fokussierte Umfang ermöglicht klare Vergleiche mit bestehenden Benchmark-Tests, während gleichzeitig Raum für zukünftige Arbeiten zur Erforschung zusätzlicher Wissensgraphen-Fähigkeiten erhalten bleibt.

4.1 Modellauswahl

Unsere experimentelle Implementierung verwendet das BGE-m3-Modell von BAAI für die Umordnungs- und Einbettungsaufgaben [23] [24]. Für die Graphenkonstruktion und die Generierung von Antworten verwenden wir gpt-4o-mini-2024-07-18 für die Graphenkonstruktion und gpt-4o-mini-2024-07-18 und gpt-4o-2024-11-20 für die Chat-Intelligenzen, um Antworten auf den bereitgestellten Kontext zu generieren.

Um eine direkte Vergleichbarkeit mit den DMR-Ergebnissen von MemGPT zu gewährleisten, haben wir auch eine DMR-Auswertung mit gpt-4-turbo-2024-04-09 durchgeführt.

Die experimentellen Notizbücher werden über unser GitHub-Repository öffentlich zugänglich gemacht, und die zugehörigen experimentellen Tipps sind im Anhang enthalten.

Tabelle 1: Abruf aus dem Langzeitgedächtnis

Auswendiglernen Modellierung Ergebnis
Rekursive Zusammenfassung Zusammenfassung des Dialogs MemGPT? Vollständiger Dialog gpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo 35.3% 78.6% 93.4% 94.4%
Zep Zusammenfassung des Dialogs gpt-4-turbo gpt-4o-mini 94.8%
Vollständiger Dialog Zep gpt-4o-mini gpt-4o-mini 88.0% 98.0% 98.2%

† Über die Ergebnisse wird in [3] berichtet.

4.2 Abruf des tiefen Gedächtnisses (DMR)

Die Evaluierung des Deep-Memory-Abrufs wurde von [3] eingeführt und besteht aus 500 Multi-Session-Dialogen, die jeweils 5 Chat-Sitzungen mit bis zu 12 Nachrichten pro Sitzung enthalten. Das MemGPT-Framework [3] führt derzeit die Leistungsmetriken mit einer Genauigkeit von 93,41 TP3T an, was eine erhebliche Verbesserung gegenüber der Basislinie von 35,31 TP3T darstellt, die durch rekursive Zusammenfassung erreicht wurde.

Um eine Vergleichsgrundlage zu schaffen, haben wir zwei gängige LLM-Speichermethoden implementiert: vollständiger Dialogkontext und Sitzungszusammenfassung. Bei Verwendung von gpt-4-turbo erreicht die Basislinie für den vollständigen Dialog eine Genauigkeit von 94,41 TP3T, was etwas höher ist als die von MemGPT berichteten Ergebnisse, während die Basislinie für die Sitzungszusammenfassung 78,61 TP3T erreicht. Bei Verwendung von gpt-4o-mini zeigen beide Methoden eine bessere Leistung: 98,01 TP3T für den vollständigen Dialog und 88,01 TP3T für die Sitzungszusammenfassung Aufgrund des Mangels an ausreichenden methodischen Details in der veröffentlichten Arbeit waren wir nicht in der Lage, die Ergebnisse von MemGPT mit gpt-4o-mini zu reproduzieren.

Wir haben dann die Leistung von Zep bewertet, indem wir den Dialog aufgenommen und seine Suchfunktion verwendet haben, um die 10 relevantesten Knoten und Kanten abzurufen. Der LLM-Richter vergleicht die Antwort der Intelligenz mit der korrekten Antwort. Zep erreicht eine Genauigkeit von 94,81 TP3T mit gpt-4-turbo und 98,21 TP3T mit gpt-4o-mini. Das sind geringfügige Verbesserungen gegenüber MemGPT und der entsprechenden vollständigen Dialog-Baseline. Diese Ergebnisse müssen jedoch im Kontext gesehen werden: Jeder Dialog enthält nur 60 Nachrichten, die leicht an das aktuelle LLM-Kontextfenster angepasst werden können.

Die Grenzen der DMR-Bewertung gehen über ihren geringen Umfang hinaus. Unsere Analysen offenbaren erhebliche Schwächen in der Konzeption des Vergleichstests. Der Test stützte sich ausschließlich auf Fragen zum Abrufen von Fakten in einem Durchgang und war nicht in der Lage, ein komplexes Gedächtnisverständnis zu erfassen. Viele der Fragen enthielten vage Formulierungen, die sich auf Begriffe wie "Lieblingsentspannungsgetränk" oder "seltsames Hobby" bezogen, die im Dialog nicht explizit beschrieben wurden. Entscheidend ist, dass der Datensatz für reale Anwendungsfälle von LLM-Intelligenzen in Unternehmen nicht gut geeignet ist. Die hervorragende Leistung, die mit dem einfachen Vollkontext-Ansatz des modernen LLM erzielt wurde, unterstreicht die Unzulänglichkeit des Benchmarking bei der Bewertung von Speichersystemen.

Dieser Mangel wird auch durch die Ergebnisse in [7] unterstrichen, die zeigen, dass die Leistung von LLM im LongMemEval-Benchmarking-Test mit zunehmender Länge des Dialogs rapide abnimmt. Der LongMemEval-Datensatz [7] behebt diese Mängel, indem er längere, kohärentere Dialoge bereitstellt, die Unternehmensszenarien besser widerspiegeln, sowie einen vielfältigeren Satz von Bewertungsfragen.

4.3 LongMemEval (LME)

Wir haben Zep anhand des LongMemEvals-Datensatzes evaluiert, der Dialoge und Fragen enthält, die für LLM-Intelligenz in realen Geschäftsanwendungen repräsentativ sind. Der LongMemEvals-Datensatz stellt eine erhebliche Herausforderung für bestehende LLM- und Business-Memory-Lösungen [7] dar, da die Dialoge im Durchschnitt etwa 115.000 Token lang sind. Diese Länge ist zwar recht groß, liegt aber immer noch innerhalb des Kontextfensters aktueller Frontier-Modelle, was es uns ermöglicht, eine aussagekräftige Basislinie zur Bewertung der Leistung von Zep zu erstellen.

Der Datensatz enthält sechs verschiedene Problemtypen: Single-Session-Benutzer, Single-Session-Assistenten, Single-Session-Präferenzen, Multi-Session, Wissensaktualisierung und Temporal Reasoning. Diese Kategorien sind nicht gleichmäßig im Datensatz verteilt; für weitere Informationen verweisen wir den Leser auf [7].

Wir haben alle Experimente zwischen Dezember 2024 und Januar 2025 durchgeführt. Die Tests wurden mit Consumer-Laptops an einem Wohnstandort in Boston, MA, durchgeführt, die mit dem bei AWS us-west-2 gehosteten Zep-Dienst verbunden waren. Diese verteilte Architektur führt zu einer zusätzlichen Netzwerklatenz bei der Bewertung der Leistung von Zep, obwohl diese Latenz in unserer Basisbewertung nicht vorhanden ist.

Für die Bewertung der Antworten haben wir das GPT-4o verwendet und die in [7] beschriebenen fragenspezifischen Aufforderungen bereitgestellt, die sich als äußerst relevant für menschliche Bewerter erwiesen haben.

4.3.1 LongMemEval und MemGPT

Um einen Vergleich zwischen Zep und dem aktuellen MemGPT-System [3] zu ermöglichen, haben wir versucht, MemGPT mit Hilfe des LongMemEval-Datensatzes zu evaluieren: Da das aktuelle MemGPT-Framework die direkte Aufnahme bestehender Nachrichtenverläufe nicht unterstützt, haben wir einen Workaround implementiert, indem wir Dialognachrichten zum Archivverlauf hinzugefügt haben. Allerdings konnten wir mit diesem Ansatz keine erfolgreichen Q&A erzielen. Wir freuen uns darauf, zu sehen, wie andere Forschungsteams diesen Benchmark-Test auswerten, da ein Vergleich der Leistungsdaten für die breitere Entwicklung von LLM-Speichersystemen von Vorteil wäre.

4.3.2 LongMemEval-Ergebnisse

Zep zeigte signifikante Verbesserungen sowohl bei der Genauigkeit als auch bei der Latenzzeit im Vergleich zur Baseline. Mit gpt-4o-mini erreicht Zep eine Genauigkeitsverbesserung von 15,21 TP3T gegenüber der Baseline, während gpt-4o eine Verbesserung von 18,51 TP3T erreicht. Die reduzierte Cue-Größe führt auch zu einer signifikanten Reduzierung der Latenzkosten im Vergleich zur Basisimplementierung.

Tabelle 2: LongMemEvals

Auswendiglernen Modellierung Ergebnis prokrastinieren Verzögerung IQR Durchschnittliche Kontextmarkierung
vollständiger Kontext gpt-4o-mini 55.4% 31.3 s 8.76 s 115k
Zep gpt-4o-mini 63.8% 3.20 s 1.31 s 1.6k
vollständiger Kontext gpt-40 60.2% 28.9 s 6.01 s 115k
Zep gpt-40 71.2% 2.58 s 0.684 s 1.6k

Die Analyse nach Fragetyp zeigte, dass gpt-4o-mini unter Verwendung von Zep in vier von sechs Kategorien Verbesserungen zeigte, mit den signifikantesten Verbesserungen bei den komplexen Fragetypen: Single-Session-Präferenz, Multi-Session und Temporal Reasoning. Bei der Verwendung von gpt-4o zeigte Zep weitere Verbesserungen in der Kategorie Wissensaktualisierung, was deutlich macht, dass es effektiver ist, wenn es mit leistungsfähigeren Modellen verwendet wird. Es könnten jedoch weitere Entwicklungen erforderlich sein, um das Verständnis der zeitlichen Daten von Zep durch weniger leistungsfähige Modelle zu verbessern.

Tabelle 3: Zerlegung der LongMemEvals-Problemtypen

Art des Problems Modellierung vollständiger Kontext Zep inkrementell
Einzelsitzungspräferenz gpt-4o-mini 30.0% 53.3% 77,71 TP3T
Assistent für einzelne Sitzungen gpt-4o-mini 81.8% 75.0% ↑'6
chronologischer Rückschluss gpt-4o-mini 36.5% 54.1% 48.2%↑
Multisession gpt-4o-mini 40.6% 47.4% 16.7%↑
Aktuelles Wissen gpt-4o-mini 76.9% 74.4% 3.36%↓
Einzelsession-Benutzer gpt-4o-mini 81.4% 92.9% 14.1%↑
Einzelsitzungspräferenz gpt-40 20.0% 56.7% 184%↑
Assistent für einzelne Sitzungen gpt-40 94.6% 80.4% 17.7%↓
chronologischer Rückschluss gpt-40 45.1% 62.4% 38.41 TP3T
Multisession gpt-40 44.3% 57.9% 30.7%↑
Aktuelles Wissen gpt-40 78.2% 83.3% 6.52%↑
Einzelsession-Benutzer gpt-40 81.4% 92.9% 14.1%↑

Diese Ergebnisse zeigen die Fähigkeit von Zep, die Leistung über alle Modellskalen hinweg zu verbessern, wobei die signifikantesten Verbesserungen bei komplexen und heiklen Problemtypen zu beobachten sind, wenn sie mit leistungsfähigeren Modellen verwendet werden. Besonders signifikant sind die Verbesserungen bei den Latenzzeiten: Zep reduziert die Antwortzeiten um ca. 901 TP3T bei gleichbleibend hoher Genauigkeit.

Der Leistungsabfall beim Single-Session-Helper-Problem - 17,71 TP3T für gpt-4o und 9,061 TP3T für gpt-4o-mini - stellt eine bemerkenswerte Ausnahme zu den ansonsten konstanten Verbesserungen von Zep dar und deutet auf die Notwendigkeit weiterer Forschungs- und Entwicklungsarbeit hin.

5. schlussfolgerung

Wir haben Zep vorgestellt, einen graphenbasierten Ansatz für LLM-Gedächtnis, der semantisches und episodisches Gedächtnis mit Zusammenfassungen von Entitäten und Gemeinschaften kombiniert. Unsere Evaluierung zeigt, dass Zep in bestehenden Speicher-Benchmarks die beste Leistung erzielt, während gleichzeitig die Etikettierungskosten gesenkt und die Latenzzeiten deutlich verringert werden.

Die von Graphiti und Zep erzielten Ergebnisse sind zwar beeindruckend, aber wahrscheinlich nur ein vorläufiger Fortschritt bei graphbasierten Speichersystemen. Mehrere Forschungsrichtungen könnten auf diesen beiden Rahmenwerken aufbauen, darunter die Integration anderer GraphRAG-Ansätze in das Zep-Paradigma sowie neuartige Erweiterungen unserer Arbeit.

Die Forschung hat gezeigt, dass die Feinabstimmung von Modellen für die LLM-Entitäts- und Kantenextraktion im GraphRAG-Paradigma zur Verbesserung der Genauigkeit bei gleichzeitiger Verringerung der Kosten und der Latenzzeit beitragen kann [19] [25]. In ähnlicher Weise können Modelle, die auf Graphiti-Hinweise abgestimmt sind, die Wissensextraktion verbessern, insbesondere bei komplexen Dialogen. Während die aktuelle Forschung zu LLM-generierten Wissensgraphen hauptsächlich ohne formale Ontologien arbeitet [9] [4] [17] [19] [26], haben domänenspezifische Ontologien ein erhebliches Potenzial. Graphen-Ontologien, die in der Vor-LLM-Wissensgraphenarbeit grundlegend sind, verdienen es, im Rahmen von Graphiti weiter erforscht zu werden.

Unsere Suche nach geeigneten Speicher-Benchmark-Tests zeigt, dass es nur begrenzte Möglichkeiten gibt. Den vorhandenen Benchmark-Tests mangelt es in der Regel an Robustheit und Raffinesse, und sie beschränken sich häufig auf einfache Aufgaben zur Suche nach Fakten [3]. Das Feld benötigt zusätzliche Speicher-Benchmark-Tests, insbesondere solche, die Geschäftsanwendungen wie Kundenerfahrungsaufgaben widerspiegeln, um Speicheransätze effektiv zu bewerten und zu differenzieren. Vor allem sind die bestehenden Benchmark-Tests unzureichend, um die Fähigkeit von Zep zur Verarbeitung und Synthese von Dialogverläufen mit strukturierten Geschäftsdaten zu bewerten. Obwohl Zep sich auf LLM-Speicher konzentriert, sollten seine traditionellen RAG-Fähigkeiten anhand der in [17] [27] [28] festgelegten Benchmark-Tests bewertet werden.

Die derzeitige Literatur über LLM-Speicher und RAG-Systeme befasst sich nicht angemessen mit den Fragen der Skalierbarkeit von Produktionssystemen in Bezug auf Kosten und Latenzzeiten. Wir schließen ein Latenz-Benchmarking von Abrufmechanismen ein, um diese Lücke zu schließen, indem wir dem Beispiel der Autoren von LightRAG folgen und diesen Metriken Priorität einräumen.

6. anhang

6.1 Tipps zur Konstruktion von Diagrammen

6.1.1 Entitätsextraktion

<之前的消息>
{previous_messages}
</之前的消息>
<当前消息>
{current_message}
</当前消息>
根据上述对话内容,从当前消息(CURRENT MESSAGE)中提取明确或隐含提到的实体节点:
指导原则:
1. 始终将说话者/行动者提取为第一个节点。说话者是每行对话中冒号前的部分。
2. 提取当前消息中提到的其他重要实体、概念或行动者。
3. 不要为关系或行为创建节点。
4. 不要为时间信息(如日期、时间或年份)创建节点(这些信息将在后续作为边添加)。
5. 节点名称尽量具体,使用全称。
6. 不要提取仅在前文中提到的实体。

6.1.2 Auflösung von Entitäten

<之前的消息>
{previous_messages}
</之前的消息>
<当前消息>
{current_message}
</当前消息>
<已有节点>
{existing_nodes}
</已有节点>
根据上述已有节点(EXISTING NODES)、消息(MESSAGE)以及之前的消息(PREVIOUS MESSAGES),判断从对话中提取出的新节点(NEW NODE)是否是已有节点中的重复实体。
<新节点>
{new_node}
</新节点>
任务:
1. 如果新节点与已有节点中任意一个代表的是同一个实体,请在回复中返回 `is_duplicate: true`。
否则,返回 `is_duplicate: false`。
2. 如果返回为 is_duplicate: true,还需在回复中返回重复节点的 uuid。
3. 如果返回为 is_duplicate: true,请返回该节点最完整的全名作为名称。
指导原则:
1. 请结合节点的名称和摘要来判断是否为重复实体。重复节点的名称可能不同。

6.1.3 Faktenextraktion

<PREVIOUS MESSAGES>
{previous_messages}
</PREVIOUS MESSAGES>
<CURRENT MESSAGE>
{current_message}
</CURRENT MESSAGE>
<ENTITIES>
{entities}
</ENTITIES>
根据以上的消息(MESSAGES)和实体(ENTITIES),从当前消息(CURRENT MESSAGE)中提取所有与列出的实体有关的事实信息。
指南:
1. 仅提取出现在所提供实体之间的事实。
2. 每条事实应代表两个**不同节点**之间的明确关系。
3. relation_type 应为简洁、全大写的关系描述(例如:LOVES、IS_FRIENDS_WITH、WORKS_FOR)。
4. 提供包含所有相关信息的更详细事实描述。
5. 如有必要,考虑关系中的时间要素。

6.1.4 Sachliche Analyse

根据以下上下文,判断 New Edge 是否与 Existing Edges 列表中的任意一条边表示相同的信息。
<EXISTING EDGES>  
{existing_edges}  
</EXISTING EDGES>  
<NEW EDGE>  
{new_edge}  
</NEW EDGE>
任务:  
1. 如果 New Edge 表达的信息与 Existing Edges 中任意一条边的事实信息相同,请在回复中返回 `is_duplicate: true`;否则返回 `is_duplicate: false`。  
2. 如果 `is_duplicate` 为 true,还需在回复中返回该现有边的 uuid。
指导原则:  
1. 即使事实信息不完全一致,只要表达的是相同的信息,即可视为重复。

6.1.5 Zeitliche Extraktion

<先前消息>
{previous_messages}
</先前消息>
<当前消息>
{current_message}
</当前消息>
<参考时间戳>
{reference_timestamp}
</参考时间戳>
<事实>
{fact}
</事实>
重要提示:仅当时间信息是所提供事实的一部分时才提取时间,否则请忽略提到的时间。
请根据提供的参考时间戳尽可能确定确切日期(例如 “10 年前”“2 分钟前” 这样的相对时间也要换算为确切时间)。
如果关系并非是持续性的,但仍能确定日期,请仅设置 valid_at 字段。
定义:
- valid_at:描述该事实所代表关系首次成立或变为真实的日期时间。
- invalid_at:描述该事实所代表关系不再成立或终止的日期时间。
任务:
分析对话内容,判断是否有与该关系事实相关的日期信息。仅当日期明确涉及关系的建立或变化时才填写。
指南:
1. 使用 ISO 8601 格式(YYYY-MM-DDTHH:MM:SS.SSSSSSZ)表示日期时间。
2. 判断时使用参考时间戳作为当前时间。
3. 如果事实是以现在时表述的,则使用参考时间戳作为 valid_at 日期。
4. 如果没有用于建立或更改关系的时间信息,请将字段留空(null)。
5. 不要根据相关事件推测日期。只使用直接用于建立或更改关系的日期。
6. 如果提到的相对时间与关系直接相关,请根据参考时间戳计算出实际日期时间。
7. 如果只提到了日期而没有具体时间,默认时间为当日 00:00:00(午夜)。
8. 如果只提到了年份,默认时间为该年 1 月 1 日的 00:00:00。
9. 始终包含时区偏移(若未提及具体时区,请使用 Z 表示 UTC)。

 

Referenz:

https://arxiv.org/pdf/2501.13956

ZEP-Graphiti: eine temporale Wissensgraphenarchitektur für das Gedächtnis in der Intelligenz

Zep: Aufbau einer Langzeitspeicherschicht für KI-Anwendungen, Extrahieren und Aktualisieren von Benutzerinformationen, Geschäftsdaten

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " ZEP: Eine temporale Wissensgraphenarchitektur für ein intelligentes Körpergedächtnis
de_DEDeutsch