ZEP: архитектура темпорального графа знаний для интеллектуальной памяти тела

рефераты

Мы представляем Zep, новый сервис слоя памяти для интеллигенции, который превосходит текущую современную систему MemGPT в бенчмарках Deep Memory Retrieval (DMR). Кроме того, Zep демонстрирует превосходство в более комплексных и сложных оценках, чем DMR, которые лучше отражают реальные корпоративные сценарии использования. В то время как существующие системы на основе больших языковых моделей (LLM) ограничены статическим поиском документов, корпоративные приложения требуют динамической интеграции знаний из различных источников, включая текущие разговоры и бизнес-данные. Zep устраняет это фундаментальное ограничение с помощью своего основного компонента Graphiti, движка Knowledge Graph с учетом времени. Он динамически интегрирует неструктурированные данные разговоров и структурированные бизнес-данные, сохраняя при этом исторические связи. Zep продемонстрировал превосходную производительность (94,81 TP3T против 93,41 TP3T) в эталонном тесте DMR, созданном командой MemGPT. Помимо DMR, возможности Zep были дополнительно подтверждены в более сложном бенчмарке LongMemEval, который лучше отражает корпоративные сценарии использования через сложные задачи временных рассуждений. В этой оценке Zep улучшил точность на 18,51 TP3T и сократил время ожидания ответа на 901 TP3T по сравнению с базовой реализацией. Эти результаты особенно важны в критически важных для предприятия задачах, таких как синтез межсессионной информации и долгосрочное поддержание контекста, что демонстрирует эффективность Zep в реальных приложениях.

1. Введение

В последние годы большое внимание привлекает влияние больших языковых моделей (БЯМ) на промышленность и научные исследования [1]. Одним из основных применений БЯМ является разработка интеллектов на основе чатов. Однако возможности этих интеллектов ограничены контекстным окном LLM, эффективным использованием контекста и знаниями, полученными в ходе предварительного обучения. Поэтому необходим дополнительный контекст для обеспечения внедоменных знаний (OOD) и уменьшения иллюзий.

RAG использует методы информационного поиска (IR), разработанные за последние пятьдесят лет [2], чтобы предоставить необходимые знания о домене для LLM.

Современные подходы к использованию RAG ориентированы на обширные знания домена и относительно статичные корпорации - то есть содержание документов, добавляемых в корпус, редко меняется. Для того чтобы интеллекты стали широко распространены в нашей повседневной жизни и могли автономно решать проблемы от тривиальных до очень сложных, им потребуется доступ к постоянно пополняемому обширному корпусу документов, создаваемых в результате взаимодействия пользователя с интеллектом, а также к соответствующим деловым и мировым данным. Мы считаем, что предоставление интеллектам такой обширной и динамичной "памяти" является ключевым компонентом реализации этого видения, и мы не уверены, что существующие подходы RAG подходят для такого будущего. Поскольку целые истории диалогов, наборы бизнес-данных и другой специфический контент не могут быть эффективно адаптированы к контекстуальному окну LLM, необходимо разработать новые подходы для работы с памятью интеллекта. Добавление памяти к интеллекту, управляемому LLM, не является новой идеей - эта концепция уже исследовалась ранее в MemGPT [3].

Недавно графы знаний (ГЗ) были использованы для расширения архитектур RAG, чтобы устранить многие из недостатков традиционных методов IR [4]. В этой статье мы представляем Zep [5], сервис уровня in-memory, работающий на базе Graphiti [6], динамического, учитывающего время движка графа знаний. Zep получает и синтезирует неструктурированные данные сообщений и структурированные бизнес-данные. динамически обновляет граф знаний без потери новой информации, сохраняя временную шкалу фактов и отношений, включая даты их истечения. Такой подход позволяет графу знаний представлять сложный, развивающийся мир.

Поскольку Zep является производственной системой, мы придаем большое значение точности, задержке и масштабируемости механизмов извлечения памяти. Для оценки эффективности этих механизмов мы используем два существующих бенчмарка: задачу глубокого извлечения памяти (DMR) в MemGPT [3] и бенчмарк LongMemEval [7].

2. Картирование знаний

В Zep память поддерживается динамическим графом знаний с учетом времени ℊ = (𝓃, ℯ, φ), где 𝓃 представляет собой узел, ℯ - ребро, а φ:ℯ→ 𝓃 × 𝓃 представляет формализованную ассоциативную функцию. Этот граф состоит из трех иерархических подграфов: подграфа сюжета, подграфа семантической сущности и подграфа сообщества.

2.1 Эпизоды

Построение графа в Zep начинается с получения необработанных единиц данных, называемых эпизодами. Эпизоды могут быть одного из трех основных типов: сообщения, текст или JSON. Хотя каждый тип требует специфической обработки в процессе построения графа, в данной статье мы сосредоточимся на типе сообщений, поскольку наши эксперименты сосредоточены на диалоговой памяти. В нашем контексте сообщение состоит из относительно короткого текста (несколько сообщений могут быть адаптированы к контекстному окну LLM) и связанных с ним участников, которые произвели дискурс.

Каждое сообщение содержит контрольную временную метку tссылкаВремя суток, которое указывает на то, когда было отправлено сообщение. Эта временная информация позволяет Zep точно идентифицировать и извлекать относительные или частичные даты, упомянутые в содержимом сообщения (например, "в следующий четверг", "через две недели" или "прошлым летом"). Zep реализует диахроническую модель, в которой временная шкала T представляет собой хронологический порядок событий, а временная шкала T представляет собой хронологический порядок поступления данных Zep. Хотя T Временные шкалы служат традиционной цели аудита баз данных, но временная шкала T обеспечивает дополнительное измерение для моделирования динамической природы диалоговых данных и памяти. Этот подход, основанный на двойном времени, представляет собой новое достижение в построении графов знаний LLM и лежит в основе уникальных возможностей Zep по сравнению с предыдущими предложениями RAG на основе графов.

Сторона участка ℯe Соедините сюжеты с их извлеченными узлами сущностей. Сюжеты и их производные семантические ребра поддерживают двунаправленные индексы, которые отслеживают связь между ребром и его исходным сюжетом. Такая конструкция усиливает нетеряемый характер подграфов сюжетов Graphiti, позволяя осуществлять прямой и обратный обход: семантические артефакты могут быть отслежены до их источников для цитирования или ссылки, а сюжеты могут быть быстро найдены по связанным с ними сущностям и фактам. Хотя эти связи не были непосредственно рассмотрены в экспериментах данной диссертации, они будут изучены в будущей работе.

2.2 Семантические сущности и факты

2.2.1 Сущности

Извлечение сущностей - это начальный этап обработки эпизодов. Во время приема система обрабатывает текущее содержимое сообщения и последнее n сообщение, чтобы обеспечить контекст для распознавания именованных сущностей. В данной статье и в общей реализации Zepn=4, для контекстной оценки было предоставлено два полных раунда диалога. Учитывая, что мы ориентированы на обработку сообщений, говорящий автоматически извлекается как объект. После первоначального извлечения сущности мы используем технику отражения, вдохновленную [12], чтобы минимизировать иллюзии и увеличить охват извлечения. Система также извлекает краткие описания сущностей из эпизода, чтобы облегчить последующие операции по разрешению и поиску сущностей.

После извлечения система встраивает каждое имя сущности в 1024-мерное векторное пространство. Это вложение позволяет находить похожие узлы среди существующих узлов графа сущностей с помощью поиска по косинусному сходству. Система также выполняет отдельный полнотекстовый поиск по существующим названиям сущностей и аннотациям, чтобы выявить дополнительные узлы-кандидаты. Эти узлы-кандидаты вместе с сюжетным контекстом затем обрабатываются в LLM с помощью наших подсказок по разрешению сущностей. Если система обнаруживает дубликаты сущностей, она генерирует обновленное имя и аннотацию.

После извлечения сущностей и синтаксического анализа система объединяет данные в граф знаний с помощью предопределенных запросов Cypher. Мы выбрали этот подход вместо запросов к базе данных, генерируемых LLM, чтобы обеспечить согласованный архитектурный формат и уменьшить вероятность возникновения галлюцинаций.

Отдельные советы по созданию атласа приведены в Приложении.

2.2.2 Факты

для каждого факта, содержащего его ключевой предикат. Аналогично, один и тот же факт может быть извлечен несколько раз из разных сущностей, что позволяет Graphiti моделировать сложные факты с несколькими сущностями путем реализации гиперэлементов.

После извлечения система генерирует вкрапления для фактов, подготавливая их к интеграции в граф. Система выполняет дедупликацию ребер с помощью процесса, аналогичного разрешению сущностей. Гибридные ребра, связанные с поиском, ограничиваются ребрами, существующими между парами сущностей, которые идентичны предлагаемым новым ребрам. Это ограничение не только предотвращает неправильные комбинации похожих ребер между различными сущностями, но и значительно снижает вычислительную сложность процесса дедупликации, ограничивая пространство поиска подмножеством ребер, связанных с определенной парой сущностей.

2.2.3 Извлечение времени и определение недействительности краев

Ключевой отличительной особенностью Graphiti по сравнению с другими движками графов знаний является то, что он управляет динамическими обновлениями информации с помощью процессов временного извлечения и аннулирования граней.

использование системы tссылка Извлечение временной информации о фактах из контекста сюжета. Это позволяет точно извлекать и представлять даты, включая абсолютные временные метки (например, "Алан Тьюринг родился 23 июня 1912 года") и относительные временные метки (например, "Я начал работать на новой работе две недели назад"). В соответствии с нашим подходом к моделированию двойного времени, система отслеживает четыре временные метки:t Создавайте и t Срок годности ∈T Отслеживайте, когда в системе создаются или аннулируются факты, и tдействительный ответить пением tНедействительныйT Отслеживает временные рамки, в которые был установлен факт. Эти временные данные хранятся на стороне вместе с другой фактической информацией.

Введение новых ребер может привести к аннулированию существующих ребер в базе данных. Система использует LLM для сравнения новых ребер с семантически связанными существующими ребрами, чтобы выявить потенциальные противоречия. Когда система идентифицирует временное противоречие, она делает это путем сравнения tНедействительный Установите на недопустимую сторону tдействительный чтобы признать недействительными затронутые края. В соответствии с графиком транзакций TGraphiti всегда отдает предпочтение новой информации при определении недействительности граней.

Такой интегрированный подход позволяет динамически добавлять данные в Graphiti по мере развития разговоров, сохраняя при этом текущее состояние отношений и историю их развития с течением времени.

2.3 Сообщество

После построения сюжетных и семантических подграфов система строит подграфы сообществ путем их обнаружения. Хотя наш подход к обнаружению сообществ основан на технике, описанной в GraphRAG [4], мы используем алгоритм распространения меток [13] вместо алгоритма Лейдена [14]. На этот выбор повлияло простое динамическое расширение распространения меток, которое позволяет системе поддерживать точные представления сообществ в течение более длительных периодов времени по мере поступления новых данных в граф, откладывая необходимость полного обновления сообществ.

Динамическое расширение реализует логику одного рекурсивного шага в распространении меток. Когда система добавляет в граф новый узел сущности ni ∈Ns Когда это происходит, он изучает сообщества соседних узлов. Система присваивает новому узлу сообщество, к которому принадлежит большинство его соседей, а затем соответствующим образом обновляет сводку сообществ и граф. Хотя такое динамическое обновление позволяет сообществам эффективно масштабироваться по мере поступления данных в систему, результирующие сообщества постепенно отклоняются от сообществ, созданных при полном распространении меток. Поэтому периодическое обновление сообществ по-прежнему необходимо. Тем не менее, эта стратегия динамического обновления обеспечивает практическую эвристику, которая значительно снижает задержку и затраты на вывод LLM.

В соответствии с [4], узлы нашего сообщества содержат сводки, полученные путем итеративного map-reduce-стиля сводок узлов-участников. Однако наш подход к поиску существенно отличается от подхода GraphRAG, основанного на map-reduce [4]. Чтобы поддержать наш подход к поиску, мы сгенерировали названия сообществ, содержащие ключевые термины и связанные с ними темы из резюме сообществ. Эти названия встраиваются и сохраняются, чтобы обеспечить поиск по косинусному сходству.

3. поиск по памяти

Система поиска в памяти Zep обеспечивает мощную, сложную и легко настраиваемую функциональность. В целом, API поиска по графу Zep реализует функцию f:SSкоторый принимает запрос текстовой строки α ∈.S в качестве входных данных и возвращает текстовую строку контекст β ∈S в качестве выходных данных. Выходные данные β содержат форматированные данные узлов и ребер, которые необходимы интеллектам LLM для создания точных ответов на запрос α. Процесс f(α)→β состоит из трех различных этапов:

- Поиск (φ): в ходе этого процесса сначала определяются отобранные узлы и ребра, которые могут содержать релевантную информацию. Хотя в Zep используется несколько различных методов поиска, общая функция поиска может быть выражена как φ.Ssn-×𝒩sn. ×𝒩cn. Таким образом, φ преобразует запрос в 3-кортеж, содержащий список семантических ребер, узлов сущностей и узлов сообществ - трех типов графов, содержащих релевантную текстовую информацию.

- Reorderer (ρ): второй шаг - упорядочивание результатов поиска. Функция или модель reorderer берет список результатов поиска и генерирует их переупорядоченную версию: ρ:φ(α),...→sn×𝒩sn×𝒩cn.

- Конструктор (χ): на последнем этапе конструктор преобразует соответствующие узлы и ребра в текстовый контекст: χ: thesn×𝒩sn×𝒩cnS. Для каждого eis, χ возвращает факт и tдействительныйtНедействительный поле; для каждого ni𝒩sверните поля "Имя" и "Сводка"; для каждого ni𝒩cвозвращает поле с итоговой информацией.

Приняв эти определения, мы можем установить f представляется как комбинация этих трех компонентов:f(α) = χ(ρ(φ(α))) = β.

Образец шаблона контекстной строки:

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

3.1 Поиск

В Zep реализованы три функции поиска: поиск по косинусному семантическому сходству (φcos), полнотекстовый поиск Okapi BM25 (φbm25}) и широким поиском (φbfs). Первые две функции используют реализацию Lucene в Neo4j [15] [16]. Каждая функция поиска предоставляет различные возможности по выявлению релевантных документов, а вместе они обеспечивают полный охват результатов-кандидатов до их переупорядочивания. Поля поиска различаются для разных типов объектов: для 𝒜sмы ищем поля фактов; для 𝒩sпоиск имен сущностей; для 𝒩cищет названия сообществ, которые включают в себя релевантные ключевые слова и фразы, используемые в сообществе. Хотя наш метод поиска сообществ был разработан независимо, он параллелен методу высокоуровневого поиска ключей LightRAG [17]. Объединение подхода LightRAG с системами на основе графов, такими как Graphiti, представляет собой перспективное направление для будущих исследований.

В то время как методы косинусного сходства и полнотекстового поиска хорошо зарекомендовали себя в RAG [18], широкому поиску по графам знаний в области RAG уделялось мало внимания, за заметным исключением систем RAG на основе графов, таких как AriGraph [9] и Distill-SynthKG [19]. В Graphiti поиск по первому слову выполняется путем определения n дополнительные узлы и ребра в пределах одного хопа для улучшения результатов первоначального поиска. Кроме того, φbfs Возможность принимать узлы в качестве параметров поиска позволяет более тонко управлять функцией поиска. Эта функция оказывается особенно ценной при использовании недавних эпизодов в качестве затравки для широкого поиска, позволяя системе объединять недавно упомянутые сущности и отношения в контексте поиска.

Каждый из этих трех методов поиска нацелен на разные аспекты сходства: полнотекстовый поиск выявляет сходство слов, косинусоидальное сходство фиксирует семантическое сходство, а поиск по широте поиска выявляет контекстуальное сходство - более близкие узлы и ребра графа оказываются в более похожих контекстах диалога. Такой многогранный подход к определению результатов-кандидатов максимизирует вероятность обнаружения наилучшего контекста.

3.2 Реордерер

В то время как первоначальный подход к поиску нацелен на высокий уровень запоминания, реордерер повышает точность за счет приоритета наиболее релевантных результатов. Zep поддерживает существующие методы реордерера, такие как Reciprocal Rank Fusion (RRF) [20] и Maximum Marginal Relevance (MMR) [21]. Кроме того, в Zep реализован графовый реорганизатор упоминаний эпизодов, который определяет приоритеты результатов на основе частоты упоминаний сущностей или фактов, делая часто цитируемую информацию более доступной. Система также включает в себя реордер расстояния до узла, который упорядочивает результаты на основе их расстояния до указанного центрального узла, предоставляя контент, локализованный в определенной области графа знаний. Наиболее сложная возможность упорядочивания в системе использует кросс-кодеры - LLM, которые генерируют оценки релевантности, используя перекрестное внимание для оценки релевантности узлов и ребер запросу, хотя этот подход требует наибольших вычислительных затрат.

4. Эксперименты

В этом разделе анализируются два эксперимента, проведенные с использованием эталонных тестов, основанных на памяти LLM. В первой оценке используется задача Deep Memory Retrieval (DMR), разработанная в [3], которая использует подмножество из 500 разговоров из многосессионного набора данных чата, представленного в "Beyond Goldfish Memory: long-term open-domain conversations" [22]. Во второй оценке использовался эталонный тест LongMemEval из [7]. В частности, мы использовали тест LongMemEval ċċċċċċċċċċiedi Набор данных, в котором представлены обширные диалоговые контексты со средней длиной 115 000 лексем.

В обоих экспериментах мы интегрировали историю диалога в граф знаний Zep через API Zep. Затем мы извлекли 20 наиболее релевантных ребер (фактов) и узлов сущностей (резюме сущностей), используя методы, описанные в разделе 3. Система переформатирует эти данные в контекстные строки, которые соответствуют функциональности, предоставляемой API памяти Zep.

Хотя эти эксперименты демонстрируют ключевые поисковые возможности Graphiti, они представляют собой подмножество полного поискового функционала системы. Такая узкая направленность позволяет проводить четкие сравнения с существующими эталонными тестами, сохраняя при этом пространство для будущих работ по изучению дополнительных возможностей графов знаний.

4.1 Выбор модели

Наша экспериментальная реализация использует модель BAAI BGE-m3 для задач переупорядочивания и встраивания [23] [24]. Для построения графов и генерации ответов мы используем gpt-4o-mini-2024-07-18 для построения графов и gpt-4o-mini-2024-07-18 и gpt-4o-2024-11-20 для чат-интеллектов для генерации ответов на заданный контекст.

Для обеспечения прямой сопоставимости с результатами DMR MemGPT мы также провели оценку DMR с использованием gpt-4-turbo-2024-04-09.

Экспериментальные блокноты будут размещены в открытом доступе в нашем репозитории GitHub, а соответствующие экспериментальные подсказки включены в приложение.

Таблица 1: Глубокое извлечение информации из памяти

запоминаниемоделированиеоценка
Рекурсивное резюме Диалоговое резюме MemGPT? Полный диалогgpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo35.3% 78.6% 93.4% 94.4%
Zep Резюме диалогаgpt-4-turbo gpt-4o-mini94.8%
Полный диалог Zepgpt-4o-mini gpt-4o-mini88.0% 98.0% 98.2%

† Результаты приведены в [3].

4.2 Извлечение из глубокой памяти (DMR)

Оценка глубокого восстановления памяти была представлена в [3] и состоит из 500 многосеансовых диалогов, каждый из которых содержит 5 чат-сессий с 12 сообщениями в каждой сессии. Каждый диалог включает пару вопрос/ответ для оценки памяти. Фреймворк MemGPT [3] в настоящее время лидирует по показателям производительности с точностью 93,41 TP3T, что является значительным улучшением по сравнению с базовым показателем 35,31 TP3T, достигнутым с помощью рекурсивного суммирования.

Для сравнения мы применили два распространенных метода запоминания LLM: полный контекст диалога и резюме сессии. При использовании gpt-4-turbo базовая линия полного диалога достигает точности 94,41 TP3T, что немного выше результатов MemGPT, в то время как базовая линия резюме сессии достигает 78,61 TP3T. при использовании gpt-4o-mini оба метода показывают лучшую производительность: 98,01 TP3T для полного диалога и 88,01 TP3T для резюме сессии. Мы не смогли воспроизвести результаты MemGPT с использованием gpt-4o-mini из-за отсутствия достаточных методологических деталей в его опубликованной работе.

Затем мы оценили производительность Zep, проглотив диалог и используя функцию поиска для извлечения 10 наиболее релевантных узлов и ребер. Судья LLM сравнивает ответ интеллигенции с правильным ответом. Zep достигает точности 94,81 TP3T с gpt-4-turbo и 98,21 TP3T с gpt-4o-mini. что свидетельствует о незначительном улучшении по сравнению с MemGPT и соответствующим базовым уровнем полного диалога. Однако эти результаты следует рассматривать в контексте: каждый диалог содержит всего 60 сообщений, которые легко адаптируются к текущему контекстному окну LLM.

Ограничения оценки ПМР выходят за рамки ее небольшого размера. Наш анализ выявил существенные недостатки в дизайне эталонного теста. Тест основывался исключительно на однораундовых вопросах на поиск фактов и не мог оценить сложное восприятие памяти. Многие вопросы содержали расплывчатые формулировки, относящиеся к таким понятиям, как "любимый расслабляющий напиток" или "странное хобби", которые не были прямо описаны в диалоге. Важно отметить, что набор данных не очень хорошо подходит для реальных корпоративных случаев использования интеллекта LLM. Отличные результаты, достигнутые при использовании простого полноконтекстного подхода в современных LLM, еще раз подчеркивают неадекватность бенчмарков при оценке систем памяти.

Этот недостаток также подчеркивается результатами, полученными в [7], которые показывают, что производительность LLM в бенчмарк-тесте LongMemEval быстро снижается по мере увеличения длины диалога. Набор данных LongMemEval [7] устраняет эти недостатки, предоставляя более длинные, более связные диалоги, которые лучше отражают сценарии предприятия, а также более разнообразные вопросы для оценки.

4.3 LongMemEval (LME)

Мы оценивали Zep с помощью набора данных LongMemEvals, в котором представлены диалоги и вопросы, репрезентативные для реальных LLM-интеллектов бизнес-приложений. Набор данных LongMemEvals представляет собой серьезную проблему для существующих решений LLM и бизнес-памяти [7], поскольку диалоги в среднем имеют длину около 115 000 лексем. Эта длина, хотя и довольно большая, все еще находится в пределах контекстуального окна текущих передовых моделей, что позволяет нам установить значимый базовый уровень для оценки производительности Zep.

Набор данных содержит шесть различных типов задач: односессионные пользователи, односессионные помощники, односессионные предпочтения, многосессионные, обновление знаний и временные рассуждения. Эти категории распределены в наборе данных неравномерно; за дополнительной информацией мы отсылаем читателя к [7].

Все эксперименты проводились в период с декабря 2024 года по январь 2025 года. Мы проводили испытания с использованием потребительских ноутбуков в жилом доме в Бостоне, штат Массачусетс, подключенных к сервису Zep, размещенному на AWS us-west-2. Такая распределенная архитектура вносит дополнительную сетевую задержку в оценку производительности Zep, хотя в нашей базовой оценке она отсутствует.

Для оценки ответов мы использовали GPT-4o и предоставляли подсказки по конкретным вопросам, приведенные в [7], которые, как было показано, являются очень релевантными для человеческих экспертов.

4.3.1 LongMemEval и MemGPT

Для того чтобы сравнить Zep с современной системой MemGPT [3], мы попытались оценить MemGPT с помощью набора данных LongMemEval. Учитывая, что текущий фреймворк MemGPT не поддерживает прямое включение существующих историй сообщений, мы нашли обходной путь, добавив диалоговые сообщения в архивную историю. Однако мы не смогли добиться успешного Q&A, используя этот подход. Мы с нетерпением ждем, когда другие исследовательские группы оценят этот эталонный тест, поскольку сравнение данных о производительности будет полезно для более широкого развития систем памяти LLM.

4.3.2 Результаты LongMemEval

Zep продемонстрировал значительное улучшение точности и задержки по сравнению с базовым уровнем. Используя gpt-4o-mini, Zep достигает улучшения точности на 15,21 TP3T по сравнению с базовым вариантом, а gpt-4o - на 18,51 TP3T. Уменьшение размера подсказки также приводит к значительному снижению затрат на задержку по сравнению с базовой реализацией.

Таблица 2: LongMemEvals

запоминаниемоделированиеоценказатягиватьЗадержка IQRСредний контекстный маркер
полный контекстgpt-4o-mini55.4%31.3 s8.76 s115k
Zepgpt-4o-mini63.8%3.20 s1.31 s1.6k
полный контекстgpt-4060.2%28.9 s6.01 s115k
Zepgpt-4071.2%2.58 s0.684 s1.6k

Анализ по типам вопросов показал, что gpt-4o-mini при использовании Zep продемонстрировал улучшения в четырех из шести категорий, причем наиболее значительные улучшения были достигнуты в сложных типах вопросов: предпочтение одной сессии, мультисессия и темпоральные рассуждения. При использовании gpt-4o Zep продемонстрировал дальнейшее улучшение в категории обновления знаний, подчеркивая, что он более эффективен при использовании с более способными моделями. Однако может потребоваться дополнительная разработка для улучшения понимания темпоральных данных Zep менее способными моделями.

Таблица 3: Декомпозиция типов задач LongMemEvals

Тип проблемымоделированиеполный контекстZepинкрементный
предпочтение одной сессииgpt-4o-mini30.0%53.3%77.71 TP3T
Ассистент на один сеансgpt-4o-mini81.8%75.0%↑%90'6
хронологический выводgpt-4o-mini36.5%54.1%48.2%↑
мультисессияgpt-4o-mini40.6%47.4%16.7%↑
Обновление знанийgpt-4o-mini76.9%74.4%3.36%↓
односеансовый пользовательgpt-4o-mini81.4%92.9%14.1%↑
предпочтение одной сессииgpt-4020.0%56.7%184%↑
Ассистент на один сеансgpt-4094.6%80.4%17.7%↓
хронологический выводgpt-4045.1%62.4%38.41 TP3T
мультисессияgpt-4044.3%57.9%30.7%↑
Обновление знанийgpt-4078.2%83.3%6.52%↑
односеансовый пользовательgpt-4081.4%92.9%14.1%↑

Эти результаты демонстрируют способность Zep повышать производительность в разных масштабах модели, причем наиболее значительные улучшения наблюдаются в сложных и деликатных задачах при использовании с более мощными моделями. Особенно значительным является улучшение задержки: Zep сократил время отклика примерно на 901 TP3T при сохранении высокой точности.

Падение производительности при решении задачи с односеансовым помощником - 17,71 TP3T для gpt-4o и 9,061 TP3T для gpt-4o-mini - представляет собой заметное исключение из последовательного улучшения показателей Zep. и указывает на необходимость дальнейших исследований и инженерных работ.

5. Заключение

Мы представили Zep, основанный на графах подход к LLM-памяти, который сочетает семантическую и эпизодическую память с резюме сущностей и сообществ. Наша оценка показывает, что Zep достигает передовой производительности в существующих бенчмарках памяти, при этом снижая затраты на маркировку и работая со значительно меньшими задержками.

Хотя результаты, достигнутые Graphiti и Zep, впечатляют, они, скорее всего, являются лишь предварительными достижениями в области систем памяти на основе графов. На основе этих двух фреймворков могут быть разработаны различные направления исследований, включая интеграцию других подходов GraphRAG в парадигму Zep, а также новые расширения нашей работы.

Исследования показали ценность тонкой настройки моделей для извлечения сущностей и краев LLM в парадигме GraphRAG для повышения точности при снижении стоимости и задержки [19] [25]. Аналогично, модели, точно настроенные на сигналы Graphiti, могут улучшить извлечение знаний, особенно для сложных диалогов. Кроме того, хотя текущие исследования графов знаний, генерируемых LLM, проводятся в основном в отсутствие формальных онтологий [9] [4] [17] [19] [26], онтологии, специфичные для конкретной области, имеют значительный потенциал. Графовые онтологии, которые являются основополагающими в работе над графами знаний до LLM, заслуживают дальнейшего изучения в рамках Graphiti.

Поиск подходящих эталонных тестов памяти выявил ограниченные возможности: существующие эталонные тесты, как правило, не отличаются надежностью и сложностью, часто сводясь к простым задачам поиска фактов с помощью булавки [3]. Для эффективной оценки и дифференциации подходов к работе с памятью в этой области необходимы дополнительные эталонные тесты, особенно те, которые отражают бизнес-приложения, такие как задачи работы с клиентами. Примечательно, что существующих эталонных тестов недостаточно для оценки способности Zep обрабатывать и синтезировать историю диалога со структурированными бизнес-данными. Хотя в Zep используется память LLM, ее традиционные возможности RAG следует оценивать по эталонным тестам, приведенным в [17] [27] [28].

В текущей литературе по LLM-памяти и системам RAG не уделяется должного внимания вопросам масштабируемости производственных систем с точки зрения стоимости и задержки. Мы включаем бенчмарки механизмов извлечения информации с учетом задержки, чтобы начать устранять этот пробел, следуя примеру авторов LightRAG в определении приоритетов этих показателей.

6. Приложение

6.1 Советы по построению графиков

6.1.1 Извлечение сущностей

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

6.1.2 Разрешение сущностей

<之前的消息>
{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 Извлечение фактов

<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 Фактологический анализ

根据以下上下文,判断 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 Извлечение времени

<先前消息>
{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)。

 

Ссылка:

https://arxiv.org/pdf/2501.13956

ZEP-Graphiti: архитектура темпорального графа знаний для памяти в интеллигенции

Zep: создание слоя долговременной памяти для приложений ИИ, извлечение и обновление пользовательской информации, бизнес-данных

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...