Aprendizagem pessoal com IA
e orientação prática
TRAE

ZEP: uma arquitetura de gráfico de conhecimento temporal para memória corporal inteligente

resumos

Apresentamos o Zep, um novo serviço de camada de memória para a intelligentsia que supera o atual sistema de ponta, o MemGPT, em benchmarks de Deep Memory Retrieval (DMR). Além disso, o Zep se destaca em avaliações mais abrangentes e desafiadoras do que o DMR, que refletem melhor os casos de uso empresarial do mundo real. Enquanto as estruturas existentes de Retrieval Augmented Generation (RAG) baseadas em Large Language Model (LLM) limitam-se à recuperação estática de documentos, os aplicativos corporativos precisam integrar dinamicamente o conhecimento de várias fontes, inclusive conversas em andamento e dados comerciais. Ele integra dinamicamente dados de conversas não estruturadas e dados comerciais estruturados, mantendo as relações históricas. A Zep demonstrou seu desempenho superior (94,81 TP3T vs. 93,41 TP3T) em um teste de benchmark DMR criado pela equipe do MemGPT. Além do DMR, os recursos do Zep foram validados ainda mais no benchmark mais desafiador LongMemEval, que reflete melhor os casos de uso corporativo por meio de tarefas complexas de raciocínio temporal. Nessa avaliação, o Zep melhorou a precisão em até 18,51 TP3T e reduziu a latência de resposta em 901 TP3T em comparação com a implementação de linha de base. Esses resultados são particularmente significativos em tarefas críticas para a empresa, como síntese de informações entre sessões e manutenção de contexto de longo prazo, demonstrando a eficácia do Zep em aplicativos do mundo real.

1. introdução

Nos últimos anos, o impacto dos LLMs (Large Language Models) baseados em transformadores sobre o setor e a pesquisa tem atraído muita atenção [1]. Uma das principais aplicações dos LLMs é o desenvolvimento de inteligências baseadas em bate-papo. No entanto, os recursos dessas inteligências são limitados pela janela de contexto do LLM, pela utilização eficaz do contexto e pelo conhecimento adquirido durante o pré-treinamento. Portanto, é necessário um contexto adicional para fornecer conhecimento fora do domínio (OOD) e reduzir as ilusões.

A Geração Aumentada de Recuperação (RAG) tornou-se uma importante área de interesse em aplicativos de LLM. A RAG utiliza técnicas de Recuperação de Informações (IR) desenvolvidas nos últimos cinquenta anos [2] para fornecer o conhecimento de domínio necessário para LLM.


As abordagens atuais para o uso de RAG concentram-se em um amplo conhecimento de domínio e em corpora relativamente estáticos, ou seja, o conteúdo dos documentos adicionados a um corpus raramente muda. Para que as inteligências se tornem difundidas em nosso dia a dia, capazes de resolver de forma autônoma problemas que vão do trivial ao altamente complexo, elas precisarão ter acesso a um grande corpus em constante evolução, gerado por interações entre o usuário e a inteligência, bem como a dados comerciais e mundiais relevantes. Acreditamos que dar às inteligências esse tipo de "memória" extensa e dinâmica é um componente essencial para concretizar essa visão, e não acreditamos que as abordagens RAG atuais sejam adequadas para esse futuro. Como históricos de diálogos inteiros, conjuntos de dados comerciais e outros conteúdos específicos do domínio não podem ser adaptados de forma eficaz à janela contextual do LLM, novas abordagens precisam ser desenvolvidas para lidar com a memória corporal inteligente. Adicionar memória às inteligências orientadas por LLM não é uma ideia nova - esse conceito foi explorado anteriormente no MemGPT [3].

Recentemente, os gráficos de conhecimento (knowledge graphs, KGs) foram usados para aumentar as arquiteturas RAG e resolver muitas das deficiências das técnicas tradicionais de IR [4]. Neste artigo, apresentamos o Zep [5], um serviço de camada na memória alimentado pelo Graphiti [6], um mecanismo de gráfico de conhecimento dinâmico e sensível ao tempo. O Zep ingere e sintetiza dados de mensagens não estruturadas e dados comerciais estruturados. O mecanismo Graphiti KG atualiza dinamicamente o gráfico de conhecimento com novas informações sem perda, mantendo uma linha do tempo de fatos e relacionamentos, incluindo suas datas de expiração. Essa abordagem permite que o Knowledge Graph represente um mundo complexo e em evolução.

Como o Zep é um sistema de produção, damos grande importância à precisão, à latência e à escalabilidade de seus mecanismos de recuperação de memória. Usamos dois benchmarks existentes para avaliar a eficácia desses mecanismos: a tarefa Deep Memory Retrieval (DMR) no MemGPT [3] e o benchmark LongMemEval [7].

2. mapeamento do conhecimento

No Zep, a memória é suportada por um gráfico de conhecimento dinâmico sensível ao tempo ℊ = (𝓃, ℯ, φ), em que 𝓃 representa um nó, ℯ representa uma borda e φ:ℯ→ 𝓃 × 𝓃 representa uma função de associação formalizada. Esse gráfico consiste em três subgráficos hierárquicos: o subgráfico de plotagem, o subgráfico de entidade semântica e o subgráfico de comunidade.

2.1 Episódios

A construção do gráfico do Zep começa com a ingestão de unidades de dados brutos chamadas episódios. Os episódios podem ser de um dos três tipos principais: mensagens, texto ou JSON. Embora cada tipo exija um processamento específico durante a construção do gráfico, neste artigo nos concentramos no tipo de mensagem porque nossos experimentos se concentram na memória de diálogo. Em nosso contexto, uma mensagem consiste em um texto relativamente curto (várias mensagens podem ser adaptadas à janela de contexto do LLM) e os participantes associados que produziram o discurso.

Cada mensagem contém um registro de data e hora de referência trefA hora do dia, que indica quando a mensagem foi enviada. Essas informações temporais permitem que o Zep identifique e extraia com precisão datas relativas ou parciais mencionadas no conteúdo da mensagem (por exemplo, "próxima quinta-feira", "daqui a quinze dias" ou "verão passado"). O Zep implementa um modelo diacrônico, em que a linha do tempo T representa a ordem cronológica dos eventos, e a linha do tempo T representa a ordem cronológica da ingestão de dados do Zep. Embora T As linhas do tempo servem ao propósito tradicional de auditoria de banco de dados, mas a linha do tempo T fornece uma dimensão adicional para modelar a natureza dinâmica dos dados de diálogo e da memória. Essa abordagem de tempo duplo representa um novo avanço na construção de gráficos de conhecimento LLM e é a base dos recursos exclusivos do Zep em comparação com as propostas anteriores de RAG baseadas em gráficos.

Lado do gráfico ℯe Conecte os gráficos aos seus nós de entidade extraídos. Os gráficos e suas bordas semânticas derivadas mantêm índices bidirecionais que rastreiam a relação entre uma borda e seu gráfico de origem. Esse design aprimora a natureza não perdulária dos subgráficos de plotagem do Graphiti, permitindo a passagem para frente e para trás: os artefatos semânticos podem ser rastreados até suas fontes para citação ou referência, enquanto as plotagens podem ser rapidamente recuperadas para suas entidades e fatos associados. Embora essas conexões não tenham sido examinadas diretamente nos experimentos desta tese, elas serão exploradas em trabalhos futuros.

2.2 Entidades e fatos semânticos

2.2.1 Entidades

A extração de entidades é a fase inicial do processamento de episódios. Durante a ingestão, o sistema processa o conteúdo da mensagem atual e a última n para fornecer contexto para o reconhecimento de entidades nomeadas. Para este artigo e para a implementação geral do Zep, on=4, duas rodadas de diálogo completas foram fornecidas para avaliação contextual. Como nosso foco é o processamento de mensagens, o locutor é extraído automaticamente como uma entidade. Após a extração inicial da entidade, empregamos uma técnica de reflexão inspirada na reflexão [12] para minimizar as ilusões e melhorar a cobertura da extração. O sistema também extrai resumos de entidades do episódio para facilitar as operações subsequentes de resolução e recuperação de entidades.

Após a extração, o sistema incorpora cada nome de entidade em um espaço vetorial de 1024 dimensões. Essa incorporação possibilita a recuperação de nós semelhantes entre os nós de entidades existentes no gráfico por meio da pesquisa de similaridade de cosseno. O sistema também realiza pesquisas separadas de texto completo em nomes de entidades e resumos existentes para identificar outros nós candidatos. Esses nós candidatos, juntamente com o contexto da trama, são processados pelo LLM usando nossas dicas de resolução de entidades. Quando o sistema identifica entidades duplicadas, ele gera um nome e um resumo atualizados.

Após a extração e a análise da entidade, o sistema mescla os dados no gráfico de conhecimento usando consultas Cypher predefinidas. Escolhemos essa abordagem em vez das consultas ao banco de dados geradas pelo LLM para garantir um formato arquitetônico consistente e reduzir a probabilidade de alucinações.

Dicas selecionadas para a construção do atlas são fornecidas no Apêndice.

2.2.2 Fatos

para cada fato que contenha seu predicado-chave. Da mesma forma, o mesmo fato pode ser extraído várias vezes em diferentes entidades, permitindo que o Graphiti modele fatos complexos de várias entidades por meio da implementação de hyperedges.

Após a extração, o sistema gera embeddings para fatos em preparação para a integração de gráficos. O sistema executa a desduplicação de bordas por meio de um processo semelhante à resolução de entidades. As bordas relacionadas à pesquisa híbrida são restritas às bordas que existem entre pares de entidades idênticas às novas bordas propostas. Essa restrição não só evita combinações incorretas de bordas semelhantes entre entidades diferentes, mas também reduz significativamente a complexidade computacional do processo de eliminação de duplicação, restringindo o espaço de pesquisa a um subconjunto de bordas associadas a um determinado par de entidades.

2.2.3 Extração de tempo e invalidação de borda

Um dos principais recursos de diferenciação da Graphiti em relação a outros mecanismos de gráficos de conhecimento é que ela gerencia atualizações dinâmicas de informações por meio de processos de extração temporal e invalidação de bordas.

uso do sistema tref Extração de informações temporais sobre fatos do contexto da trama. Isso permite a extração precisa e a representação de data e hora, incluindo registros de data e hora absolutos (por exemplo, "Alan Turing nasceu em 23 de junho de 1912") e registros de data e hora relativos (por exemplo, "Comecei meu novo emprego há duas semanas"). De acordo com nossa abordagem de modelagem de tempo duplo, o sistema rastreia quatro registros de data e hora:t Criar e t Expiração ∈T Monitorar quando os fatos são criados ou invalidados no sistema, e o tválido responder cantando tinválidoT Rastreia o período de tempo em que o fato foi estabelecido. Esses pontos de dados de tempo são armazenados no lado junto com outras informações factuais.

A introdução de novas bordas pode invalidar as bordas existentes no banco de dados. O sistema usa o LLM para comparar novas bordas com bordas existentes semanticamente relacionadas para identificar possíveis contradições. Quando o sistema identifica uma contradição temporal, ele o faz comparando as bordas tinválido Definido como o lado inválido do tválido para invalidar as bordas afetadas. De acordo com a linha do tempo da transação TO Graphiti sempre prioriza novas informações ao determinar a invalidação da borda.

Essa abordagem integrada permite que os dados sejam adicionados dinamicamente ao Graphiti à medida que as conversas evoluem, mantendo o estado atual do relacionamento e um histórico da evolução do relacionamento ao longo do tempo.

2.3 Comunidade

Depois de construir o gráfico e os subgrafos semânticos, o sistema constrói subgrafos de comunidades por meio da detecção de comunidades. Embora nossa abordagem de detecção de comunidade se baseie nas técnicas descritas no GraphRAG [4], empregamos o algoritmo Label Propagation [13] em vez do algoritmo Leiden [14]. Essa escolha é influenciada por uma extensão dinâmica simples da propagação de rótulos que permite que o sistema mantenha representações precisas da comunidade por períodos mais longos à medida que novos dados entram no gráfico, adiando a necessidade de uma atualização completa da comunidade.

A expansão dinâmica implementa a lógica de uma única etapa recursiva na propagação de rótulos. Quando o sistema adiciona um novo nó de entidade ao gráfico ni ∈Ns Quando isso acontece, ele pesquisa as comunidades dos nós vizinhos. O sistema atribui o novo nó à comunidade mantida pela maioria de seus vizinhos e, em seguida, atualiza o resumo da comunidade e o gráfico de acordo. Embora essa atualização dinâmica permita que as comunidades sejam dimensionadas com eficiência à medida que os dados fluem para o sistema, as comunidades resultantes se desviam gradualmente daquelas geradas por meio de execuções completas de propagação de rótulos. Portanto, as atualizações periódicas da comunidade continuam sendo necessárias. No entanto, essa estratégia de atualização dinâmica fornece uma heurística prática que reduz significativamente a latência e os custos de inferência LLM.

Seguindo [4], nossos nós da comunidade contêm resumos derivados de resumos iterativos no estilo map-reduce dos nós membros. Entretanto, nossa abordagem de recuperação é bem diferente da abordagem de redução de mapas do GraphRAG [4]. Para apoiar nossa abordagem de recuperação, geramos nomes de comunidades contendo termos-chave e tópicos relacionados a partir dos resumos das comunidades. Esses nomes são incorporados e armazenados para permitir a pesquisa de similaridade de cosseno.

3. recuperação de memória

O sistema de recuperação de memória do Zep oferece uma funcionalidade avançada, sofisticada e altamente configurável. Em geral, a API de pesquisa de gráficos do Zep implementa uma função f:SSque aceita uma consulta de string de texto α ∈S como entrada e retorna um contexto de string de texto β ∈S como saída. A saída β contém dados formatados de nós e bordas que as inteligências do LLM precisam para gerar respostas precisas à consulta α. O processo f(α)→β consiste em três etapas diferentes:

- Pesquisa (φ): esse processo identifica primeiro os nós e as bordas pós-selecionados que podem conter informações relevantes. Embora o Zep utilize vários métodos de pesquisa diferentes, a função de pesquisa geral pode ser expressa como φ.Ssn-×𝒩sn. ×𝒩cn. Assim, φ transforma a consulta em uma tripla que contém uma lista de bordas semânticas, nós de entidades e nós de comunidades - os três tipos de gráficos que contêm informações textuais relevantes.

- Reordenador (ρ): a segunda etapa é reordenar os resultados da pesquisa. A função ou modelo reordenador recebe uma lista de resultados de pesquisa e gera uma versão reordenada desses resultados: ρ:φ(α),...→sn×𝒩sn×𝒩cn.

- Construtor (χ): na última etapa, o construtor converte os nós e as bordas relevantes em um contexto textual: χ: osn×𝒩sn×𝒩cnS. Para cada eis, χ retorna o fato e tválidotinválido para cada campo ni𝒩sretorna os campos name e summary; para cada ni𝒩cretorna o campo de resumo.

Com essas definições em vigor, podemos definir o f é representado como uma combinação desses três componentes:f(α) = χ(ρ(φ(α))) = β.

Modelo de string de contexto de amostra:

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

3.1 Pesquisa

O Zep implementa três funções de pesquisa: pesquisa de similaridade semântica de cosseno (φcos), pesquisa de texto completo Okapi BM25 (φbm25}) e a pesquisa de amplitude em primeiro lugar (φbfs). As duas primeiras funções utilizam a implementação do Lucene do Neo4j [15] [16]. Cada função de pesquisa fornece recursos diferentes em termos de identificação de documentos relevantes e, juntas, elas fornecem uma cobertura abrangente dos resultados candidatos antes da reordenação. Os campos de pesquisa diferem entre os tipos de objetos: para 𝒜sbuscamos campos de fatos; para 𝒩sbusca por nomes de entidades; para 𝒩cO LightRAG [16] busca nomes de comunidades que incluem palavras-chave e frases relevantes abordadas na comunidade. Embora nosso método de pesquisa de comunidade tenha sido desenvolvido de forma independente, ele é paralelo ao método de pesquisa de chaves de alto nível do LightRAG [17]. A combinação da abordagem do LightRAG com sistemas baseados em gráficos, como o Graphiti, oferece uma direção promissora para pesquisas futuras.

Embora a similaridade de cosseno e os métodos de pesquisa de texto completo estejam bem estabelecidos no RAG [18], a pesquisa de amplitude em primeiro lugar em gráficos de conhecimento recebeu pouca atenção no domínio do RAG, com exceções notáveis em sistemas RAG baseados em gráficos, como o AriGraph [9] e o Distill-SynthKG [19]. No Graphiti, a busca de amplitude em primeiro lugar é realizada identificando o n nós e bordas adicionais dentro de um salto para melhorar os resultados da pesquisa inicial. Além disso, φbfs A capacidade de aceitar nós como parâmetros de pesquisa permite um controle mais preciso sobre a função de pesquisa. Esse recurso é particularmente valioso quando se usa episódios recentes como semente para uma pesquisa ampla, permitindo que o sistema mescle entidades e relacionamentos mencionados recentemente no contexto da pesquisa.

Cada um desses três métodos de pesquisa visa a um aspecto diferente da similaridade: a pesquisa de texto completo identifica a similaridade de palavras, a similaridade de cosseno capta a similaridade semântica e a pesquisa de amplitude em primeiro lugar revela a similaridade contextual - nós e bordas mais próximos no gráfico aparecem em contextos de diálogo mais semelhantes. Essa abordagem multifacetada da identificação de resultados candidatos maximiza a probabilidade de descobrir o melhor contexto.

3.2 Reordenador

Embora a abordagem de pesquisa inicial tenha como objetivo uma alta recuperação, o reordenador melhora a precisão priorizando os resultados mais relevantes. O Zep é compatível com os métodos de reordenação existentes, como o Reciprocal Rank Fusion (RRF) [20] e o Maximum Marginal Relevance (MMR) [21]. Além disso, o Zep implementa um reordenador de menções de episódios baseado em gráficos que prioriza os resultados com base na frequência de menções de entidades ou fatos, tornando mais acessíveis as informações citadas com frequência. O sistema também inclui um reordenador de distância de nó, que reordena os resultados com base na distância de um nó central especificado, fornecendo conteúdo localizado em uma região específica do gráfico de conhecimento. O recurso de reordenação mais sofisticado do sistema emprega codificadores cruzados - LLMs que geram pontuações de relevância usando a atenção cruzada para avaliar a relevância de nós e bordas para uma consulta, embora essa abordagem incorra no maior custo computacional.

4. experimentos

Esta seção analisa dois experimentos realizados com testes de benchmark baseados na memória LLM. A primeira avaliação usa a tarefa Deep Memory Retrieval (DMR) desenvolvida em [3], que usa um subconjunto de 500 conversas do conjunto de dados de bate-papo de várias sessões apresentado em "Beyond Goldfish Memory: long-term open-domain conversations" [22]. A segunda avaliação usa o teste de referência LongMemEval de [7]. Especificamente, usamos o teste LongMemEval ċċċċċċċċċċiża ta 'l-ħbieb tagħha que fornece contextos de diálogo extensos com um comprimento médio de 115.000 tokens.

Para ambos os experimentos, integramos o histórico do diálogo ao gráfico de conhecimento do Zep por meio da API do Zep. Em seguida, recuperamos as 20 bordas mais relevantes (fatos) e os nós de entidades (resumos de entidades) usando as técnicas descritas na Seção 3. O sistema reformata esses dados em sequências de contexto que correspondem à funcionalidade fornecida pela API de memória do Zep.

Embora esses experimentos demonstrem os principais recursos de pesquisa do Graphiti, eles representam um subconjunto da funcionalidade completa de pesquisa do sistema. Esse escopo focado permite comparações claras com os testes de benchmark existentes, ao mesmo tempo em que preserva espaço para trabalhos futuros que explorem recursos adicionais de gráficos de conhecimento.

4.1 Seleção de modelos

Nossa implementação experimental usa o modelo BGE-m3 da BAAI para as tarefas de reordenação e incorporação [23] [24]. Para a construção de gráficos e a geração de respostas, usamos gpt-4o-mini-2024-07-18 para a construção de gráficos e gpt-4o-mini-2024-07-18 e gpt-4o-2024-11-20 para inteligências de bate-papo para gerar respostas ao contexto fornecido.

Para garantir a comparabilidade direta com os resultados de DMR do MemGPT, também realizamos uma avaliação de DMR usando o gpt-4-turbo-2024-04-09.

Os cadernos experimentais serão disponibilizados publicamente em nosso repositório do GitHub, e as dicas experimentais associadas estão incluídas no apêndice.

Tabela 1: Recuperação de memória profunda

memorização modelagem pontuação
Resumo recursivo Resumo do diálogo MemGPT? Diálogo completo gpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo gpt-4-turbo 35.3% 78.6% 93.4% 94.4%
Zep Resumo do diálogo gpt-4-turbo gpt-4o-mini 94.8%
Diálogo completo Zep gpt-4o-mini gpt-4o-mini 88.0% 98.0% 98.2%

† Os resultados são relatados em [3].

4.2 Recuperação de memória profunda (DMR)

A avaliação da recuperação de memória profunda foi introduzida por [3] e consiste em 500 diálogos de várias sessões, cada um contendo 5 sessões de bate-papo com até 12 mensagens por sessão. A estrutura MemGPT [3] atualmente lidera as métricas de desempenho com uma precisão de 93,41 TP3T, o que representa uma melhoria significativa em relação à linha de base de 35,31 TP3T obtida pela sumarização recursiva.

Para estabelecer uma linha de base de comparação, implementamos dois métodos comuns de memória LLM: contexto de diálogo completo e resumo da sessão. Usando o gpt-4-turbo, a linha de base do diálogo completo atinge uma precisão de 94,41 TP3T, que é um pouco maior do que os resultados relatados pelo MemGPT, enquanto a linha de base do resumo da sessão atinge 78,61 TP3T. Quando o gpt-4o-mini é usado, ambos os métodos apresentam melhor desempenho: 98,01 TP3T para o diálogo completo e 88,01 TP3T para o resumo da sessão. . devido à falta de detalhes metodológicos suficientes em seu trabalho publicado, não conseguimos reproduzir os resultados do MemGPT usando o gpt-4o-mini.

Em seguida, avaliamos o desempenho do Zep ao ingerir o diálogo e usar sua função de pesquisa para recuperar os 10 nós e as bordas mais relevantes. O juiz do LLM compara a resposta da intelligentsia com a resposta correta fornecida. O Zep atinge uma precisão de 94,81 TP3T com gpt-4-turbo e 98,21 TP3T com gpt-4o-mini. mostrando melhorias marginais em relação ao MemGPT e à linha de base do diálogo completo correspondente. No entanto, esses resultados devem ser colocados em contexto: cada diálogo contém apenas 60 mensagens, facilmente adaptadas à janela de contexto atual do LLM.

As limitações da avaliação do DMR vão além de seu pequeno tamanho. Nossas análises revelam pontos fracos significativos na concepção do teste de referência. A avaliação baseou-se exclusivamente em perguntas de recuperação de fatos em uma única rodada e não conseguiu avaliar a compreensão complexa da memória. Muitas das perguntas continham palavras vagas, referindo-se a conceitos como "bebida relaxante favorita" ou "hobby estranho" que não estavam explicitamente descritos no diálogo. Crucialmente, o conjunto de dados não apresenta um bom desempenho para casos de uso de inteligências LLM em empresas do mundo real. O excelente desempenho obtido com a abordagem simples de contexto completo do LLM moderno destaca ainda mais a inadequação do benchmarking na avaliação de sistemas de memória.

Essa deficiência é ainda mais destacada pelas descobertas em [7], que mostram que o desempenho do LLM no teste de benchmarking LongMemEval diminui rapidamente à medida que o comprimento do diálogo aumenta. O conjunto de dados LongMemEval [7] aborda essas deficiências fornecendo diálogos mais longos e coerentes que refletem melhor os cenários empresariais, bem como um conjunto mais diversificado de perguntas de avaliação.

4.3 LongMemEval (LME)

Avaliamos o Zep usando o conjunto de dados LongMemEvals, que fornece diálogos e perguntas representativas das inteligências LLM de aplicativos de negócios do mundo real. O conjunto de dados LongMemEvals representa um desafio significativo para as soluções LLM e de memória de negócios existentes [7], com diálogos com uma média de cerca de 115.000 tokens. Esse tamanho, embora bastante grande, ainda está dentro da janela contextual dos modelos de fronteira atuais, o que nos permite estabelecer uma linha de base significativa para avaliar o desempenho do Zep.

O conjunto de dados contém seis tipos de problemas diferentes: usuários de sessão única, assistentes de sessão única, preferências de sessão única, várias sessões, atualização de conhecimento e raciocínio temporal. Essas categorias não estão distribuídas uniformemente no conjunto de dados; para obter mais informações, consulte [7].

Realizamos todos os experimentos entre dezembro de 2024 e janeiro de 2025 Testamos usando laptops de consumidores em um local residencial em Boston, MA, conectados ao serviço Zep hospedado no AWS us-west-2. Essa arquitetura distribuída introduz latência de rede adicional na avaliação do desempenho do Zep, embora essa latência não esteja presente em nossa avaliação de linha de base.

Para a avaliação das respostas, usamos o GPT-4o e fornecemos os prompts específicos da pergunta fornecidos em [7], que se mostraram altamente relevantes para os avaliadores humanos.

4.3.1 LongMemEval e MemGPT

Para estabelecer um benchmark comparativo entre o Zep e o atual sistema MemGPT de última geração [3], tentamos avaliar o MemGPT usando o conjunto de dados LongMemEval. Como a estrutura atual do MemGPT não suporta a ingestão direta de históricos de mensagens existentes, implementamos uma solução alternativa adicionando mensagens de diálogo ao histórico do arquivo. No entanto, não conseguimos obter P&R bem-sucedidas usando essa abordagem. Esperamos que outras equipes de pesquisa avaliem esse teste de benchmark, pois a comparação de dados de desempenho seria benéfica para o desenvolvimento mais amplo dos sistemas de memória LLM.

4.3.2 Resultados do LongMemEval

O Zep demonstrou melhorias significativas na precisão e na latência em comparação com a linha de base. Com o uso do gpt-4o-mini, o Zep obteve uma melhoria na precisão de 15,21 TP3T em relação à linha de base, enquanto o gpt-4o obteve uma melhoria de 18,51 TP3T. O tamanho reduzido da sugestão também leva a uma redução significativa no custo da latência em comparação com a implementação de linha de base.

Tabela 2: LongMemEvals

memorização modelagem pontuação procrastinar Atraso IQR Marcador de contexto médio
contexto completo gpt-4o-mini 55.4% 31.3 s 8.76 s 115k
Zep gpt-4o-mini 63.8% 3.20 s 1.31 s 1.6k
contexto completo gpt-40 60.2% 28.9 s 6.01 s 115k
Zep gpt-40 71.2% 2.58 s 0.684 s 1.6k

A análise por tipo de pergunta mostrou que o gpt-4o-mini usando o Zep demonstrou melhorias em quatro das seis categorias, com as melhorias mais significativas nos tipos de perguntas complexas: preferência de sessão única, várias sessões e raciocínio temporal. Ao usar o gpt-4o, o Zep demonstrou melhorias adicionais na categoria de atualização de conhecimento, destacando que ele é mais eficaz quando usado com modelos mais capazes. Entretanto, pode ser necessário um desenvolvimento adicional para melhorar a compreensão dos dados temporais do Zep por modelos menos capazes.

Tabela 3: Decomposição dos tipos de problemas LongMemEvals

Tipo de problema modelagem contexto completo Zep incremental
preferência por sessão única gpt-4o-mini 30.0% 53.3% 77,71 TP3T
Assistente de sessão única gpt-4o-mini 81.8% 75.0% ↑'6
inferência cronológica gpt-4o-mini 36.5% 54.1% 48.2%↑
multissessão gpt-4o-mini 40.6% 47.4% 16.7%↑
Atualização de conhecimento gpt-4o-mini 76.9% 74.4% 3.36%↓
usuário de sessão única gpt-4o-mini 81.4% 92.9% 14.1%↑
preferência por sessão única gpt-40 20.0% 56.7% 184%↑
Assistente de sessão única gpt-40 94.6% 80.4% 17.7%↓
inferência cronológica gpt-40 45.1% 62.4% 38,41 TP3T
multissessão gpt-40 44.3% 57.9% 30,7%↑
Atualização de conhecimento gpt-40 78.2% 83.3% 6.52%↑
usuário de sessão única gpt-40 81.4% 92.9% 14.1%↑

Esses resultados demonstram a capacidade do Zep de melhorar o desempenho em todas as escalas de modelos, com as melhorias mais significativas observadas em tipos de problemas complexos e delicados quando usado com modelos mais capazes. As melhorias na latência são particularmente significativas, com o Zep reduzindo os tempos de resposta em aproximadamente 901 TP3T e mantendo uma maior precisão.

O declínio no desempenho do problema do auxiliar de sessão única - 17,71 TP3T para o gpt-4o e 9,061 TP3T para o gpt-4o-mini - representa uma exceção notável às melhorias consistentes do Zep e sugere a necessidade de mais pesquisas e trabalhos de engenharia.

5 Conclusão

Apresentamos o Zep, uma abordagem baseada em gráficos para a memória LLM que combina memória semântica e episódica com resumos de entidades e comunidades. Nossa avaliação mostra que o Zep atinge o desempenho de última geração nos benchmarks de memória existentes, reduzindo os custos de rotulagem e operando com latências significativamente menores.

Embora os resultados obtidos pelo Graphiti e pelo Zep sejam impressionantes, é provável que sejam apenas avanços preliminares nos sistemas de memória baseados em gráficos. Diversos caminhos de pesquisa poderiam se basear nessas duas estruturas, inclusive a integração de outras abordagens GraphRAG no paradigma Zep, bem como novas extensões do nosso trabalho.

A pesquisa demonstrou o valor dos modelos de ajuste fino para extração de entidades e bordas LLM no paradigma GraphRAG para melhorar a precisão e, ao mesmo tempo, reduzir o custo e a latência [19] [25]. Da mesma forma, os modelos ajustados para as dicas do Graphiti podem aprimorar a extração de conhecimento, especialmente em diálogos complexos. Além disso, embora a pesquisa atual sobre gráficos de conhecimento gerados por LLM opere principalmente na ausência de ontologias formais [9] [4] [17] [19] [26], as ontologias específicas de domínio têm um potencial significativo. As ontologias de gráficos, que são fundamentais no trabalho com gráficos de conhecimento pré-LLM, merecem ser mais exploradas na estrutura do Graphiti.

Nossa busca por testes de benchmark de memória adequados revela opções limitadas, já que os testes de benchmark existentes geralmente não são robustos nem sofisticados e, muitas vezes, são padronizados com problemas simples de recuperação de fatos em busca de alfinetes [3]. O campo precisa de mais testes de benchmark de memória, especialmente aqueles que refletem aplicativos de negócios, como tarefas de experiência do cliente, para avaliar e diferenciar com eficácia as abordagens de memória. Em particular, os testes de referência existentes são insuficientes para avaliar a capacidade do Zep de processar e sintetizar o histórico de diálogos com dados comerciais estruturados. Embora o Zep se concentre na memória LLM, seus recursos tradicionais de RAG devem ser avaliados em relação aos testes de benchmark estabelecidos em [17] [27] [28].

A literatura atual sobre memórias LLM e sistemas RAG não aborda adequadamente as questões de escalabilidade do sistema de produção em termos de custo e latência. Incluímos a avaliação comparativa da latência dos mecanismos de recuperação para começar a abordar essa lacuna, seguindo o exemplo dos autores do LightRAG na priorização dessas métricas.

6. Apêndice

6.1 Dicas para a construção de gráficos

6.1.1 Extração de entidades

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

6.1.2 Resolução de entidades

<之前的消息>
{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 Extração de fatos

<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 Análise dos fatos

根据以下上下文,判断 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 Extração de tempo

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

 

Referência:

https://arxiv.org/pdf/2501.13956

ZEP-Graphiti: uma arquitetura de gráfico de conhecimento temporal para memória em inteligência

Zep: criação de uma camada de memória de longo prazo para aplicativos de IA, extração e atualização de informações do usuário, dados comerciais

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " ZEP: uma arquitetura de gráfico de conhecimento temporal para memória corporal inteligente
pt_BRPortuguês do Brasil