Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

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

leitura estenográfica

O desafio da memória corporal inteligente e a inovação da Zep

Os agentes de IA enfrentam gargalos de memória em tarefas complexas. Os agentes de IA tradicionais baseados no modelo de linguagem grande (LLM) são limitados pelas janelas de contexto, o que dificulta a integração eficaz do histórico de conversas de longo prazo e dos dados dinâmicos, limitando o desempenho e tornando-os propensos a alucinações. O Zep é uma arquitetura inovadora de gráfico de conhecimento que capacita os agentes de IA com recursos avançados de memória para lidar com ambientes de informações dinâmicas por meio de seu componente principal, o Graphiti. Ela soluciona os desafios das abordagens RAG existentes, que têm dificuldade para lidar com informações temporais e raciocínio entre sessões, oferecendo suporte de memória mais confiável para aplicativos de classe empresarial.

 

Implementação: Graphiti - um mecanismo de gráfico de conhecimento com reconhecimento de tempo

Graphiti A memória corporal inteligente é obtida por meio da construção de gráficos de conhecimento em vários níveis, do gerenciamento dinâmico de informações temporais e do mecanismo de recuperação eficiente.

  1. Construção de gráficos de conhecimento em vários níveis:
    • Subplot da trama: Os dados brutos (mensagens de diálogo) são usados como nós de plotagem, contendo texto e registros de data e hora.
    • Subgráficos de entidades semânticas: As entidades (nomes de pessoas, lugares, produtos etc.) são extraídas dos nós de plotagem como nós de entidade semântica.
    • Submapa da comunidade: Agrega nós de entidade sobre o mesmo tópico para formar nós de comunidade.
    • Essa estrutura hierárquica aumenta a escalabilidade e permite que as inteligências compreendam as informações com mais eficiência.
  2. Gerenciamento dinâmico de informações cronológicas:
    • Modelagem bi-temporal: Registra os tempos de eventos (Linha do tempo T) e os tempos de ingestão de dados (Linha do tempo T') e processa informações de tempo absoluto/relativo.
    • Atualizações dinâmicas: Atualização em tempo real do gráfico de conhecimento para lidar com conflitos de tempo.
    • Os recursos de série temporal do Graphiti garantem que as informações sejam precisas e atualizadas.
  3. Mecanismos de recuperação eficientes:
    • Integração de vários métodos: Combine a pesquisa de similaridade de cosseno, a pesquisa de texto completo e a pesquisa de amplitude em primeiro lugar para encontrar contextos relevantes com rapidez e precisão.

 

Aplicativos corporativos: processo de amostragem completo

tomarCorpo de inteligência de suporte ao cliente empresarial


entrada do usuário::
O usuário envia uma mensagem por meio da interface de bate-papo: "Olá, estou tendo um problema com a impressora HP LaserJet Pro MFP M28w que comprei no mês passado, as impressões estão com fantasmas. Entrei em contato com o suporte técnico antes e eles me disseram que reiniciar a impressora resolveria o problema, mas já tentei fazer isso e ainda não funcionou."

1. ingestão de nó episódico::
O Graphiti insere as últimas notícias do usuário no gráfico de conhecimento como um novo nó de episódio com um carimbo de data e hora atual (por exemplo, 20 de fevereiro de 2024, 10:30 AM). Ao mesmo tempo, o sistema recupera episódios históricos de diálogo relacionados ao "problema da impressora".

2. extração de entidades e relacionamentos::

  • Extração física::
    • Modelo da impressora: HP LaserJet Pro MFP M28w
    • Data da compra: 10 de janeiro de 2024
    • Descrição do problema: Impressão de documentos com fantasmas
    • Contatado anteriormente: 15 de janeiro de 2024
    • Solução anterior: Reinicie a impressora
  • extração de relacionamentos::
    • [Usuário] Compra [Impressora]
    • Problemas com a [Impressora] [Os documentos impressos têm imagens duplas].
    • [Reiniciar a impressora] Sim [Solução tentada]

3. teste comunitário::
O sistema agrega todas as entidades e relacionamentos relacionados à impressora "HP LaserJet Pro MFP M28w" em uma comunidade para uma recuperação mais eficiente.

4. atualização dinâmica de informações::
O Graphiti verifica se há informações que precisam ser atualizadas. Como os usuários relataram que reiniciar a impressora não resolveu o problema, o sistema atualizará as informações de [Solution Status] para [Reboot Printer]. por causa de [Não resolvido].

5. recuperação do contexto relevante::
O sistema usa vários métodos de pesquisa para encontrar:

  • Pesquisa de texto completoRecuperar diálogos históricos que contenham palavras-chave como "impressora", "reimagem", "HP LaserJet Pro MFP M28w".
  • Pesquisa de similaridade de cossenoLocalize diálogos que descrevam problemas de impressão semelhantes, como "Impressões embaçadas", "Cores de impressão distorcidas" etc.
  • pesquisa de amplitude em primeiro lugar: De [HP LaserJet Pro MFP M28w] A comunidade se propôs a encontrar todos os problemas comuns e soluções recomendadas relacionadas a esse modelo de impressora.

6. geração de respostas::
O corpo inteligente gera a seguinte resposta com base nas informações contextuais recuperadas:

"Olá! Obrigado por seus comentários. Entendemos que a impressora HP LaserJet Pro MFP M28w que você comprou está imprimindo documentos com fantasmas e que você já tentou reiniciar a impressora antes, mas o problema ainda persiste. Para resolver melhor seu problema, sugerimos que tente as seguintes etapas:

  1. Verifique os cartuchos: Verifique se os cartuchos estão instalados corretamente e se o nível de tinta é suficiente.
  2. Limpe o cabeçote de impressão: Um cabeçote de impressão entupido pode causar fantasmas; tente limpar o cabeçote de impressão (consulte o manual da impressora para obter o procedimento).
  3. Atualize o driver: Acesse o site da HP para fazer o download e instalar o driver de impressora mais recente.

Se o problema persistir depois de tentar as etapas acima, forneça as seguintes informações para que possamos solucionar o problema:

  • Qual versão do sistema operacional você está usando?
  • O problema de ghosting ocorre em todos os documentos ou em documentos específicos?

Obrigado por sua cooperação!"

7. atualização de conhecimento::
Se o usuário resolver o problema substituindo o cartucho, o corpo inteligente registrará o [Substituição de cartuchos de tinta]. liquidação [Impressão de documentos com fantasmas] Problemas soluções eficazes e para atualizar os registros de data e hora de entidades e relacionamentos relevantes para referência posterior.

Resultados experimentais e perspectivas futuras

Zep Na avaliação LongMemEval, em comparação com a linha de base, a precisão é aprimorada em 18,51 TP3T e a latência de resposta é reduzida em 901 TP3T ao usar o modelo gpt-4o. Os resultados experimentais comprovam que o Zep tem vantagens significativas em termos de precisão de memória, capacidade de atualização dinâmica, recuperação eficiente e escalabilidade.

As direções de pesquisas futuras incluem:

  • Ajuste fino do modelo: otimizando a precisão e a eficiência da extração de conhecimento.
  • Integração de ontologia de domínio: compreensão e raciocínio aprimorados sobre domínios específicos.
  • Novo desenvolvimento de benchmarking: sistemas de memória avançados.

Itens relacionados:Graphiti: ferramenta dinâmica de construção e consulta de gráficos de conhecimento (programa de memória longa com reconhecimento de tempo)


resumos

Apresentamos o Zep, um novo serviço de camada de memória para a intelligentsia que supera o atual sistema de última geração MemGPT em benchmarks de Deep Memory Retrieval (DMR). Além disso, o Zep tem um bom desempenho em avaliações mais abrangentes e desafiadoras do que o DMR, que refletem melhor os casos de uso corporativo do mundo real. Embora as estruturas existentes de Geração Aumentada de Recuperação (RAG) baseadas em Modelo de Linguagem Grande (LLM) estejam limitadas à recuperação estática de documentos, os aplicativos corporativos precisam integrar dinamicamente o conhecimento de diversas fontes, incluindo conversas em andamento e dados comerciais. O Zep resolve essa limitação fundamental com seu componente principal, o Graphiti, um mecanismo de gráfico de conhecimento com reconhecimento de séries temporais que integra dinamicamente dados de conversas não estruturadas e dados comerciais estruturados, mantendo os relacionamentos históricos. Nos benchmarks de DMR estabelecidos pela equipe do MemGPT, a Zep demonstrou seu desempenho superior (94,81 TP3T vs. 93,41 TP3T). Além do DMR, os recursos do Zep foram validados ainda mais no benchmark mais complexo 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 no setor e na comunidade de pesquisa tem atraído muita atenção [1]. 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, são necessários contextos adicionais para fornecer conhecimento fora do domínio (OOD) e reduzir as ilusões.

A Geração Aumentada de Recuperação (RAG) tornou-se uma área de interesse fundamental em aplicativos de LLM. A RAG utiliza técnicas de Recuperação de Informações (IR) pioneiras 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 ao corpus raramente muda. Para que as inteligências se tornem difundidas em nosso dia a dia, resolvendo de forma autônoma problemas que vão do trivial ao altamente complexo, elas precisarão ter acesso a um grande corpus de dados em constante evolução, derivado das interações dos usuários com as inteligências, 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 com eficácia à janela contextual do LLM, é necessário desenvolver novas abordagens para a memória corporal inteligente. Acrescentar memória às inteligências orientadas pelo LLM não é uma ideia nova - o 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 de memória alimentado pelo Graphiti [6], um mecanismo de gráfico de conhecimento dinâmico e sensível a séries temporais. 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 de forma não perdulária, preservando fatos e relacionamentos em uma linha do tempo, inclusive suas datas de expiração. Essa abordagem permite que o gráfico de conhecimento 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) do MemGPT [3] e o benchmark LongMemEval [7].

 

2. mapeamento do conhecimento

No Zep, a memória consiste em um gráfico de conhecimento dinâmico perceptual temporal G = (N,E,ϕ) suporte, dos quais N denota o nó, E denota a borda, ϕ:E → N × N representa uma função de associação formalizada. Esse gráfico contém três subgráficos hierárquicos: o subgráfico de plotagem, o subgráfico de entidade semântica e o subgráfico de comunidade.

- Episódio subplot Ge :

Nós de plotagem (plotagens), ni ∈ Neque contêm dados de entrada brutos na forma de mensagens, texto ou JSON. O gráfico é um armazenamento de dados não perdidos do qual são extraídas entidades e relações semânticas. A borda do gráfico, ei ∈ Ee ⊆ ϕ∗ (Ne × Ns)que conecta episódios às entidades semânticas às quais eles fazem referência.

- Subgrafos de entidades semânticas Gs :

O subgráfico de entidade semântica é construído sobre o subgráfico de plotagem. Nós de entidade (entidades), ni ∈ Nsrepresentando as entidades extraídas do gráfico e resolvidas com as entidades existentes no gráfico. As bordas de entidade (bordas semânticas), ei ∈ Es ⊆ ϕ∗(Ns × Ns)representando as relações entre as entidades extraídas do gráfico.

- Submapa da comunidade Gc :

O subgráfico da comunidade forma o nível superior do gráfico de conhecimento do Zep. Os nós da comunidade (comunidades), ni ∈ Ncrepresentando grupos de entidades fortemente conectadas. A comunidade contém resumos de alto nível desses grupos e representa Gs Uma visão mais abrangente e interconectada da estrutura da comunidade é a seguinte A borda da comunidade, ei∈Ec⊆ϕ∗(Nc×Nˉs)que conecta a comunidade com seus membros físicos.

O armazenamento duplo de dados brutos de episódios e informações derivadas de entidades semânticas reflete os modelos mentais da memória humana. Esses modelos distinguem entre a memória de episódios, que representa diferentes eventos, e a memória semântica, que captura associações entre conceitos e seus significados [8]. Essa abordagem permite que as inteligências LLM que usam o Zep desenvolvam estruturas de memória mais complexas e sutis, mais bem alinhadas com nossa compreensão do sistema de memória humana. Os gráficos de conhecimento fornecem um meio eficiente para representar essas estruturas de memória, e os diferentes subgráficos episódicos e semânticos que implementamos baseiam-se em uma abordagem semelhante no AriGraph [9].

Nosso uso de nós de comunidade para representar a estrutura de alto nível e os conceitos de domínio baseia-se no trabalho do GraphRAG [4], permitindo uma compreensão global mais abrangente do domínio. A organização hierárquica resultante - de gráficos a fatos, entidades e comunidades - amplia as estratégias RAG hierárquicas existentes [10][11].

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 três tipos principais: mensagens, texto ou JSON. Embora cada tipo exija um processamento específico durante a construção do gráfico, este artigo se concentra no tipo de mensagem porque nossos experimentos se concentram em memórias de diálogo. Em nosso contexto, uma mensagem consiste em um texto relativamente curto (várias mensagens podem caber na janela de contexto do LLM), bem como os participantes associados que produziram o discurso.

Cada mensagem inclui 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 duas semanas" ou "verão passado"). O Zep implementa um modelo diacrônico em que a linha do tempo T representa a ordem temporal dos eventos, a linha do tempo T′ representa a transação de tempo para a ingestão de dados do Zep. Enquanto T′ As linhas do tempo atendem à finalidade tradicional da auditoria de banco de dados, mas o T A linha do tempo 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 sustenta os recursos exclusivos do Zep em comparação com as propostas anteriores de RAG baseadas em gráficos.

Lote Lado Ee 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 destrutiva dos subgráficos de plotagem do Graphiti, permitindo a passagem para frente e para trás: os artefatos semânticos podem ser rastreados até sua fonte para citação ou referência, e 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 representa a fase inicial do processamento de episódios. Durante o processo de ingestão, o sistema processa o conteúdo da mensagem atual e os últimos n mensagens para fornecer contexto para o reconhecimento de entidades nomeadas. Para este artigo e a implementação geral do Zep, n = 4Para avaliação contextual, são fornecidas duas rodadas completas de diálogo. 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 de episódios 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 por meio da pesquisa de nós de entidades de gráficos existentes por 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 integra os dados ao 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 possibilidade de alucinações.

Dicas selecionadas para uso na construção de gráficos 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 realiza a desduplicação de bordas por meio de um processo semelhante à resolução de entidades. As bordas associadas às pesquisas híbridas são restritas às bordas que existem entre pares de entidades que são idênticas às novas bordas. Essa restrição não só impede combinações incorretas de bordas semelhantes entre entidades diferentes, mas também reduz significativamente a complexidade computacional da desduplicaçã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 falha de borda

Um dos principais recursos de diferenciação da Graphiti em relação a outros mecanismos de gráficos de conhecimento é sua capacidade de gerenciar atualizações dinâmicas de informações por meio de extração temporal e processos de falha de borda.

O sistema usa tref Extração de informações temporais sobre fatos do contexto da trama. Isso possibilita extrair com precisão e datar representações de tempo de registros de tempo absolutos (por exemplo, "Alan Turing nasceu em 23 de junho de 1912") e registros de tempo relativos (por exemplo, "Comecei meu novo emprego há duas semanas"). De acordo com nossa abordagem de modelagem coerente, o sistema rastreia quatro registros de data e hora: t′ Crie e t′ Vencimento ∈ T′ monitora quando os fatos são criados ou invalidados no sistema, enquanto tvalid e tinvalid ∈ T 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 contradições temporais conflitantes, ele o faz comparando as bordas tinvalid Definido como tvalid no lado da falha para invalidar as bordas afetadas. De acordo com a linha do tempo da transação T′O Graphiti sempre prioriza novas informações ao determinar a falha da borda.

Essa abordagem abrangente permite que os dados sejam adicionados dinamicamente ao Graphiti à medida que as conversas evoluem, mantendo o estado atual do relacionamento e um histórico dos relacionamentos que evoluíram 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 pelo escalonamento dinâmico simples da propagação de rótulos, que permite que o sistema mantenha representações precisas da comunidade por mais tempo à 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 ni ∈ Ns ao gráfico 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 torne a expansão da comunidade eficiente à medida que os dados fluem para o sistema, as comunidades resultantes se desviam gradualmente daquelas geradas pela execução completa da propagação de rótulos. Portanto, ainda são necessárias atualizações periódicas da comunidade. 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 dos nós membros por meio de um estilo iterativo de redução de mapas. 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:S→Sque 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 são gerados por inteligências LLM em consultas α necessário para a resposta exata do O processo f(α) → β Ele consiste em três etapas diferentes:

- Pesquisa (φ)O processo identifica primeiro os nós e as bordas candidatos 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 φ:S→Esn-×Nsnˉ×.Ncn. Portanto, φ Converta a consulta em uma tripla contendo uma lista de bordas semânticas, nós de entidades e nós de comunidades - esses três tipos de gráficos contêm informações textuais relevantes.

- Reordenador (ρ)A segunda etapa reordena os resultados da pesquisa. A função ou modelo reordenador pega uma lista de resultados de pesquisa e gera uma versão reordenada desses resultados: ρ:φ(α),...→ Esn×Nsn×Ncn.

- Construtor (χ)Na última etapa, o construtor converte os nós e as bordas relevantes em um contexto textual: χ:Esn×Nsn×Ncn→S. Para cada ei ∈ Esχ Retornar fatos e tvalidTinvalid. campo; para cada ni ∈ Nsque retorna os campos name e summary; e para cada ni ∈ Ncretorna o campo de resumo.

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

Exemplo de modelo de cadeia de contexto:

Fatos e entidades Representa o contexto relevante para o diálogo atual.
Esses são os fatos mais relevantes e seus intervalos de datas válidos. Se o fato for sobre um evento, então o evento ocorreu durante esse período.
Formato: fato (intervalo de datas: de - até)
<fact
{fact}
</fact
Estas são as entidades mais relevantes
Nome da entidade: resumo da entidade
<entity
{entity}
</entity

3.1 Pesquisa

O Zep implementa três funções de pesquisa: pesquisa de similaridade semântica de cosseno (φcos)A pesquisa de texto completo do Okapi BM25 (φbm25) está disponível na Internet. e 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 três tipos de objetos: para Esprocuramos por campos de fatos; para Nspesquisa por nomes de entidades; para NcO LightRAG [16] busca nomes de comunidades que incluem palavras-chave e frases relevantes abordadas na comunidade. Embora desenvolvida de forma independente, nossa abordagem de busca na comunidade é semelhante à abordagem de busca avançada de chaves 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 pesquisa de amplitude em primeiro lugar é realizada pela identificação de n nós e bordas adicionais dentro de um salto para aprimorar os resultados da pesquisa inicial. Além disso, φbfs Os nós podem ser aceitos como parâmetros de pesquisa, proporcionando assim maior controle sobre a função de pesquisa. Essa funcionalidade se mostra particularmente valiosa quando se usam episódios recentes como semente para uma pesquisa ampla, permitindo que o sistema incorpore entidades e relacionamentos mencionados recentemente no contexto recuperado.

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 vise a 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 Ranking 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 com que uma entidade ou fato é mencionado em uma conversa, 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 em sua distância de um nó central especificado, fornecendo contexto para a localização de regiões específicas do gráfico de conhecimento. O recurso de reordenação mais sofisticado do sistema emprega um codificador cruzado, gerando pontuações de relevância usando a atenção cruzada para avaliar nós e bordas em relação à consulta do LLM, embora essa abordagem incorra no maior custo computacional.

 

4. experimentos

Esta seção analisa dois experimentos realizados com um teste de referência baseado 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 utiliza o benchmark LongMemEval de "LongMemEval: Benchmarking Chat Assistants on Long-Term Interaction Memory" [7]. Especificamente, usamos LongMemEval ⋅ que fornece uma ampla variedade de contextos de diálogo 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 mantém a capacidade adicional de explorar o gráfico de conhecimento para trabalhos futuros.

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 estarão disponíveis publicamente em nosso repositório do GitHub e incluirão dicas experimentais relevantes no apêndice.

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

memorização modelagem marca
Resumo recursivo Resumo do diálogo MemGPT†
Zep Resumo do diálogo gpt-4-turbo
diálogo completo Zep gpt-4o-mini

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

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

A avaliação de 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 usando gpt-4-turbo, o que representa uma melhoria significativa em relação à linha de base de 35,31 TP3T para resumos recursivos.

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. Ao usar o gpt-4o-mini, 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 LLM compara a resposta da inteligência 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 e é facilmente adaptado à 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 desse teste de referência. A avaliação se baseia exclusivamente em perguntas de recuperação de fatos em uma única rodada e não consegue avaliar a compreensão complexa da memória. Muitas das perguntas continham palavras vagas, invocando conceitos como "bebida relaxante favorita" ou "passatempo estranho" que não foram explicitamente descritos como tal 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 alto desempenho obtido usando a abordagem simples de contexto completo do LLM moderno destaca ainda mais as deficiências desse benchmark 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 nos benchmarks LongMemEval se degrada 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, um melhor reflexo dos cenários empresariais e 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 em aplicativos empresariais reais. O conjunto de dados LongMemEvals representa um desafio significativo para as soluções LLM e Business Memory [7] existentes, com diálogos que têm em média cerca de 115.000 tokens. Esse comprimento, embora bastante grande, ainda está dentro da janela de contexto 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 sã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. Usamos laptops de consumidores em nosso local residencial em Boston, MA, para nos conectarmos ao serviço da Zep, que está 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 dicas específicas da pergunta, conforme descrito 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 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 esse teste de benchmark seja avaliado por outras equipes de pesquisa, 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. Usando o gpt-4o-mini, o Zep melhorou a precisão em 15,21 TP3T em relação à linha de base, enquanto o gpt-4o melhorou em 18,51 TP3T. O tamanho reduzido da sugestão também resultou em uma redução significativa no custo de latência em comparação com a implementação da linha de base.

Tabela 2: LongMemEvals

memorização modelagem marca procrastinar Atraso IQR Contexto médio Tokens
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-4o 60.2% 28.9 s 6.01 s 115k
Zep gpt-4o 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 maiores melhorias nos tipos de perguntas complexas: preferência de sessão única, várias sessões e raciocínio temporal. O Zep também demonstrou melhor desempenho na categoria de atualização de conhecimento ao usar o gpt-4o, destacando que ele é mais eficaz quando usado com modelos mais avançados. No entanto, pode ser necessário um desenvolvimento adicional para melhorar a compreensão dos dados temporais do Zep por modelos menos avançados.

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,7%↑
Assistente de sessão única gpt-4o-mini 81.8% 75.0% 90'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-4o 20.0% 56.7% 184%↑
Assistente de sessão única gpt-4o 94.6% 80.4% 17.7%↓
inferência cronológica gpt-4o 45.1% 62.4% 38.4%↑
multissessão gpt-4o 44.3% 57.9% 30,7%↑
Atualização de conhecimento gpt-4o 78.2% 83.3% 6.52%↑
usuário de sessão única gpt-4o 81.4% 92.9% 14.1%↑

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

A degradação do 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 à melhoria consistente do Zep, sugerindo que 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 em benchmarks de memória existentes, reduzindo o custo do token e operando com latência significativamente menor.

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. Vários caminhos de pesquisa poderiam ser desenvolvidos com base nessas duas estruturas, inclusive a integração de outros métodos GraphRAG no paradigma Zep, bem como novas extensões do nosso trabalho.

Pesquisas demonstraram o valor dos modelos de ajuste fino para extração de entidades e bordas LLM no paradigma GraphRAG, melhorando a precisão e reduzindo o custo e a latência [19][25]. Da mesma forma, o ajuste fino do modelo para dicas do Graphiti pode 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 tenha operado 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 de mapeamento de conhecimento pré-LLM, merecem ser mais exploradas na estrutura do Graphiti.

Nossa busca por testes de benchmark de memória adequados revela uma seleção limitada, sendo que os testes de benchmark existentes geralmente carecem de robustez e sofisticação, muitas vezes se resumindo a 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] e [28].

A escalabilidade dos sistemas de produção, incluindo o custo e a latência, não foi abordada adequadamente na literatura atual sobre memórias LLM e sistemas RAG. 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

{current_message}
</current_message
Com base no diálogo acima, extraia os nós de entidade mencionados explícita ou implicitamente da "mensagem atual":
Diretrizes:
1. Sempre extraia o orador/ator como o primeiro nó. O orador é a parte de cada linha de diálogo antes dos dois pontos.
2 Extraia outras entidades, conceitos ou atores importantes mencionados na "mensagem atual".
3. não crie nós para relacionamentos ou ações.
4. não crie nós para informações temporais, como data, hora ou ano (elas serão adicionadas à borda posteriormente).
5. Seja o mais explícito possível ao nomear os nós e use nomes completos.
6. Não extraia apenas entidades mencionadas

 

6.1.2 Resolução de entidades

<mensagem anterior
{mensagem anterior}
</mensagem anterior
<mensagem atual
{mensagem atual}
</mensagem atual
<nó existente
{nó existente}

Considerando o nó existente, a mensagem e a mensagem anterior acima. Determine se o novo nó extraído do diálogo é uma entidade duplicada do nó existente.

{new node}
</new node
Tarefas:
1. se o novo nó representar a mesma entidade que qualquer um dos nós existentes, retorne "is_duplicate: true" na resposta. Caso contrário, retorne "is_duplicate: false". 2.
2. Se is_duplicate for true, retorne o uuid do nó existente na resposta. 3. Se is_duplicate for true, retorne o uuid do nó existente na resposta.
3. Se is_duplicate for verdadeiro, retorne o nome completo mais completo do nó.
Diretrizes:
1. use o nome e o resumo do nó para determinar se a entidade está duplicada. os nós duplicados podem ter nomes diferentes.

6.1.3 Extração de fatos

<mensagem anterior
{mensagem anterior}
</mensagem anterior
<mensagem atual
{mensagem atual}
</mensagem atual
<entity
{entity}

Considerando a mensagem e as entidades acima, extraia todos os elementos relacionados às entidades listadas da mensagem atual.
Instruções:
1. extraia somente os fatos entre as entidades fornecidas.
2. Cada fato deve representar uma relação clara entre dois nós diferentes.
3. relation_type deve ser uma descrição concisa do fato, com todas as letras maiúsculas (por exemplo, LOVES, IS_FRIENDS_WITH,
WORKS_FOR).
4. Forneça fatos mais detalhados que contenham todas as informações relevantes.
5. Considere os aspectos temporais do relacionamento (se relevante).

6.1.4 Análise dos fatos

Considerando o contexto a seguir, determine se a "nova borda" representa as mesmas informações expressas por qualquer uma das bordas da lista "bordas existentes".
<arestas_existentes
{existing_edges}
</existing_edges
<new_edge
{new_edge}
</new_edge
Tarefa:
Retornar "is_duplicate: true" na resposta se "new_edge" representar as mesmas informações factuais que qualquer uma das bordas em "existing_edge". Caso contrário, retorne 'is_duplicate: false'.
Se is_duplicate for verdadeiro, retorne também o uuid da borda existente na resposta.
Diretrizes:
As informações factuais não precisam ser exatamente as mesmas para serem consideradas duplicadas, elas só precisam expressar as mesmas informações.

6.1.5 Extração de tempo

<mensagem anterior
{mensagem anterior}
</mensagem anterior

{mensagem atual}
</mensagem atual
<reference timestamp
{referência de registro de data e hora}
</ref timestamp
<facts
{fato}
</fact
IMPORTANTE: Extraia as informações de tempo somente se o fato fornecido contiver informações de tempo; caso contrário, ignore o tempo mencionado.
Se apenas tempos relativos forem mencionados (por exemplo, "10 anos atrás", "2 minutos atrás"), faça o possível para determinar a data exata com base no carimbo de data/hora de referência fornecido.
Se a relação não for abrangente, mas a data ainda puder ser determinada, defina apenas `valid_at`.
Definição:
- valid_at: a data e a hora em que o relacionamento descrito por esse fato se tornou real ou foi estabelecido.
- invalid_at: a data e a hora em que o relacionamento descrito por esse fato deixou de ser real ou terminou.
Tarefa:
Analise o diálogo e determine se o fato contém informações de data. Defina a data somente se ela estiver explicitamente relacionada à criação ou alteração de um relacionamento.
Instruções:
1. use o formato ISO 8601 (AAAA-MM-DDTHH:MM:SS.SSSSSSZ) para representar datas e horários.
2. calcule `valid_at` e `invalid_at` com o registro de data e hora de referência como a hora atual.
3. Se o fato usar o tempo verbal presente, use o carimbo de data/hora de referência como a data `valid_at`.
4. Se não for encontrada nenhuma informação de tempo que estabeleça ou altere a relação, defina o campo como nulo. 5.
5. Uma data não deve ser inferida de um evento relacionado; somente as datas usadas diretamente para estabelecer ou alterar a relação devem ser usadas. 6.
6. Se for mencionada uma hora relativa diretamente relacionada à relação, a data e hora reais serão calculadas com base no registro de data e hora de referência. 7.
7. Se apenas a data for mencionada, mas nenhuma hora for especificada, 00:00:00 (meia-noite) será usada por padrão. 8. Se apenas o ano for mencionado, 00:00:00 (meia-noite) será usada por padrão.
8. se apenas o ano for mencionado, será usada a 00:00:00 de 1º de janeiro do ano em questão.
9. Sempre inclua o deslocamento do fuso horário (use Z para UTC se nenhum fuso horário específico for especificado).  
Download de ferramentas
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " ZEP-Graphiti: uma arquitetura de gráfico de conhecimento temporal para memória em inteligência

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil