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

стенографическое чтение

Проблема интеллектуальной памяти тела и инновации Zep

Агенты искусственного интеллекта сталкиваются с проблемой нехватки памяти при решении сложных задач. Традиционные ИИ-агенты на основе больших языковых моделей (LLM) ограничены контекстными окнами, что затрудняет эффективную интеграцию долгосрочной истории разговора и динамических данных, ограничивая производительность и делая их склонными к галлюцинациям. Zep - это инновационная архитектура графов знаний, которая наделяет ИИ-агенты мощными возможностями памяти для работы с динамической информационной средой с помощью своего основного компонента Graphiti. Она решает проблемы существующих подходов RAG, которые с трудом справляются с временной информацией и межсессионными рассуждениями, обеспечивая более надежную поддержку памяти для приложений корпоративного класса.

 

Реализация: Graphiti - движок для работы с графами знаний с учетом времени

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

  1. Многоуровневое построение графов знаний:
    • Сюжетный подплан: Исходные данные (диалоговые сообщения) используются в качестве узлов графика, содержащих текст и временные метки.
    • Семантические подграфы сущностей: Сущности (названия людей, мест, продуктов и т. д.) извлекаются из узлов сюжета в виде семантических узлов сущностей.
    • Карта сообщества: Агрегируйте узлы сущностей по одной теме, чтобы сформировать узлы сообщества.
    • Такая иерархическая структура повышает масштабируемость и позволяет интеллектам эффективнее воспринимать информацию.
  2. Динамическое управление хронологической информацией:
    • Битемпоральное моделирование: Записывает время событий (временная шкала T) и время поступления данных (временная шкала T') и обрабатывает информацию об абсолютном/относительном времени.
    • Динамические обновления: Обновление графа знаний в реальном времени для решения временных конфликтов.
    • Возможности Graphiti, учитывающие временные ряды, обеспечивают точность и актуальность информации.
  3. Эффективные механизмы поиска:
    • Интеграция нескольких методов: Комбинируйте поиск по косинусному сходству, полнотекстовый поиск и поиск по широкому кругу, чтобы быстро и точно находить релевантные контексты.

 

Приложения для предприятий: полный процесс выборки

взять: Орган интеллектуальной поддержки корпоративных клиентов

пользовательский ввод::
Пользователь отправляет сообщение через интерфейс чата: "Здравствуйте, у меня проблема с принтером HP LaserJet Pro MFP M28w, который я приобрел в прошлом месяце: на распечатках появляются призраки. Я уже обращался в техподдержку, и мне сказали, что перезагрузка принтера устранит проблему, но я попробовал, и это все равно не помогло."

1. Прием узлов эпизодов::
Graphiti вводит последнюю новость пользователя в граф знаний в виде нового узла эпизода с текущей временной меткой (например, 20 февраля 2024 года, 10:30 AM). В то же время система извлекает исторические эпизоды диалога, связанные с "проблемой принтера".

2. извлечение сущностей и отношений::

  • Физическое извлечение::
    • Модель принтера: HP LaserJet Pro MFP M28w
    • Дата приобретения: 10 января 2024 года
    • Описание проблемы: Печать документов с призраками
    • Предыдущий контакт: 15 января 2024 года
    • Предыдущее решение: Перезагрузите принтер
  • извлечение отношений::
    • [用户] 购买 [打印机]
    • [打印机] 存在 [打印文件有重影] 问题
    • [重启打印机] 是 [尝试过的解决方案]

3. тестирование сообщества::
Система объединяет все сущности и отношения, связанные с принтером "HP LaserJet Pro MFP M28w", в одно сообщество для более эффективного поиска.

4. динамическое обновление информации::
Graphiti проверяет информацию, которую необходимо обновить. Поскольку пользователи сообщили, что перезапуск принтера не помог решить проблему, система обновит файл [重启打印机] 的 [解决方案状态] из-за [未解决].

5. поиск релевантного контекста::
Система использует несколько методов поиска:

  • Полнотекстовый поиск: Извлеките исторические диалоги, содержащие такие ключевые слова, как "принтер", "reimage", "HP LaserJet Pro MFP M28w".
  • Поиск по косинусному сходству: Найдите диалоги, описывающие похожие проблемы печати, такие как "Размытые распечатки", "Искаженные цвета печати" и т.д.
  • поиск по ширине: Из [HP LaserJet Pro MFP M28w] Сообщество постаралось найти все распространенные проблемы и рекомендуемые решения, связанные с этой моделью принтера.

6. Генерация ответов::
На основе полученной контекстной информации интеллектуальное тело генерирует следующий ответ:

"Здравствуйте! Благодарим вас за отзыв. Мы понимаем, что приобретенный вами принтер HP LaserJet Pro MFP M28w печатает документы с призраками и что вы уже пробовали перезагрузить принтер, но проблема не исчезла. Чтобы лучше решить вашу проблему, мы предлагаем вам попробовать выполнить следующие действия:

  1. Проверьте картриджи: Убедитесь, что картриджи установлены правильно и что уровень чернил достаточен.
  2. Очистите печатающую головку: Засоренная печатающая головка может вызывать появление призраков, попробуйте прочистить печатающую головку (процедура описана в руководстве к принтеру).
  3. Обновите драйвер: Перейдите на веб-сайт HP, чтобы загрузить и установить последнюю версию драйвера принтера.

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

  • Какую версию операционной системы вы используете?
  • Проблема с призраками возникает во всех документах или в определенных?

Спасибо за сотрудничество!"

7. обновление знаний::
Если пользователь решит проблему заменой картриджа, интеллектуальное устройство запишет [更换墨盒] поселиться [打印文件有重影] 问题 эффективные решения и обновлять временные метки соответствующих сущностей и отношений для последующего использования.

Экспериментальные результаты и перспективы

Zep В оценке LongMemEval по сравнению с базовым уровнем точность повысилась на 18,51 TP3T, а время ожидания ответа сократилось на 901 TP3T при использовании модели gpt-4o. Результаты эксперимента доказывают, что Zep обладает значительными преимуществами в плане точности памяти, возможности динамического обновления, эффективного извлечения и масштабируемости.

Будущие направления исследований включают:

  • Тонкая настройка модели: оптимизация точности и эффективности извлечения знаний.
  • Интеграция доменных онтологий: улучшенное понимание и рассуждения о конкретных доменах.
  • Новая разработка бенчмарка: усовершенствованные системы памяти.

Похожие товары:Graphiti: инструмент для построения динамических графов знаний и запросов (программа с учетом времени и большой памяти)


рефераты

Мы представляем Zep, новый сервис слоя памяти для интеллигенции, который превосходит текущую современную систему MemGPT в бенчмарках Deep Memory Retrieval (DMR). Кроме того, Zep показывает хорошие результаты в более комплексных и сложных оценках, чем DMR, которые лучше отражают реальные корпоративные сценарии использования. В то время как существующие системы на основе больших языковых моделей (LLM) ограничены статическим поиском документов, корпоративные приложения должны динамически интегрировать знания из различных источников, включая текущие разговоры и бизнес-данные. Zep решает это фундаментальное ограничение с помощью своего основного компонента Graphiti, движка графа знаний с учетом временных рядов, который динамически интегрирует неструктурированные данные разговоров и бизнес-данные. динамически интегрирует неструктурированные данные разговоров и структурированные бизнес-данные, сохраняя при этом исторические взаимосвязи. В бенчмарках DMR, созданных командой MemGPT, Zep продемонстрировал превосходную производительность (94,81 TP3T против 93,41 TP3T). Помимо 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], сервис уровня памяти, работающий на базе Graphiti [6], динамического движка графа знаний, учитывающего временные ряды. Zep получает и синтезирует неструктурированные данные сообщений и структурированные бизнес-данные. сохраняя факты и отношения на временной шкале, включая даты их истечения. Такой подход позволяет графу знаний представлять сложный, развивающийся мир.

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

 

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

В Zep память состоит из временного перцептивного динамического графа знаний G = (N,E,ϕ) поддержка, из которых N обозначает узел, E обозначает край, ϕ:E → N × N представляет собой формализованную ассоциативную функцию. Этот граф содержит три иерархических подграфа: подграф сюжета, подграф семантической сущности и подграф сообщества.

- Эпизодический подплан Ge :

Узловые точки (участки), ni ∈ Neсодержащие исходные данные в виде сообщений, текста или JSON. сюжет как хранилище не потерянных данных, из которого извлекаются семантические сущности и отношения. Край сюжета, ei ∈ Ee ⊆ ϕ∗ (Ne × Ns)который связывает эпизоды с семантическими сущностями, на которые они ссылаются.

- Подграфы семантических сущностей Gs :

Семантический подграф сущностей строится поверх подграфа сюжетов. Узлы сущности (сущности), ni ∈ Nsпредставляющие сущности, извлеченные из графика и разрешенные с существующими сущностями графа. Ребра сущностей (семантические ребра), ei ∈ Es ⊆ ϕ∗(Ns × Ns)представляющие отношения между сущностями, извлеченными из графика.

- Карта сообщества Gc :

Подграф сообществ образует верхний уровень графа знаний Zep. Узлы сообщества (сообщества), ni ∈ Ncпредставляющие собой кластеры сильно связанных сущностей. Сообщество содержит высокоуровневые обобщения этих кластеров и представляет собой Gs Более полное, взаимосвязанное представление о структуре Край сообщества, ei ∈ Ec ⊆ ϕ∗(Nc×Nˉs)которая связывает сообщество с его физическими членами.

Двойное хранение исходных данных об эпизодах и полученной семантической информации о сущностях отражает ментальные модели человеческой памяти. Эти модели различают память эпизодов, которая представляет различные события, и семантическую память, которая фиксирует ассоциации между понятиями и их значениями [8]. Такой подход позволяет LLM-интеллектам, использующим Zep, развивать более сложные и тонкие структуры памяти, которые лучше соответствуют нашему пониманию человеческой системы памяти. Графы знаний обеспечивают эффективную среду для представления этих структур памяти, и различные эпизодические и семантические подграфы, которые мы реализовали, опираются на аналогичный подход в AriGraph [9].

Использование узлов сообществ для представления высокоуровневой структуры и концепций домена опирается на работу GraphRAG [4], позволяя получить более полное глобальное понимание домена. Полученная иерархическая организация - от участков к фактам, сущностям и сообществам - расширяет существующие иерархические стратегии RAG [10][11].

2.1 Эпизоды

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

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

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

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

2.2.1 Сущности

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

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

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

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

2.2.2 Факты

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

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

2.2.3 Извлечение времени и разрушение краев

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

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

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

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

2.3 Сообщество

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

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

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

 

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

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

- Поиск (φ): В процессе поиска сначала определяются узлы и ребра-кандидаты, которые могут содержать релевантную информацию. Хотя Zep использует несколько различных методов поиска, общая функция поиска может быть выражена как φ:S→Esn-×Nsnˉ×.Ncn. Таким образом, φ Преобразуйте запрос в 3-кортеж, содержащий список семантических ребер, узлов сущностей и узлов сообществ - эти три типа графов содержат релевантную текстовую информацию.

- Реордерер (ρ): На втором этапе происходит упорядочивание результатов поиска. Функция или модель переупорядочивания принимает список результатов поиска и генерирует переупорядоченную версию этих результатов: ρ:φ(α),...→ Esn×Nsn×Ncn.

- Конструктор (χ): На последнем этапе построитель преобразует соответствующие узлы и ребра в текстовый контекст: χ:Esn×Nsn×Ncn→S. Для каждого ei ∈ Esχ Возвращение фактов и tvalidТинвалид. поле; для каждого ni ∈ Nsкоторый возвращает поля имени и резюме; и для каждого ni ∈ Ncвозвращает поле с итоговой информацией.

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

Пример шаблона контекстной строки:

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

3.1 Поиск

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

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

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

3.2 Реордерер

В то время как первоначальный подход к поиску нацелен на высокий уровень запоминания, реордерер повышает точность за счет приоритета наиболее релевантных результатов. Zep поддерживает существующие методы реордерера, такие как Reciprocal Ranking 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 dialogue" [22]. Во второй оценке используется эталон LongMemEval из работы "LongMemEval: Benchmarking Chat Assistants on Long-Term Interaction Memory" [7]. В частности, мы используем LongMemEval ⋅ Набор данных, в котором представлен широкий спектр диалоговых контекстов со средней длиной 115 000 лексем.

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

Хотя эти эксперименты демонстрируют ключевые поисковые возможности 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†
ZepРезюме диалогаgpt-4-turbo
полный диалогZepgpt-4o-mini

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

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

Оценка глубокого восстановления памяти была представлена в [3] и состоит из 500 мультисессионных диалогов, каждый из которых содержит 5 чат-сессий с 12 сообщениями в каждой сессии. Каждый диалог состоит из пары вопросов и ответов для оценки памяти. Фреймворк MemGPT [3] в настоящее время лидирует в метрике производительности с точностью 93,41 TP3T при использовании gpt-4-turbo, что является значительным улучшением по сравнению с базовым показателем 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 и Business Memory [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-4o60.2%28.9 s6.01 s115k
Zepgpt-4o71.2%2.58 s0.684 s1.6k

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

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

Тип проблемымоделированиеполный контекстZepинкрементный
предпочтение одной сессииgpt-4o-mini30.0%53.3%77.7%↑
Ассистент на один сеанс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-4o20.0%56.7%184%↑
Ассистент на один сеансgpt-4o94.6%80.4%17.7%↓
хронологический выводgpt-4o45.1%62.4%38.4%↑
мультисессияgpt-4o44.3%57.9%30.7%↑
Обновление знанийgpt-4o78.2%83.3%6.52%↑
односеансовый пользовательgpt-4o81.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 Извлечение сущностей

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

 

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

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

6.1.3 Извлечение фактов

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

6.1.4 Фактологический анализ

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

6.1.5 Извлечение времени

<先前消息>
{先前的消息}
</先前消息>
<当前消息>
{当前消息}
</当前消息>
<参考时间戳>
{参考时间戳}
</参考时间戳>
<事实>
{事实}
</事实>
重要提示:仅在提供的事实中包含时间信息时才提取时间信息,否则忽略提及的时间。  
如果仅提到了相对时间(例如“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)。  
© заявление об авторских правах

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

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

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