ZEP-Graphiti : une architecture de graphe de connaissances temporelles pour la mémoire dans l'intelligentsia

lecture sténographique

Le défi de la mémoire corporelle intelligente et l'innovation de Zep

Les agents d'intelligence artificielle sont confrontés à des goulets d'étranglement au niveau de la mémoire dans les tâches complexes. Les agents d'intelligence artificielle traditionnels basés sur le modèle du grand langage (LLM) sont limités par des fenêtres contextuelles, ce qui rend difficile l'intégration efficace de l'historique des conversations à long terme et des données dynamiques, limitant les performances et les rendant sujets aux hallucinations.Zep est une architecture innovante de graphe de connaissances qui dote les agents d'intelligence artificielle de puissantes capacités de mémoire pour faire face à des environnements d'information dynamiques grâce à son composant principal, Graphiti. Elle résout les problèmes posés par les approches RAG existantes qui peinent à gérer les informations temporelles et le raisonnement intersession, en fournissant un support de mémoire plus fiable pour les applications d'entreprise.

 

Mise en œuvre : Graphiti - un moteur de graphe de connaissances sensible au temps

Graphiti La mémoire corporelle intelligente est obtenue grâce à la construction d'un graphe de connaissances à plusieurs niveaux, à la gestion dynamique des informations temporelles et à un mécanisme de récupération efficace.

  1. Construction de graphes de connaissances à plusieurs niveaux :
    • Sous-intrigue de l'intrigue : Les données brutes (messages de dialogue) sont utilisées comme nœuds de tracé, contenant du texte et des horodatages.
    • Sous-graphes d'entités sémantiques : Les entités (noms de personnes, de lieux, de produits, etc.) sont extraites des nœuds de l'intrigue en tant que nœuds d'entités sémantiques.
    • Sous-map communautaire : Agréger les nœuds d'entités sur le même sujet pour former des nœuds de communauté.
    • Cette structure hiérarchique améliore l'évolutivité et permet aux intelligences de comprendre l'information plus efficacement.
  2. Gestion dynamique des informations chronologiques :
    • Modélisation bi-temporelle : Enregistre la chronologie des événements (ligne de temps T) et la chronologie de l'ingestion des données (ligne de temps T') et traite les informations temporelles absolues/relatives.
    • Mises à jour dynamiques : Mise à jour en temps réel du graphe de connaissances pour gérer les conflits temporels.
    • Les capacités de Graphiti en matière de séries chronologiques garantissent l'exactitude et l'actualisation des informations.
  3. Mécanismes de recherche efficaces :
    • Intégration de plusieurs méthodes : Combinez la recherche par similarité cosinusoïdale, la recherche en texte intégral et la recherche en profondeur pour trouver des contextes pertinents de manière rapide et précise.

 

Applications d'entreprise : processus d'échantillonnage complet

prendreOrganisme d'intelligence du support client de l'entreprise : Enterprise Customer Support Intelligence Body

saisie de l'utilisateur: :
L'utilisateur envoie un message via l'interface de chat, "Bonjour, j'ai un problème avec l'imprimante HP LaserJet Pro MFP M28w que j'ai achetée le mois dernier, les impressions ont des images fantômes. J'ai déjà contacté l'assistance technique qui m'a dit que redémarrer l'imprimante résoudrait le problème, mais j'ai essayé et ça ne marche toujours pas".

1. la prise de nœuds d'épisode: :
Graphiti intègre les dernières nouvelles de l'utilisateur dans le graphe de connaissances en tant que nouveau nœud d'épisode avec un horodatage actuel (par exemple, 20 février 2024, 10:30 AM). Dans le même temps, le système récupère les épisodes de dialogue historiques liés au "problème d'imprimante".

2. extraction d'entités et de relations: :

  • Extraction physique: :
    • Modèle d'imprimante : HP LaserJet Pro MFP M28w
    • Date d'achat : 10 janvier 2024
    • Description du problème : Impression de documents avec des images fantômes
    • Contacté précédemment : 15 janvier 2024
    • Solution précédente : Redémarrer l'imprimante
  • extraction des relations: :
    • [用户] 购买 [打印机]
    • [打印机] 存在 [打印文件有重影] 问题
    • [重启打印机] 是 [尝试过的解决方案]

3. les tests communautaires: :
Le système regroupe toutes les entités et relations liées à l'imprimante "HP LaserJet Pro MFP M28w" en une seule communauté pour une recherche plus efficace.

4. mise à jour dynamique des informations: :
Graphiti vérifie si des informations doivent être mises à jour. Comme les utilisateurs ont signalé que le redémarrage de l'imprimante n'a pas résolu le problème, le système mettra à jour les informations sur l'imprimante. [重启打印机] 的 [解决方案状态] en raison de [未解决].

5. récupération du contexte pertinent: :
Le système utilise plusieurs méthodes de recherche :

  • Recherche en texte intégral: Récupérer les dialogues historiques contenant des mots-clés tels que "imprimante", "réimage", "HP LaserJet Pro MFP M28w".
  • Recherche de similitude de cosinusRecherche de dialogues décrivant des problèmes d'impression similaires, tels que "Impressions floues", "Couleurs d'impression déformées", etc.
  • recherche en profondeur: A partir de [HP LaserJet Pro MFP M28w] La communauté a entrepris de trouver tous les problèmes courants et les solutions recommandées concernant ce modèle d'imprimante.

6. générer des réponses: :
L'organisme intelligent génère la réponse suivante sur la base des informations contextuelles récupérées :

"Bonjour ! Nous vous remercions pour vos commentaires. Nous comprenons que l'imprimante HP LaserJet Pro MFP M28w que vous avez achetée imprime des documents avec des images fantômes et que vous avez essayé de redémarrer l'imprimante mais que le problème persiste. Afin de mieux résoudre votre problème, nous vous suggérons d'essayer les étapes suivantes :

  1. Vérifier les cartouches : Assurez-vous que les cartouches sont correctement installées et que le niveau d'encre est suffisant.
  2. Nettoyer la tête d'impression : Une tête d'impression encrassée peut provoquer des images fantômes. Essayez de nettoyer la tête d'impression (voir le manuel de l'imprimante pour la procédure).
  3. Mettre à jour le pilote : Veuillez consulter le site Web de HP pour télécharger et installer le dernier pilote d'imprimante.

Si le problème persiste après avoir suivi les étapes ci-dessus, veuillez fournir les informations suivantes afin que nous puissions résoudre le problème :

  • Quelle version du système d'exploitation utilisez-vous ?
  • Le problème des images fantômes se produit-il dans tous les documents ou dans des documents spécifiques ?

Merci pour votre coopération !"

7. mise à jour des connaissances: :
Si l'utilisateur résout le problème en remplaçant la cartouche, l'organisme intelligent enregistrera le numéro d'identification de la cartouche. [更换墨盒] régler [打印文件有重影] 问题 et de mettre à jour l'horodatage des entités et des relations pertinentes afin de pouvoir s'y référer ultérieurement.

Résultats expérimentaux et perspectives d'avenir

Zep Dans l'évaluation LongMemEval, par rapport à la ligne de base, la précision est améliorée de 18,51 TP3T et la latence de réponse est réduite de 901 TP3T en utilisant le modèle gpt-4o. Les résultats expérimentaux prouvent que Zep a des avantages significatifs en termes de précision de la mémoire, de capacité de mise à jour dynamique, d'extraction efficace et d'évolutivité.

Les orientations futures de la recherche sont les suivantes :

  • Ajustement du modèle : optimisation de la précision et de l'efficacité de l'extraction de connaissances.
  • Intégration d'ontologies de domaine : amélioration de la compréhension et du raisonnement dans des domaines spécifiques.
  • Nouveau développement de l'évaluation comparative : systèmes de mémoire évolutifs.

Articles connexes :Graphiti : outil de construction et d'interrogation de graphes de connaissances dynamiques (programme de mémoire longue sensible au temps)


résumés

Nous présentons Zep, un nouveau service de couche mémoire pour l'intelligentsia qui surpasse le système de pointe actuel MemGPT dans les benchmarks de Deep Memory Retrieval (DMR). En outre, Zep obtient de bons résultats dans des évaluations plus complètes et plus difficiles que DMR qui reflètent mieux les cas d'utilisation du monde réel des entreprises. Alors que les cadres existants basés sur le modèle du grand langage (LLM) sont limités à la recherche statique de documents, les applications d'entreprise ont besoin d'intégrer dynamiquement des connaissances provenant d'une variété de sources, y compris les conversations en cours et les données d'entreprise. Zep résout cette limitation fondamentale grâce à son composant principal, Graphiti, un moteur de graphe de connaissances tenant compte des séries temporelles, qui intègre dynamiquement des données de conversation non structurées et des données commerciales structurées tout en maintenant les relations historiques. Dans les tests de référence DMR établis par l'équipe MemGPT, Zep a démontré sa supériorité (94,81 TP3T contre 93,41 TP3T). En plus de DMR, les capacités de Zep ont été validées dans le benchmark plus complexe LongMemEval, qui reflète mieux les cas d'utilisation des entreprises à travers des tâches complexes de raisonnement temporel. Dans cette évaluation, Zep a amélioré la précision de 18,51 TP3T tout en réduisant la latence de réponse de 901 TP3T par rapport à l'implémentation de base. Ces résultats sont particulièrement significatifs dans les tâches critiques pour l'entreprise telles que la synthèse d'informations entre les sessions et la maintenance du contexte à long terme, démontrant l'efficacité de Zep dans les applications du monde réel.

 

1. introduction

Ces dernières années, l'impact des grands modèles de langage (LLM) basés sur des transformateurs sur l'industrie et la communauté des chercheurs a attiré beaucoup d'attention [1]. Cependant, les capacités de ces intelligences sont limitées par la fenêtre contextuelle du LLM, l'utilisation efficace du contexte et les connaissances acquises au cours de la formation préalable. Par conséquent, des contextes supplémentaires sont nécessaires pour fournir des connaissances hors domaine (OOD) et réduire les illusions.

La Génération Augmentée de Récupération (GAR) est devenue un domaine d'intérêt clé dans les applications LLM. La GAR utilise les techniques de recherche d'information (RI) développées au cours des cinquante dernières années [2] pour fournir la connaissance du domaine nécessaire à la GAR.

Les approches actuelles de l'utilisation des RAG se concentrent sur une connaissance approfondie du domaine et sur des corpus relativement statiques, c'est-à-dire que le contenu des documents ajoutés au corpus change rarement. Pour que les intelligences deviennent omniprésentes dans notre vie quotidienne, en résolvant de manière autonome des problèmes allant du plus trivial au plus complexe, elles devront avoir accès à un vaste corpus de données en constante évolution, dérivé des interactions entre les utilisateurs et les intelligences, ainsi qu'à des données commerciales et mondiales pertinentes. Nous pensons que doter les intelligences de ce type de "mémoire" étendue et dynamique est un élément clé pour concrétiser cette vision, et nous ne pensons pas que les approches actuelles des RAG soient adaptées à cet avenir. Étant donné que des historiques de dialogue entiers, des ensembles de données commerciales et d'autres contenus spécifiques à un domaine ne peuvent pas être adaptés efficacement à la fenêtre contextuelle de la LLM, de nouvelles approches de la mémoire corporelle intelligente doivent être développées. L'ajout de la mémoire aux intelligences pilotées par la LLM n'est pas une idée nouvelle - le concept a été exploré précédemment dans MemGPT [3].

Récemment, les graphes de connaissances (KG) ont été utilisés pour augmenter les architectures RAG afin de remédier à de nombreuses lacunes des techniques traditionnelles de RI [4]. Dans cet article, nous présentons Zep [5], un service de couche mémoire alimenté par Graphiti [6], un moteur de graphe de connaissances dynamique et sensible aux séries temporelles.Zep ingère et synthétise des données de messages non structurées et des données commerciales structurées.Le moteur Graphiti KG met à jour le graphe de connaissances de manière dynamique et sans perte, en préservant les faits et les relations sur une ligne de temps, y compris leurs dates d'expiration. relations sur une ligne de temps, y compris leurs dates d'expiration. Cette approche permet au graphe de connaissances de représenter un monde complexe et évolutif.

Zep étant un système de production, nous accordons une grande importance à la précision, à la latence et à l'évolutivité de ses mécanismes de récupération de la mémoire. Nous utilisons deux repères existants pour évaluer l'efficacité de ces mécanismes : la tâche de récupération de la mémoire profonde (DMR) de MemGPT [3] et le repère LongMemEval [7].

 

2. la cartographie des connaissances

Dans Zep, la mémoire consiste en un graphe de connaissances dynamiques perceptives temporelles G = (N,E,ϕ) dont N désigne le nœud, E désigne le bord, ϕ:E→ N × N représente une fonction d'association formalisée. Ce graphe contient trois sous-graphes hiérarchiques : le sous-graphe des parcelles, le sous-graphe des entités sémantiques et le sous-graphe des communautés.

- Épisode sous-intrigue Ge :

Nœuds de parcelles (plots), ni ∈ Nequi contiennent des données d'entrée brutes sous la forme de messages, de texte ou de JSON. Le graphe est un magasin de données non perdues à partir duquel les entités sémantiques et les relations sont extraites. Le bord de la parcelle, ei ∈ Ee ⊆ ϕ∗(Ne × Ns)qui relie les épisodes aux entités sémantiques auxquelles ils font référence.

- Sous-graphes d'entités sémantiques Gs :

Le sous-graphe d'entités sémantiques est construit au-dessus du sous-graphe de parcelles. Nœuds d'entités (entités), ni ∈ NsLes arêtes des entités (arêtes sémantiques), ei ∈ Es, représentent les entités extraites du graphe et résolues avec les entités du graphe existant. Les arêtes des entités (arêtes sémantiques), ei ∈ Es ⊆ ϕ∗(Ns × Ns)représentant les relations entre les entités extraites du graphe.

- Sous-carte communautaire Gc :

Le sous-graphe des communautés constitue le niveau supérieur du graphe de connaissances de Zep. Nœuds de communauté (communautés), ni ∈ Ncreprésentant des groupes d'entités fortement connectées. La communauté contient des résumés de haut niveau de ces groupes et représente Gs Une vision plus complète et interconnectée de la structure de la communauté est nécessaire. Le bord de la communauté, ei ∈ Ec ⊆ ϕ∗(Nc×Nˉs)qui relie la communauté à ses membres physiques.

Le double stockage des données brutes sur les épisodes et des informations sémantiques dérivées sur les entités reflète les modèles mentaux de la mémoire humaine. Ces modèles font la distinction entre la mémoire des épisodes, qui représente différents événements, et la mémoire sémantique, qui saisit les associations entre les concepts et leur signification [8]. Cette approche permet aux intelligences LLM utilisant Zep de développer des structures de mémoire plus complexes et plus subtiles qui sont mieux alignées avec notre compréhension du système de mémoire humain. Les graphes de connaissances fournissent un moyen efficace pour représenter ces structures de mémoire, et les différents sous-graphes épisodiques et sémantiques que nous avons implémentés s'inspirent d'une approche similaire dans AriGraph [9].

Notre utilisation des nœuds de communauté pour représenter la structure de haut niveau et les concepts du domaine s'appuie sur les travaux de GraphRAG [4], permettant une compréhension globale plus complète du domaine. L'organisation hiérarchique qui en résulte - des parcelles aux faits, en passant par les entités et les communautés - étend les stratégies RAG hiérarchiques existantes [10][11].

2.1 Episodes

La construction du graphe de Zep commence par l'ingestion d'unités de données brutes appelées épisodes. Les épisodes peuvent être de trois types principaux : messages, texte ou JSON. Bien que chaque type nécessite un traitement spécifique pendant la construction du graphe, cet article se concentre sur le type de message parce que nos expériences se concentrent sur les mémoires de dialogue. Dans notre contexte, un message consiste en un texte relativement court (plusieurs messages peuvent tenir dans la fenêtre contextuelle de LLM) et les participants associés qui ont produit le discours.

Chaque message comprend un horodatage de référence trefL'heure du message est indiquée par l'heure à laquelle le message a été envoyé. Cette information temporelle permet à Zep d'identifier et d'extraire avec précision les dates relatives ou partielles mentionnées dans le contenu du message (par exemple, "jeudi prochain", "dans quinze jours" ou "l'été dernier"). Zep met en œuvre un modèle diachronique où la ligne de temps T représente l'ordre temporel des événements, la ligne du temps T′ représente la transaction temporelle pour l'ingestion des données Zep. Alors que T′ Les échéances servent l'objectif traditionnel de l'audit des bases de données, mais T La ligne temporelle fournit une dimension supplémentaire pour modéliser la nature dynamique des données de dialogue et de la mémoire. Cette approche à double temps représente une nouvelle avancée dans la construction de graphes de connaissances LLM et sous-tend les capacités uniques de Zep par rapport aux propositions précédentes de RAG basées sur des graphes.

Plot Side Ee Relier les parcelles aux nœuds d'entités qui en ont été extraits. Les graphes et leurs arêtes sémantiques dérivées maintiennent des index bidirectionnels qui suivent la relation entre une arête et son graphe source. Cette conception renforce la nature non destructive des sous-graphes de Graphiti en permettant une traversée à la fois vers l'avant et vers l'arrière : les artefacts sémantiques peuvent être retracés jusqu'à leurs sources à des fins de référencement ou de citation, et les graphes peuvent être rapidement récupérés pour les entités et les faits qui leur sont associés. Bien que ces connexions n'aient pas été directement examinées dans les expériences de cette thèse, elles seront explorées dans des travaux futurs.

2.2 Entités et faits sémantiques

2.2.1 Entités

L'extraction des entités représente la phase initiale du traitement des épisodes. Au cours du processus d'ingestion, le système traite le contenu du message actuel et les derniers n afin de fournir un contexte pour la reconnaissance des entités nommées. Dans le cadre de cet article et de la mise en œuvre générale de Zep, n = 4Deux dialogues complets sont fournis pour l'évaluation contextuelle. Étant donné que nous nous concentrons sur le traitement des messages, le locuteur est automatiquement extrait en tant qu'entité. Après l'extraction initiale de l'entité, nous utilisons une technique de réflexion inspirée de la réflexion [12] pour minimiser les illusions et améliorer la couverture de l'extraction. Le système extrait également des résumés d'entités des épisodes afin de faciliter les opérations ultérieures de résolution et de recherche d'entités.

Après l'extraction, le système intègre chaque nom d'entité dans un espace vectoriel à 1024 dimensions. Cette intégration permet d'extraire des nœuds similaires en recherchant des nœuds d'entités de graphes existants par similarité cosinusoïdale. Le système effectue également des recherches en texte intégral sur les noms d'entités et les résumés existants afin d'identifier d'autres nœuds candidats. Ces nœuds candidats, ainsi que le contexte de l'intrigue, sont ensuite traités par LLM à l'aide de nos indices de résolution d'entités. Lorsque le système identifie des entités en double, il génère un nom et un résumé mis à jour.

Après l'extraction et l'analyse des entités, le système intègre les données dans le graphe de connaissances à l'aide de requêtes Cypher prédéfinies. Nous avons choisi cette approche plutôt que des requêtes de base de données générées par LLM pour garantir un format architectural cohérent et réduire la possibilité d'hallucinations.

Une sélection de conseils pour la construction des graphiques est fournie dans l'annexe.

2.2.2 Faits

pour chaque fait contenant son prédicat clé. De même, le même fait peut être extrait plusieurs fois à travers différentes entités, ce qui permet à Graphiti de modéliser des faits multi-entités complexes en mettant en œuvre des hyperedges.

Après l'extraction, le système génère des enchâssements pour les faits en vue de l'intégration des graphes. Le système effectue la déduplication des arêtes par le biais d'un processus similaire à la résolution des entités. Les arêtes associées aux recherches hybrides sont limitées aux arêtes qui existent entre des paires d'entités identiques aux nouvelles arêtes. Cette restriction permet non seulement d'éviter les combinaisons incorrectes d'arêtes similaires entre différentes entités, mais aussi de réduire considérablement la complexité informatique du dédoublonnage en limitant l'espace de recherche à un sous-ensemble d'arêtes associées à une paire d'entités particulière.

2.2.3 Extraction temporelle et rupture d'arête

Graphiti se distingue des autres moteurs de graphes de connaissances par sa capacité à gérer les mises à jour dynamiques de l'information grâce à des processus d'extraction temporelle et d'interruption des arêtes.

Le système utilise le tref Extraction d'informations temporelles sur les faits à partir du contexte de l'intrigue. Cela permet d'extraire et de dater avec précision les représentations temporelles des dates absolues (par exemple, "Alan Turing est né le 23 juin 1912") et des dates relatives (par exemple, "J'ai commencé mon nouvel emploi il y a quinze jours"). Conformément à notre approche de modélisation cohérente, le système suit quatre dates : t′ Créer et t′ Expiration ∈ T′ surveille la création ou l'invalidation de faits dans le système, tandis que tvalid et tinvalid ∈ T Permet de suivre la période au cours de laquelle le fait a été établi. Ces points de données temporelles sont stockés sur le côté avec d'autres informations factuelles.

L'introduction de nouvelles arêtes peut invalider les arêtes existantes dans la base de données. Le système utilise la méthode LLM pour comparer les nouvelles arêtes avec les arêtes existantes sémantiquement liées afin d'identifier les contradictions potentielles. Lorsque le système identifie des contradictions temporelles conflictuelles, il le fait en comparant la valeur de tinvalid Réglé sur tvalid du côté de l'échec afin d'invalider les arêtes concernées. Selon la chronologie de la transaction T′Graphiti donne toujours la priorité aux nouvelles informations lorsqu'il s'agit de déterminer la défaillance d'une arête.

Cette approche globale permet d'ajouter dynamiquement des données à Graphiti au fur et à mesure de l'évolution des conversations, tout en conservant l'état actuel de la relation et un historique des relations qui ont évolué au fil du temps.

2.3 Communauté

Après avoir construit le graphe et les sous-graphes sémantiques, le système construit les sous-graphes communautaires en détectant les communautés. Bien que notre approche de détection des communautés s'appuie sur les techniques décrites dans GraphRAG [4], nous utilisons l'algorithme de propagation d'étiquettes [13] plutôt que l'algorithme de Leiden [14]. Ce choix est influencé par la simple mise à l'échelle dynamique de la propagation d'étiquettes, qui permet au système de maintenir des représentations de communautés précises plus longtemps au fur et à mesure que de nouvelles données entrent dans le graphe, repoussant ainsi la nécessité d'un rafraîchissement complet de la communauté.

L'expansion dynamique met en œuvre la logique d'une étape récursive unique dans la propagation des étiquettes. Lorsque le système ajoute un nouveau nœud d'entité ni ∈ Ns au graphe Lorsqu'il le fait, il examine les communautés des nœuds voisins. Le système assigne le nouveau nœud à la communauté détenue par la majorité de ses voisins, puis met à jour le résumé et le graphe de la communauté en conséquence. Bien que cette mise à jour dynamique rende l'expansion des communautés efficace au fur et à mesure que les données affluent dans le système, les communautés résultantes s'écartent progressivement de celles générées par l'exécution de la propagation complète des étiquettes. Par conséquent, des mises à jour périodiques des communautés sont toujours nécessaires. Cependant, cette stratégie de mise à jour dynamique fournit une heuristique pratique qui réduit considérablement la latence et les coûts d'inférence LLM.

À l'instar de [4], nos nœuds communautaires contiennent des résumés des nœuds membres par le biais d'une approche itérative de type map-reduce. Cependant, notre approche de recherche est assez différente de l'approche map-reduce de GraphRAG [4]. Pour soutenir notre approche de recherche, nous avons généré des noms de communautés contenant des termes clés et des sujets connexes à partir des résumés des communautés. Ces noms sont intégrés et stockés pour permettre la recherche par similarité cosinusoïdale.

 

3. la récupération de la mémoire

Le système de recherche de mémoire de Zep offre des fonctionnalités puissantes, sophistiquées et hautement configurables. Globalement, l'API de recherche graphique de Zep met en œuvre une fonction f:S→Squi accepte une requête sous forme de chaîne de texte α ∈ S en entrée et renvoie un contexte de chaîne de texte β ∈ S comme sortie. La sortie β contient des données formatées de nœuds et d'arêtes qui sont générées par les intelligences LLM sur les requêtes α nécessaire pour la réponse exacte de la Le processus f(α) → β Il se compose de trois étapes différentes :

- Recherche (φ)Le processus identifie d'abord les nœuds et les arêtes candidats susceptibles de contenir des informations pertinentes. Bien que Zep utilise plusieurs méthodes de recherche différentes, la fonction de recherche globale peut être exprimée comme φ:S→Esn-×Nsnˉ×.Ncn. Par conséquent, φ Convertir la requête en un triplet contenant une liste d'arêtes sémantiques, de nœuds d'entités et de nœuds de communautés - ces trois types de graphes contiennent des informations textuelles pertinentes.

- Reorderer (ρ)La deuxième étape consiste à réorganiser les résultats de la recherche. La fonction ou le modèle de réorganisation prend une liste de résultats de recherche et génère une version réorganisée de ces résultats : ρ:φ(α),...→ Esn×Nsn×Ncn.

- Constructeur (χ)Dans la dernière étape, le constructeur convertit les nœuds et les arêtes pertinents en un contexte textuel : χ:Esn×Nsn×Ncn→S. Pour chaque ei ∈ Esχ Retourner les faits et tvalidTinvalid. champ ; pour chaque ni ∈ Nsqui renvoie les champs nom et résumé ; et pour chaque ni ∈ Ncrenvoie le champ résumé.

Ces définitions étant posées, nous pouvons fixer f est exprimée comme une combinaison de ces trois composantes : f(α) = χ(ρ(φ(α))) = β.

Exemple de modèle de chaîne de contexte :

事实和实体 代表与当前对话相关的上下文。
这些是最相关的事实及其有效日期范围。 如果该事实是关于一个事件,那么该事件发生在此期间。
格式:事实(日期范围:从 - 到)
<事实>
{事实}
</事实>
这些是最相关的实体
实体名称:实体摘要
<实体>
{实体}
</实体>

3.1 Recherche

Zep met en œuvre trois fonctions de recherche : la recherche de similarité sémantique en cosinus (φcos)La recherche en texte intégral de Okapi BM25 (φbm25) est disponible sur Internet. et la recherche en profondeur (φbfs). Les deux premières fonctions utilisent l'implémentation de Lucene par Neo4j [15][16]. Chaque fonction de recherche offre des capacités différentes en termes d'identification des documents pertinents et, ensemble, elles fournissent une couverture complète des résultats candidats avant de les réorganiser. Les champs de recherche diffèrent entre les trois types d'objets : pour Esnous recherchons des champs de faits ; pour Nsrecherche des noms d'entités ; pour NcLa recherche de noms de communautés comprend des mots-clés et des phrases pertinents couverts par la communauté. Bien que développée indépendamment, notre approche de recherche de communautés est parallèle à l'approche de recherche avancée de LightRAG [17]. La combinaison de l'approche de LightRAG avec des systèmes basés sur les graphes tels que Graphiti offre une direction prometteuse pour la recherche future.

Alors que les méthodes de similarité en cosinus et de recherche en texte intégral sont bien établies dans les RAG [18], la recherche en première intention sur les graphes de connaissances a reçu peu d'attention dans le domaine des RAG, avec des exceptions notables dans les systèmes de RAG basés sur les graphes tels que AriGraph [9] et Distill-SynthKG [19]. Dans Graphiti, la recherche de type "breadth-first" est effectuée en identifiant n des nœuds et des arêtes supplémentaires à l'intérieur d'un saut afin d'améliorer les résultats de la recherche initiale. En outre, φbfs Les nœuds peuvent être acceptés comme paramètres de recherche, ce qui permet de mieux contrôler la fonction de recherche. Cette fonctionnalité s'avère particulièrement précieuse lorsqu'on utilise des épisodes récents comme point de départ d'une recherche en profondeur, ce qui permet au système d'incorporer des entités et des relations récemment mentionnées dans le contexte retrouvé.

Chacune de ces trois méthodes de recherche cible un aspect différent de la similarité : la recherche en texte intégral identifie la similarité des mots, la similarité des cosinus capture la similarité sémantique, et la recherche en profondeur révèle la similarité contextuelle - les nœuds et les arêtes les plus proches dans le graphe apparaissent dans des contextes de dialogue plus similaires. Cette approche multidimensionnelle de l'identification des résultats candidats maximise la probabilité de découvrir le meilleur contexte.

3.2 Réorganisateur

Alors que l'approche de recherche initiale vise un rappel élevé, le réordonnateur améliore la précision en donnant la priorité aux résultats les plus pertinents. Zep prend en charge les méthodes de réordonnancement existantes telles que la fusion de classement réciproque (RRF) [20] et la pertinence marginale maximale (MMR) [21]. En outre, Zep met en œuvre un réordonnateur de mentions d'épisodes basé sur un graphe qui hiérarchise les résultats en fonction de la fréquence de mention d'une entité ou d'un fait dans une conversation, rendant ainsi plus accessibles les informations fréquemment citées. Le système comprend également un réordonnateur de distance de nœud qui réordonne les résultats en fonction de leur distance par rapport à un nœud central spécifié, fournissant un contexte pour la localisation dans des régions spécifiques du graphe de connaissances. La capacité de réorganisation la plus sophistiquée du système utilise un encodeur croisé - générant des scores de pertinence en utilisant l'attention croisée pour évaluer les nœuds et les arêtes par rapport à la requête pour le LLM, bien que cette approche entraîne le coût de calcul le plus élevé.

 

4) Expériences

Cette section analyse deux expériences menées à l'aide d'un test de référence basé sur la mémoire LLM. La première évaluation utilise la tâche Deep Memory Retrieval (DMR) développée dans [3], qui utilise un sous-ensemble de 500 conversations de l'ensemble de données de chat multi-sessions présenté dans "Beyond Goldfish Memory : long-term open-domain conversations" [22]. La deuxième évaluation utilise le benchmark LongMemEval de "LongMemEval : Benchmarking Chat Assistants on Long-Term Interaction Memory" [7]. Plus précisément, nous utilisons LongMemEval ⋅ qui fournit un large éventail de contextes de dialogue d'une longueur moyenne de 115 000 tokens.

Pour les deux expériences, nous avons intégré l'historique du dialogue dans le graphe de connaissances de Zep via l'API de Zep. Nous récupérons ensuite les 20 arêtes les plus pertinentes (faits) et les nœuds d'entité (résumés d'entité) à l'aide des techniques décrites dans la section 3. Le système reformate ces données en chaînes de contexte qui correspondent à la fonctionnalité fournie par l'API de mémoire de Zep.

Bien que ces expériences démontrent les principales capacités de recherche de Graphiti, elles ne représentent qu'un sous-ensemble de la fonctionnalité de recherche complète du système. Ce champ d'application ciblé permet des comparaisons claires avec les tests de référence existants, tout en conservant la possibilité d'explorer le graphe de connaissances pour les travaux futurs.

4.1 Sélection des modèles

Notre mise en œuvre expérimentale utilise le modèle BGE-m3 de BAAI pour les tâches de réorganisation et d'intégration [23][24]. Pour la construction de graphes et la génération de réponses, nous utilisons gpt-4o-mini-2024-07-18 pour la construction de graphes et gpt-4o-mini-2024-07-18 et gpt-4o-2024-11-20 pour les intelligences de conversation afin de générer des réponses au contexte fourni.

Pour assurer une comparabilité directe avec les résultats DMR de MemGPT, nous avons également effectué une évaluation DMR en utilisant gpt-4-turbo-2024-04-09.

Les carnets expérimentaux seront accessibles au public via notre dépôt GitHub et comprendront des conseils expérimentaux pertinents en annexe.

Tableau 1 : Récupération de la mémoire profonde

mémorisationmodélisationmarque
résumé récursifRésumé du dialogueMemGPT†
ZepRésumé du dialoguegpt-4-turbo
dialogue completZepgpt-4o-mini

† Les résultats sont présentés dans [3].

4.2 Récupération de la mémoire profonde (DMR)

L'évaluation de la récupération de la mémoire profonde est introduite par [3] et consiste en 500 dialogues multi-sessions, chacun contenant 5 sessions de chat avec jusqu'à 12 messages par session. Le cadre MemGPT [3] est actuellement en tête des mesures de performance avec une précision de 93,41 TP3T en utilisant gpt-4-turbo, ce qui représente une amélioration significative par rapport à la base de 35,31 TP3T pour les résumés récursifs.

Pour établir une base de comparaison, nous avons implémenté deux méthodes de mémoire LLM communes : contexte de dialogue complet et résumé de session. En utilisant gpt-4-turbo, la ligne de base du dialogue complet atteint une précision de 94.41 TP3T, ce qui est légèrement plus élevé que les résultats rapportés par MemGPT, alors que la ligne de base du résumé de session atteint 78.61 TP3T. En utilisant gpt-4o-mini, les deux méthodes montrent une performance améliorée : 98.01 TP3T pour le dialogue complet, et 88.01 TP3T pour le résumé de session. . en raison de l'absence de détails méthodologiques suffisants dans leur travail publié, nous n'avons pas été en mesure de reproduire les résultats de MemGPT en utilisant gpt-4o-mini.

Nous évaluons ensuite les performances de Zep en ingérant le dialogue et en utilisant sa fonction de recherche pour récupérer les 10 nœuds et arêtes les plus pertinents. Le juge LLM compare la réponse de l'intelligentsia à la réponse correcte fournie. Zep atteint une précision de 94,81 TP3T avec gpt-4-turbo, et 98,21 TP3T avec gpt-4o-mini Zep obtient une précision de 94,81 TP3T avec gpt-4-turbo et de 98,21 TP3T avec gpt-4o-mini, ce qui représente une amélioration marginale par rapport à MemGPT et à la ligne de base du dialogue complet. Cependant, ces résultats doivent être placés dans leur contexte : chaque dialogue ne contient que 60 messages et est facilement adapté à la fenêtre contextuelle actuelle de LLM.

Les limites de l'évaluation DMR vont au-delà de sa petite taille. Nos analyses révèlent des faiblesses importantes dans la conception de ce test de référence. L'évaluation repose exclusivement sur des questions de récupération de faits à un tour et n'est pas en mesure d'évaluer la compréhension de mémoires complexes. De nombreuses questions contenaient des formulations vagues, invoquant des concepts tels que "boisson de relaxation préférée" ou "passe-temps étrange" qui n'étaient pas explicitement décrits comme tels dans le dialogue. De manière cruciale, l'ensemble de données ne fonctionne pas bien pour les cas d'utilisation des intelligences LLM dans le monde réel de l'entreprise. Les performances élevées obtenues en utilisant l'approche simple du contexte complet du LLM moderne soulignent encore les lacunes de ce point de référence dans l'évaluation des systèmes de mémoire.

Cette lacune est mise en évidence par les résultats dans [7], qui montrent que la performance de LLM sur les repères LongMemEval se dégrade rapidement à mesure que la longueur du dialogue augmente. L'ensemble de données LongMemEval [7] aborde ces lacunes en fournissant des dialogues plus longs et plus cohérents, un meilleur reflet des scénarios d'entreprise et un ensemble plus diversifié de questions d'évaluation.

4.3 LongMemEval (LME)

Nous avons évalué Zep en utilisant l'ensemble de données LongMemEvals, qui fournit des dialogues et des questions représentatifs des intelligences LLM dans des applications d'entreprise réelles.L'ensemble de données LongMemEvals pose un défi important aux solutions LLM et Business Memory existantes [7], avec des dialogues d'une longueur moyenne d'environ 115 000 tokens.Cette longueur, bien qu'assez importante, reste dans la fenêtre contextuelle des modèles frontières actuels. Cette longueur, bien qu'assez importante, reste dans la fenêtre contextuelle des modèles frontières actuels, ce qui nous permet d'établir une base de référence significative pour évaluer la performance de Zep.

L'ensemble de données contient six types de problèmes différents : utilisateurs à session unique, assistants à session unique, préférences à session unique, multisessions, mise à jour des connaissances et raisonnement temporel. Ces catégories ne sont pas uniformément réparties dans l'ensemble de données ; pour plus d'informations, nous renvoyons le lecteur à [7].

Toutes les expériences ont été menées entre décembre 2024 et janvier 2025. Nous avons utilisé des ordinateurs portables grand public à notre domicile de Boston, MA, pour nous connecter au service de Zep, qui est hébergé sur AWS us-west-2. Cette architecture distribuée introduit une latence réseau supplémentaire dans l'évaluation des performances de Zep, bien que cette latence ne soit pas présente dans notre évaluation de base.

Pour l'évaluation des réponses, nous avons utilisé le GPT-4o et fourni des indices spécifiques à la question fournis dans [7], qui se sont avérés très pertinents pour les évaluateurs humains.

4.3.1 LongMemEval et MemGPT

Afin d'établir une comparaison entre Zep et le système MemGPT actuel [3], nous avons tenté d'évaluer MemGPT en utilisant l'ensemble de données LongMemEval. Étant donné que le cadre actuel de MemGPT ne prend pas en charge l'ingestion directe des historiques de messages existants, nous avons mis en œuvre une solution en ajoutant des messages de dialogue à l'historique des archives. Cependant, nous n'avons pas été en mesure d'obtenir des Q&R en utilisant cette approche. Nous attendons avec impatience que d'autres équipes de recherche évaluent ce test de référence, car la comparaison des données de performance serait bénéfique pour le développement plus large des systèmes de mémoire LLM.

4.3.2 Résultats de LongMemEval

Zep a démontré des améliorations significatives à la fois en termes de précision et de latence par rapport à la ligne de base. En utilisant gpt-4o-mini, Zep a amélioré la précision de 15,21 TP3T par rapport à la base, tandis que gpt-4o a amélioré de 18,51 TP3T. La taille réduite des repères a également entraîné une réduction significative du coût de latence par rapport à l'implémentation de base.

Tableau 2 : LongMemEvals

mémorisationmodélisationmarqueremettre à plus tardDélai IQRContexte moyen Jetons
contexte completgpt-4o-mini55.4%31.3 s8.76 s115k
Zepgpt-4o-mini63.8%3.20 s1.31 s1.6k
contexte completgpt-4o60.2%28.9 s6.01 s115k
Zepgpt-4o71.2%2.58 s0.684 s1.6k

L'analyse par type de question a montré que gpt-4o-mini utilisant Zep a démontré des améliorations dans quatre des six catégories, avec les améliorations les plus importantes dans les types de questions complexes : préférence à une seule session, multi-session et raisonnement temporel. Zep a également amélioré ses performances dans la catégorie de la mise à jour des connaissances lors de l'utilisation de gpt-4o, ce qui montre qu'il est plus efficace lorsqu'il est utilisé avec des modèles plus puissants. Cependant, un développement supplémentaire peut être nécessaire pour améliorer la compréhension des données temporelles de Zep par des modèles moins puissants.

Tableau 3 : Décomposition des types de problèmes LongMemEvals

Type de problèmemodélisationcontexte completZepincrémentale
préférence pour une session uniquegpt-4o-mini30.0%53.3%77,7%↑
Assistant pour une session uniquegpt-4o-mini81.8%75.0%90'6%↑
déduction chronologiquegpt-4o-mini36.5%54.1%48.2%↑
multisessiongpt-4o-mini40.6%47.4%16.7%↑
Mise à jour des connaissancesgpt-4o-mini76.9%74.4%3.36%↓
utilisateur à session uniquegpt-4o-mini81.4%92.9%14.1%↑
préférence pour une session uniquegpt-4o20.0%56.7%184%↑
Assistant pour une session uniquegpt-4o94.6%80.4%17.7%↓
déduction chronologiquegpt-4o45.1%62.4%38.4%↑
multisessiongpt-4o44.3%57.9%30.7%↑
Mise à jour des connaissancesgpt-4o78.2%83.3%6.52%↑
utilisateur à session uniquegpt-4o81.4%92.9%14.1%↑

Ces résultats démontrent la capacité de Zep à améliorer les performances à l'échelle du modèle, les améliorations les plus significatives étant observées sur les types de problèmes complexes et délicats lorsqu'ils sont utilisés avec des modèles plus puissants. Les améliorations en termes de latence sont particulièrement significatives, Zep réduisant les temps de réponse d'environ 901 TP3T tout en maintenant une plus grande précision.

La dégradation des performances pour le problème de l'aide à session unique - 17,71 TP3T pour gpt-4o et 9,061 TP3T pour gpt-4o-mini - représente une exception notable à l'amélioration constante de Zep, ce qui suggère que la nécessité de poursuivre les travaux de recherche et d'ingénierie.

 

5. conclusion

Nous avons présenté Zep, une approche de la mémoire LLM basée sur les graphes qui combine la mémoire sémantique et épisodique avec des résumés d'entités et de communautés. Notre évaluation montre que Zep atteint des performances de pointe dans les tests de mémoire existants, tout en réduisant le coût des jetons et en fonctionnant avec une latence nettement plus faible.

Bien que les résultats obtenus par Graphiti et Zep soient impressionnants, il est probable qu'ils ne constituent que des avancées préliminaires dans les systèmes de mémoire basés sur les graphes. De nombreuses pistes de recherche pourraient être développées à partir de ces deux cadres, y compris l'intégration d'autres méthodes GraphRAG dans le paradigme Zep, ainsi que de nouvelles extensions de notre travail.

La recherche a démontré la valeur du réglage fin des modèles pour l'extraction d'entités et de bords LLM dans le paradigme GraphRAG, améliorant la précision tout en réduisant le coût et la latence [19][25]. De même, le réglage fin du modèle pour les indices Graphiti peut améliorer l'extraction de connaissances, en particulier pour les dialogues complexes. En outre, alors que la recherche actuelle sur les graphes de connaissances générés par LLM a principalement fonctionné en l'absence d'ontologies formelles [9][4][17][19][26], les ontologies spécifiques au domaine ont un potentiel significatif. Les ontologies de graphes, qui sont fondamentales dans le travail de cartographie des connaissances pré-LLM, méritent d'être explorées plus avant dans le cadre de Graphiti.

Notre recherche de tests de référence appropriés pour la mémoire révèle une sélection limitée, les tests de référence existants manquant souvent de robustesse et de sophistication, et se limitant souvent à de simples problèmes de recherche de faits par épingle [3]. Le domaine a besoin de tests de référence supplémentaires pour la mémoire, en particulier ceux qui reflètent les applications commerciales telles que les tâches liées à l'expérience client, afin d'évaluer et de différencier efficacement les approches de la mémoire. Notamment, les tests de référence existants sont insuffisants pour évaluer la capacité de Zep à traiter et à synthétiser l'historique du dialogue avec des données commerciales structurées. Bien que Zep se concentre sur la mémoire LLM, ses capacités RAG traditionnelles devraient être évaluées par rapport aux tests de référence établis dans [17], [27] et [28].

L'extensibilité des systèmes de production, y compris le coût et la latence, n'a pas été abordée de manière adéquate dans la littérature actuelle sur les mémoires LLM et les systèmes RAG. Nous incluons l'évaluation comparative de la latence des mécanismes de récupération pour commencer à combler cette lacune, en suivant l'exemple des auteurs de LightRAG qui ont donné la priorité à ces mesures.

6. annexe

6.1 Conseils pour la construction du graphique

6.1.1 Extraction d'entités

{当前_消息}
</当前消息>
根据以上对话,从“当前消息”中提取明确或隐含提及的实体节点:
准则:
1.始终提取说话者/演员作为第一个节点。说话者是每行对话中冒号前的部分。
2.提取“当前消息”中提及的其他重要实体、概念或演员。
3.不要为关系或动作创建节点。
4.不要为时间信息(如日期、时间或年份)创建节点(这些将在稍后添加到边缘)。
5.在节点命名时尽可能明确,使用全名。
6.不要仅提取提及的实体

 

6.1.2 Résolution des entités

<之前的消息>
{之前的消息}
</之前的消息>
<当前消息>
{当前消息}
</当前消息>
<现有节点>
{现有节点}
</现有节点>
给定上述的现有节点、消息和之前的消息。确定从对话中提取的新节点是否是现有节点中的重复实体。
<新节点>
{新节点}
</新节点>
任务:
1. 如果新节点与现有节点中的任何节点表示相同的实体,则在响应中返回“is_duplicate: true”。否则,返回“is_duplicate: false”。
2. 如果 is_duplicate 为 true,则在响应中同时返回现有节点的 uuid。
3. 如果 is_duplicate 为 true,则返回节点的最完整的全名。
指南:
1. 使用节点的名称和摘要来确定实体是否重复,重复节点可能具有不同的名称。

6.1.3 Extraction des faits

<之前的消息>
{之前的消息}
</之前的消息>
<当前消息>
{当前消息}
</当前消息>
<实体>
{实体}
</实体>
给定上述消息和实体,从当前消息中提取所有与列出的实体相关的要素。
指南:
1. 仅提取所提供的实体之间的事实。
2. 每个事实应表示两个不同节点之间的清晰关系。
3. relation_type 应该是对事实的简洁、全大写描述(例如,LOVES、IS_FRIENDS_WITH、
WORKS_FOR)。
4. 提供包含所有相关信息的更详细的事实。
5. 考虑关系的时间方面(如果相关)。

6.1.4 Analyse des faits

给定以下上下文,判断 "新边" 是否表示 "现有边" 列表中任何一条边所表达的相同信息。
<现有边>
{existing_edges}
</现有边>
<新边>
{new_edge}
</新边>
任务:
如果 "新边" 表示与 "现有边" 中任何一条边相同的事实信息,则在响应中返回 'is_duplicate: true'。 否则,返回 'is_duplicate: false'。
如果 is_duplicate 为 true,则还在响应中返回现有边的 uuid。
指南:
事实信息不需要完全相同才能判定为重复,它们只需要表达相同的信息即可。

6.1.5 Extraction du temps

<先前消息>
{先前的消息}
</先前消息>
<当前消息>
{当前消息}
</当前消息>
<参考时间戳>
{参考时间戳}
</参考时间戳>
<事实>
{事实}
</事实>
重要提示:仅在提供的事实中包含时间信息时才提取时间信息,否则忽略提及的时间。  
如果仅提到了相对时间(例如“10年前”、“2分钟前”),请尽力基于提供的参考时间戳确定具体日期。  
如果关系不是跨越性的,但仍然可以确定日期,则仅设置 `valid_at`。  
定义:
- valid_at:该事实描述的关系变为真实或被建立的日期和时间。  
- invalid_at:该事实描述的关系不再真实或结束的日期和时间。  
任务:
分析对话并确定事实中是否包含日期信息。仅在日期明确与关系的建立或变更相关时才进行设置。  
指南: 
1. 使用 ISO 8601 格式(YYYY-MM-DDTHH:MM:SS.SSSSSSZ)表示日期时间。  
2. 计算 `valid_at` 和 `invalid_at` 时,以参考时间戳作为当前时间。  
3. 如果事实使用现在时态,则使用参考时间戳作为 `valid_at` 日期。  
4. 如果没有找到能确立或更改关系的时间信息,则将字段设为 null。  
5. 不得 从相关事件推断日期,仅使用直接用于确立或更改关系的日期。  
6. 如果提及的相对时间直接与关系相关,则基于参考时间戳计算实际日期时间。  
7. 如果只提到了日期但未指定时间,则默认使用 00:00:00(午夜)。  
8. 如果仅提到了年份,则使用该年 1月1日 00:00:00。  
9. 始终包括时区偏移量(如果未指定具体时区,则使用 Z 表示 UTC)。  
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...