속기 판독
지능형 신체 기억의 도전과 Zep의 혁신
AI 에이전트는 복잡한 작업에서 메모리 병목현상에 직면합니다. 기존의 대규모 언어 모델(LLM) 기반 AI 에이전트는 컨텍스트 윈도우의 제약을 받아 장기간의 대화 기록과 동적 데이터를 효과적으로 통합하기 어렵고 성능이 제한되며 오류가 발생하기 쉬운데, Zep은 핵심 구성 요소인 Graphiti를 통해 강력한 메모리 기능을 갖춘 AI 에이전트가 동적 정보 환경에 대처할 수 있도록 지원하는 혁신적인 지식 그래프 아키텍처입니다. 시간적 정보와 세션 간 추론을 처리하는 데 어려움을 겪는 기존 RAG 접근 방식의 문제를 해결하여 엔터프라이즈급 애플리케이션에 보다 안정적인 메모리 지원을 제공합니다.
구현: Graphiti - 시간 인식 지식 그래프 엔진
Graphiti 지능형 신체 기억은 다단계 지식 그래프 구성, 시간적 정보의 동적 관리, 효율적인 검색 메커니즘을 통해 이루어집니다.
- 다단계 지식 그래프 구성:
- 플롯 하위 플롯: 원시 데이터(대화 메시지)는 플롯 노드로 사용되며 텍스트와 타임스탬프를 포함합니다.
- 시맨틱 엔티티 하위 그래프: 엔티티(사람, 장소, 제품 이름 등)는 시맨틱 엔티티 노드로서 플롯 노드에서 추출됩니다.
- 커뮤니티 하위 맵: 동일한 주제에 대한 엔티티 노드를 집계하여 커뮤니티 노드를 형성합니다.
- 이러한 계층적 구조는 확장성을 향상시키고 인텔리전스가 정보를 더 효율적으로 이해할 수 있게 해줍니다.
- 시간대별 정보를 동적으로 관리합니다:
- 바이타임 모델링: 이벤트 타이밍(타임라인 T)과 데이터 수집 타이밍(타임라인 T')을 기록하고 절대/상대 시간 정보를 처리합니다.
- 동적 업데이트: 시간 충돌을 처리하기 위해 지식 그래프를 실시간으로 업데이트합니다.
- Graphiti의 시계열 인식 기능은 정확한 최신 정보를 보장합니다.
- 효율적인 검색 메커니즘:
- 다중 방법 통합: 코사인 유사도 검색, 전체 텍스트 검색, 범위 우선 검색을 결합하여 관련 컨텍스트를 빠르고 정확하게 찾을 수 있습니다.
엔터프라이즈 애플리케이션: 전체 샘플 프로세스
take기업 고객 지원 인텔리전스 기관
사용자 입력::
사용자가 채팅 인터페이스를 통해 "안녕하세요, 지난달에 구입한 HP LaserJet Pro MFP M28w 프린터에 문제가 발생하여 출력물에 고스트 현상이 있습니다. 이전에 기술 지원팀에 문의한 적이 있는데 프린터를 다시 시작하면 문제가 해결된다고 했지만 시도해 보았지만 여전히 문제가 해결되지 않습니다."
1. 에피소드 노드 섭취::
Graphiti는 사용자의 최신 뉴스를 현재 타임스탬프(예: 2024년 2월 20일 오전 10:30)가 있는 새 에피소드 노드로 지식 그래프에 수집합니다. 동시에 시스템은 '프린터 문제'와 관련된 과거 대화 에피소드를 검색합니다.
2. 엔티티 및 관계 추출::
- 물리적 추출::
- 프린터 모델: HP LaserJet Pro MFP M28w
- 구매일: 2024년 1월 10일
- 문제 설명: 고스팅이 있는 문서 인쇄
- 이전에 연락한 날짜: 2024년 1월 15일
- 이전 해결 방법: 프린터 재부팅
- 관계 추출::
[用户] 购买 [打印机]
[打印机] 存在 [打印文件有重影] 问题
[重启打印机] 是 [尝试过的解决方案]
3. 커뮤니티 테스트::
이 시스템은 보다 효율적인 검색을 위해 프린터 "HP LaserJet Pro MFP M28w"와 관련된 모든 개체 및 관계를 하나의 커뮤니티로 통합합니다.
4. 동적 정보 업데이트::
Graphiti는 업데이트가 필요한 정보를 확인합니다. 사용자가 프린터를 다시 시작해도 문제가 해결되지 않는다고 보고한 경우, 시스템에서 업데이트합니다. [重启打印机] 的 [解决方案状态]
때문에 [未解决]
.
5. 관련 컨텍스트 검색::
시스템은 여러 검색 방법을 사용하여 찾습니다:
- 전체 텍스트 검색"프린터", "재이미지", "HP LaserJet Pro MFP M28w"와 같은 키워드가 포함된 기록 대화를 검색합니다.
- 코사인 유사도 검색: '흐릿한 인쇄물', '왜곡된 인쇄 색상' 등과 같은 유사한 인쇄 문제를 설명하는 대화 상자를 찾습니다.
- 폭 우선 검색: 출발지
[HP LaserJet Pro MFP M28w]
커뮤니티는 이 프린터 모델과 관련된 모든 일반적인 문제와 권장 해결책을 찾기 시작했습니다.
6. 응답 생성하기::
스마트 바디는 검색된 컨텍스트 정보를 기반으로 다음과 같은 응답을 생성합니다:
"안녕하세요! 피드백을 보내주셔서 감사합니다. 구입하신 HP LaserJet Pro MFP M28w 프린터에서 고스트 현상이 있는 문서를 인쇄하고 있으며 이전에 프린터를 다시 시작했지만 문제가 여전히 지속된다는 것을 알고 있습니다. 문제를 더 잘 해결하려면 다음 단계를 시도해 보시기 바랍니다:
- 카트리지를 확인합니다: 카트리지가 올바르게 설치되었는지, 잉크 잔량이 충분한지 확인합니다.
- 프린트 헤드를 청소합니다: 프린트 헤드가 막히면 고스트 현상이 발생할 수 있으므로 프린트 헤드를 청소해 보세요(절차는 프린터 설명서를 참조하세요).
- 드라이버를 업데이트합니다: 최신 프린터 드라이버를 다운로드하여 설치하려면 HP 웹 사이트를 방문하십시오.
위의 단계를 시도한 후에도 문제가 지속되면 추가 문제 해결을 위해 다음 정보를 제공해 주세요:
- 어떤 버전의 운영 체제를 사용 중이신가요?
- 고스팅 문제가 모든 문서에서 발생하나요, 아니면 특정 문서에서 발생하나요?
협조해 주셔서 감사합니다!"
7. 지식 업데이트::
사용자가 카트리지를 교체하여 문제를 해결하면 인텔리전트 바디가 다음을 기록합니다. [更换墨盒]
정착 [打印文件有重影] 问题
효과적인 솔루션을 제공하고, 추후 참조할 수 있도록 관련 엔티티 및 관계의 타임스탬프를 업데이트합니다.
실험 결과 및 향후 전망
Zep LongMemEval 평가에서 gpt-4o 모델을 사용할 경우 기준선 대비 정확도는 18.51 TP3T 향상되고 응답 대기 시간은 901 TP3T 단축됩니다. 실험 결과는 Zep가 메모리 정확도, 동적 업데이트 기능, 효율적인 검색 및 확장성 측면에서 상당한 이점을 가지고 있음을 입증합니다.
향후 연구 방향은 다음과 같습니다:
- 모델 미세 조정: 지식 추출의 정확성과 효율성을 최적화합니다.
- 도메인 온톨로지 통합: 특정 도메인에 대한 이해와 추론이 향상됩니다.
- 새로운 벤치마킹 개발: 메모리 시스템 발전.
관련 항목:Graphiti: 동적 지식 그래프 구성 및 쿼리 도구(시간 인식 장기 기억 프로그램)
초록
심층 메모리 검색(DMR) 벤치마크에서 현재의 최첨단 시스템인 MemGPT를 능가하는 새로운 인텔리전스용 메모리 계층 서비스인 Zep을 소개합니다. 또한 Zep은 실제 기업 사용 사례를 더 잘 반영하는 DMR보다 더 포괄적이고 까다로운 평가에서 우수한 성능을 발휘합니다. 기존의 LLM(대규모 언어 모델) 기반 RAG(검색 증강 생성) 프레임워크는 정적 문서 검색에 국한되어 있지만, 엔터프라이즈 애플리케이션은 진행 중인 대화와 비즈니스 데이터를 포함한 다양한 소스의 지식을 동적으로 통합해야 합니다. Zep는 시계열 인식 지식 그래프 엔진인 핵심 구성 요소 Graphiti로 이 근본적인 한계를 해결합니다. 비정형 대화 데이터와 정형 비즈니스 데이터를 통합하는 동시에 과거 관계를 유지합니다. MemGPT 팀이 설정한 DMR 벤치마크에서 Zep은 94.81 TP3T 대 93.41 TP3T로 우수한 성능을 입증했습니다. DMR 외에도 복잡한 시간 추론 작업을 통해 엔터프라이즈 사용 사례를 더 잘 반영하는 보다 복잡한 LongMemEval 벤치마크에서 Zep의 기능이 추가로 검증되었습니다. 이 평가에서 Zep은 기준 구현에 비해 응답 지연 시간을 901 TP3T까지 줄이면서 정확도는 최대 18.51 TP3T까지 향상되었으며, 이러한 결과는 특히 세션 간 정보 합성 및 장기 컨텍스트 유지와 같은 기업 핵심 작업에서 유의미하여 실제 애플리케이션에서 Zep의 효과를 입증했습니다.
1. 소개
최근 몇 년 동안 트랜스포머 기반 대규모 언어 모델(LLM)이 업계와 연구 커뮤니티에 미치는 영향이 많은 주목을 받고 있습니다[1]. LLM의 주요 응용 분야 중 하나는 채팅 기반 인텔리전스 개발입니다. 그러나 이러한 인텔리전스의 기능은 LLM 컨텍스트 창, 효과적인 컨텍스트 활용, 사전 훈련 중에 얻은 지식에 의해 제한됩니다. 따라서 도메인 외부(OOD) 지식을 제공하고 착각을 줄이기 위해서는 추가적인 컨텍스트가 필요합니다.
검색 증강 생성(RAG)은 LLM 애플리케이션의 핵심 관심 분야로 자리 잡았으며, 지난 50년 동안 개척된 정보 검색(IR) 기법[2]을 활용하여 LLM에 필요한 도메인 지식을 제공합니다.
현재 RAG 사용에 대한 접근 방식은 광범위한 도메인 지식과 상대적으로 정적인 말뭉치, 즉 말뭉치에 추가된 문서의 내용이 거의 변하지 않는 것에 초점을 맞추고 있습니다. 인공지능이 일상 생활에 널리 보급되어 사소한 문제부터 매우 복잡한 문제까지 자율적으로 해결하려면 관련 비즈니스 및 세계 데이터뿐만 아니라 사용자와 인공지능의 상호작용에서 파생된 끊임없이 진화하는 대규모 데이터 코퍼스에 액세스할 수 있어야 합니다. 이러한 종류의 광범위하고 역동적인 '메모리'를 인공지능에 제공하는 것이 이러한 비전을 실현하는 핵심 요소라고 생각하며, 현재의 RAG 접근 방식은 이러한 미래에 적합하지 않다고 생각합니다. 전체 대화 기록, 비즈니스 데이터 세트 및 기타 도메인별 콘텐츠는 LLM의 컨텍스트 창에 효율적으로 들어맞지 않기 때문에 지능형 바디 메모리에 대한 새로운 접근 방식이 개발되어야 합니다. LLM 기반 인텔리전스에 메모리를 추가하는 것은 새로운 아이디어가 아니며, 이 개념은 이전에 MemGPT[3]에서 탐구된 바 있습니다.
최근 지식 그래프(KG)는 기존 IR 기법의 여러 단점을 해결하기 위해 RAG 아키텍처를 보강하는 데 사용되었습니다[4]. 이 백서에서는 동적 시계열 인식 지식 그래프 엔진인 Graphiti[6]로 구동되는 메모리 계층 서비스인 Zep[5]를 소개합니다. Zep는 비정형 메시지 데이터와 정형 비즈니스 데이터를 수집 및 합성하며, Graphiti KG 엔진은 무손실 방식으로 지식 그래프를 동적으로 업데이트하여 사실과 관계를 보존합니다. 만료일을 포함한 타임라인의 관계를 보존합니다. 이러한 접근 방식을 통해 지식 그래프는 복잡하고 진화하는 세상을 표현할 수 있습니다.
Zep은 프로덕션 시스템이기 때문에 메모리 검색 메커니즘의 정확성, 지연 시간, 확장성을 매우 중요하게 생각합니다. 저희는 기존의 두 가지 벤치마크, 즉 MemGPT[3]의 심층 메모리 검색 작업(DMR)과 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]. 이러한 접근 방식을 통해 Zep을 사용하는 인공 지능은 인간의 기억 시스템에 대한 이해와 더 잘 부합하는 더 복잡하고 미묘한 기억 구조를 개발할 수 있습니다. 지식 그래프는 이러한 기억 구조를 표현하는 효율적인 매체를 제공하며, 우리가 구현한 다양한 에피소드 및 의미 하위 그래프는 AriGraph [9]의 유사한 접근 방식을 활용합니다.
높은 수준의 구조와 도메인 개념을 표현하기 위해 커뮤니티 노드를 사용하는 것은 GraphRAG[4]의 작업을 기반으로 하여 도메인에 대한 보다 포괄적인 글로벌 이해를 가능하게 합니다. 플롯에서 팩트, 엔티티, 커뮤니티에 이르는 계층적 조직은 기존의 계층적 RAG 전략을 확장합니다[10][11].
2.1 에피소드
Zep의 그래프 구성은 에피소드라는 원시 데이터 단위를 수집하는 것으로 시작됩니다. 에피소드는 메시지, 텍스트, JSON의 세 가지 핵심 유형 중 하나이며, 그래프를 구성하는 동안 각 유형마다 특정 처리가 필요하지만 이 백서에서는 대화 기억에 초점을 맞춘 실험이므로 메시지 유형에 중점을 둡니다. 우리의 맥락에서 메시지는 비교적 짧은 텍스트(여러 개의 메시지가 LLM의 컨텍스트 창에 들어갈 수 있음)와 담화를 생성한 관련 참여자들로 구성됩니다.
각 메시지에는 참조 타임스탬프 트레프가 포함됩니다.
메시지가 전송된 시간을 나타내는 시간입니다. 이 시간 정보를 통해 Zep는 메시지 콘텐츠에 언급된 상대적 또는 부분적 날짜(예: "다음 주 목요일", "2주 후" 또는 "지난 여름")를 정확하게 식별하고 추출할 수 있습니다. Zep는 통시적 모델을 구현하여 타임라인 T 는 이벤트의 시간적 순서인 타임라인 T′를 나타냅니다. 는 Zep 데이터 수집을 위한 타이밍 트랜잭션을 나타냅니다. T′ 타임라인은 데이터베이스 감사의 전통적인 목적에 부합하지만, T 타임라인은 대화 데이터와 메모리의 동적 특성을 모델링하기 위한 추가적인 차원을 제공합니다. 이 이중 시간 접근 방식은 LLM 지식 그래프 구성의 새로운 진보를 의미하며, 이전의 그래프 기반 RAG 제안과 비교했을 때 Zep의 고유한 기능을 뒷받침합니다.플롯 측면 Ee
플롯을 추출된 엔티티 노드에 연결합니다. 플롯과 그로부터 파생된 시맨틱 에지는 에지와 소스 플롯 사이의 관계를 추적하는 양방향 인덱스를 유지합니다. 이러한 설계는 정방향 및 역방향 탐색을 모두 가능하게 함으로써 Graphiti의 플롯 하위 그래프의 비파괴적 특성을 향상시킵니다. 시맨틱 아티팩트를 참조 또는 인용을 위해 소스까지 추적하고 관련된 엔티티 및 사실에 대해 플롯을 빠르게 검색할 수 있습니다. 이 논문의 실험에서는 이러한 연관성을 직접적으로 살펴보지는 않았지만, 향후 연구에서는 이러한 연관성을 탐구할 예정입니다.2.2 의미론적 실체와 사실
2.2.1 엔티티
엔티티 추출은 에피소드 처리의 초기 단계를 나타냅니다. 수집 프로세스 중에 시스템은 현재 메시지 콘텐츠와 마지막 n개의
메시지를 사용하여 명명된 엔티티 인식을 위한 컨텍스트를 제공합니다. 이 문서와 Zep의 일반적인 구현에서는 n = 4입니다. 를 사용하면 문맥 평가를 위해 두 번의 전체 대화 라운드가 제공됩니다. 메시지 처리에 초점을 맞추기 때문에 화자는 자동으로 엔티티로 추출됩니다. 초기 엔티티 추출 후에는 착시를 최소화하고 추출 범위를 향상시키기 위해 반사[12]에서 영감을 얻은 반사 기법을 사용합니다. 또한 시스템은 에피소드에서 엔티티 요약을 추출하여 후속 엔티티 확인 및 검색 작업을 용이하게 합니다.추출 후, 시스템은 각 엔티티 이름을 1024차원 벡터 공간에 임베딩합니다. 이 임베딩을 통해 코사인 유사도를 기준으로 기존 그래프 엔티티 노드를 검색하여 유사한 노드를 검색할 수 있습니다. 또한, 시스템은 기존 엔티티 이름과 초록에 대해 별도의 전체 텍스트 검색을 수행하여 추가 후보 노드를 식별합니다. 이러한 후보 노드는 플롯 컨텍스트와 함께 엔티티 해상도 힌트를 사용해 LLM을 통해 처리됩니다. 시스템이 중복된 엔티티를 식별하면 업데이트된 이름과 초록을 생성합니다.
엔티티 추출 및 구문 분석 후, 시스템은 미리 정의된 Cypher 쿼리를 사용하여 데이터를 지식 그래프에 통합합니다. 일관된 아키텍처 형식을 보장하고 환각의 가능성을 줄이기 위해 LLM에서 생성된 데이터베이스 쿼리 대신 이 접근 방식을 선택했습니다.
그래프 구성에 사용할 수 있는 몇 가지 팁은 부록에 나와 있습니다.
2.2.2 사실
를 사용하여 핵심 술어를 포함하는 각 사실에 대해 추출할 수 있습니다. 마찬가지로, 동일한 사실을 여러 엔터티에서 여러 번 추출할 수 있으므로 Graphiti는 하이퍼엣지를 구현하여 복잡한 다중 엔터티 사실을 모델링할 수 있습니다.
추출 후, 시스템은 그래프 통합을 준비하기 위해 사실에 대한 임베딩을 생성합니다. 시스템은 엔티티 해상도와 유사한 프로세스를 통해 에지 중복 제거를 수행합니다. 하이브리드 검색과 관련된 에지는 새 에지와 동일한 엔티티 쌍 사이에 존재하는 에지로 제한됩니다. 이러한 제한은 서로 다른 엔티티 간에 유사한 에지의 잘못된 조합을 방지할 뿐만 아니라 검색 공간을 특정 엔티티 쌍과 관련된 에지의 하위 집합으로 제한함으로써 중복 제거의 계산 복잡성을 크게 줄여줍니다.
2.2.3 시간 추출 및 에지 실패
다른 지식 그래프 엔진과 비교했을 때 Graphiti의 주요 차별화 기능은 시간 추출 및 에지 장애 프로세스를 통해 동적 정보 업데이트를 관리할 수 있다는 점입니다.
이 시스템은 트레프
플롯 컨텍스트에서 사실에 대한 시간적 정보를 추출합니다. 이를 통해 절대 타임스탬프(예: "앨런 튜링은 1912년 6월 23일에 태어났다")와 상대 타임스탬프(예: "나는 2주 전에 새 직장을 시작했다")의 시간 표현을 정확하게 추출하고 날짜를 표시할 수 있습니다. 일관된 모델링 접근 방식에 따라, 시스템은 네 가지 타임스탬프를 추적합니다: t′ 만들기 및 t′ 만료 ∈ T′ 는 시스템에서 사실이 생성되거나 무효화되는 시점을 모니터링하고, tvalid 및 주석 유효 ∈ T 사실이 확인된 기간을 추적합니다. 이러한 시간 데이터 포인트는 다른 사실 정보와 함께 측면에 저장됩니다.새 에지를 도입하면 데이터베이스의 기존 에지가 무효화될 수 있습니다. 시스템은 LLM을 사용하여 새 에지와 의미적으로 관련된 기존 에지를 비교하여 잠재적인 모순을 식별합니다. 시스템이 상충하는 시간적 모순을 식별하는 경우, 무효인 틴밸런스를 비교하여 이를 식별합니다.
실패한 쪽을 tvalid로 설정합니다. 를 사용하여 영향을 받는 에지를 무효화할 수 있습니다. 트랜잭션 타임라인 T′에 따르면 그래피티는 엣지 장애를 판단할 때 항상 새로운 정보를 우선시합니다.이러한 포괄적인 접근 방식을 통해 대화가 진화함에 따라 Graphiti에 데이터를 동적으로 추가할 수 있으며, 시간이 지남에 따라 진화하는 관계의 현재 상태와 관계의 이력을 유지할 수 있습니다.
2.3 커뮤니티
플롯과 시맨틱 하위 그래프를 구축한 후, 시스템은 커뮤니티 감지를 통해 커뮤니티 하위 그래프를 구성합니다. 커뮤니티 감지 접근 방식은 GraphRAG [4]에 설명된 기술을 기반으로 하지만, 라이덴 알고리즘 [14]이 아닌 레이블 전파 알고리즘 [13]을 사용합니다. 이러한 선택은 레이블 전파의 단순한 동적 확장에 영향을 받는데, 이는 새로운 데이터가 그래프에 들어올 때 시스템이 정확한 커뮤니티 표현을 더 오래 유지하여 전체 커뮤니티 새로 고침의 필요성을 연기할 수 있게 해줍니다.
동적 확장은 레이블 전파에서 단일 재귀 단계의 로직을 구현합니다. 시스템이 그래프에 새 엔티티 노드 ni ∈ Ns를 추가할 때
그렇게 되면 이웃 노드의 커뮤니티를 조사합니다. 시스템은 대부분의 이웃 노드가 보유한 커뮤니티에 새 노드를 할당하고 그에 따라 커뮤니티 요약과 그래프를 업데이트합니다. 이러한 동적 업데이트는 데이터가 시스템으로 유입됨에 따라 커뮤니티를 효율적으로 확장하지만, 그 결과 커뮤니티는 전체 라벨 전파 실행에 의해 생성된 커뮤니티와 점차적으로 차이가 나게 됩니다. 따라서 주기적인 커뮤니티 새로 고침이 여전히 필요합니다. 하지만 이 동적 업데이트 전략은 지연 시간과 LLM 추론 비용을 크게 줄여주는 실용적인 휴리스틱을 제공합니다.4]에 따라, 저희 커뮤니티 노드는 반복적인 맵 축소 스타일을 통해 멤버 노드의 요약을 포함합니다. 하지만, 우리의 검색 방식은 GraphRAG의 지도 축소 방식[4]과는 상당히 다릅니다. 검색 접근 방식을 지원하기 위해, 저희는 커뮤니티 요약에서 주요 용어와 관련 주제를 포함하는 커뮤니티 이름을 생성했습니다. 이러한 이름은 코사인 유사성 검색을 가능하게 하기 위해 임베드되어 저장됩니다.
3. 메모리 검색
Zep의 메모리 검색 시스템은 강력하고 정교하며 고도로 구성 가능한 기능을 제공합니다. 전반적으로 Zep 그래프 검색 API는 f:S→S 함수를 구현합니다.
는 텍스트 문자열 쿼리 α ∈ S를 허용합니다. 를 입력으로 받고 텍스트 문자열 컨텍스트 β ∈ S를 반환합니다. 를 출력으로 사용합니다. 출력 β 쿼리 α에 대해 LLM 인텔리전스에 의해 생성된 노드 및 에지의 형식화된 데이터를 포함합니다. 의 정확한 응답에 필요한 f(α) → β 세 가지 단계로 구성됩니다:- 검색(φ)
이 프로세스는 먼저 관련 정보를 포함할 수 있는 후보 노드와 에지를 식별합니다. Zep는 여러 가지 검색 방법을 사용하지만, 전체 검색 기능은 φ:S→Esn-×Nsnˉ×.Ncn으로 표현할 수 있습니다. . 따라서 φ 쿼리를 시맨틱 에지, 엔티티 노드, 커뮤니티 노드 목록을 포함하는 3-튜플(이 세 가지 그래프 유형에는 관련 텍스트 정보가 포함됨)로 변환합니다.- 재주문자(ρ)
두 번째 단계는 검색 결과를 재정렬합니다. 재정렬 함수 또는 모델은 검색 결과 목록을 가져와 ρ:φ(α),...→ Esn×Nsn×Ncn과 같은 재정렬된 버전의 결과를 생성합니다. .- 생성자 (χ)
마지막 단계에서 빌더는 관련 노드와 에지를 텍스트 컨텍스트로 변환합니다: χ:Esn×Nsn×Ncn→S . 각 ei ∈ Es χ 사실 및 TV 유효성 검사 반환 유효하지 않습니다. 필드; 각 ni ∈ Ns에 대해 이름과 요약 필드를 반환하고, 각 ni ∈ Nc에 대해 를 클릭하면 요약 필드가 반환됩니다.이러한 정의가 적용되면 f
는 이 세 가지 구성 요소의 조합으로 표현됩니다: f(α) = χ(ρ(φ(α))) = β .컨텍스트 문자열 템플릿 예시:
事实和实体 代表与当前对话相关的上下文。 这些是最相关的事实及其有效日期范围。 如果该事实是关于一个事件,那么该事件发生在此期间。 格式:事实(日期范围:从 - 到) <事实> {事实} </事实> 这些是最相关的实体 实体名称:实体摘要 <实体> {实体} </实体>
3.1 검색
Zep는 코사인 시맨틱 유사도 검색(φcos)의 세 가지 검색 기능을 구현합니다.
오카피 BM25(φbm25)의 전문은 인터넷에서 검색할 수 있습니다. 및 폭 우선 검색(φbfs) . 처음 두 기능은 Neo4j의 Lucene 구현을 활용합니다[15][16]. 각 검색 기능은 관련 문서를 식별하는 측면에서 서로 다른 기능을 제공하며, 함께 사용하면 순서를 바꾸기 전에 후보 결과에 대한 포괄적인 범위를 제공합니다. 검색 필드는 세 가지 개체 유형에 따라 다릅니다. 의 경우 팩트 필드를 검색하고, Ns의 경우 를 클릭하고 엔티티 이름을 검색합니다. 는 커뮤니티에서 다루는 관련 키워드와 문구가 포함된 커뮤니티 이름을 검색합니다. 독립적으로 개발되었지만, 저희의 커뮤니티 검색 접근 방식은 LightRAG[17]의 고급 키 검색 접근 방식과 유사합니다. LightRAG의 접근 방식을 Graphiti와 같은 그래프 기반 시스템과 결합하는 것은 향후 연구를 위한 유망한 방향을 제시합니다.코사인 유사도 및 전체 텍스트 검색 방법은 RAG [18]에서 잘 확립되어 있지만, 지식 그래프에 대한 넓이 우선 검색은 RAG 영역에서 제한적인 관심을 받아왔으며, AriGraph [9] 및 Distill-SynthKG [19] 같은 그래프 기반 RAG 시스템에서는 예외적으로 주목할 만한 예외가 있습니다. Graphiti에서, 넓이 우선 검색은 n을 식별하여 수행됩니다.
홉 내에 노드와 에지를 추가하여 초기 검색 결과를 개선합니다. 또한, φbfs 노드를 검색 매개변수로 허용할 수 있으므로 검색 기능을 더욱 세밀하게 제어할 수 있습니다. 이 기능은 최근 에피소드를 범위 우선 검색의 시드로 사용할 때 특히 유용하며, 시스템이 최근에 언급된 개체와 관계를 검색된 컨텍스트에 통합할 수 있게 해줍니다.전체 텍스트 검색은 단어 유사성을, 코사인 유사성은 의미적 유사성을, 폭 우선 검색은 문맥 유사성을 파악하여 그래프에서 가까운 노드와 가장자리가 더 유사한 대화 문맥에 나타납니다. 후보 결과 식별에 대한 이러한 다각적인 접근 방식은 최적의 문맥을 발견할 가능성을 극대화합니다.
3.2 재주문
초기 검색 접근 방식은 높은 리콜을 목표로 하는 반면, 재정렬기는 가장 관련성이 높은 결과의 우선순위를 지정함으로써 정확도를 향상시킵니다. Zep는 상호 순위 융합(RRF) [20] 및 최대 한계 관련성(MMR) [21] 같은 기존 재정렬 방법을 지원합니다. 또한, Zep는 대화에서 개체나 사실이 얼마나 자주 언급되는지에 따라 결과의 우선순위를 정하는 그래프 기반 에피소드 언급 재정렬기를 구현하여 자주 인용되는 정보에 더 쉽게 접근할 수 있도록 합니다. 또한 이 시스템에는 지정된 중앙 노드와의 거리에 따라 결과를 재정렬하는 노드 거리 재정렬기가 포함되어 있어 지식 그래프의 특정 영역에 대한 위치를 파악할 수 있는 컨텍스트를 제공합니다. 이 시스템의 가장 정교한 재정렬 기능은 교차 인코더를 사용하여 교차 주의를 통해 LLM 쿼리에 대해 노드와 에지를 평가하여 관련성 점수를 생성하지만, 이 접근 방식은 계산 비용이 가장 많이 듭니다.
4. 실험
이 섹션에서는 LLM 메모리를 기반으로 한 벤치마크 테스트를 사용하여 수행한 두 가지 실험을 분석합니다. 첫 번째 평가는 [3]에서 개발된 심층 메모리 검색(DMR) 작업을 사용하며, "Beyond Goldfish Memory: 장기 오픈 도메인 대화"[22]에서 소개된 다중 세션 채팅 데이터 세트의 500개 대화 하위 집합을 사용합니다. 두 번째 평가는 "LongMemEval: 장기 상호작용 메모리에 대한 채팅 어시스턴트 벤치마킹"[7]의 LongMemEval 벤치마크를 활용합니다. 구체적으로, 우리는 LongMemEval ⋅⋅
데이터 세트는 평균 길이가 115,000개에 달하는 광범위한 대화 컨텍스트를 제공합니다.두 실험 모두에서 Zep의 API를 통해 대화 기록을 Zep 지식 그래프에 통합했습니다. 그런 다음 섹션 3에서 설명한 기술을 사용하여 가장 관련성이 높은 20개의 에지(사실)와 엔티티 노드(엔티티 요약)를 검색합니다. 시스템은 이 데이터를 Zep의 메모리 API가 제공하는 기능과 일치하는 컨텍스트 문자열로 다시 포맷합니다.
이러한 실험은 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을 사용합니다.
MemGPT의 DMR 결과와 직접적인 비교 가능성을 보장하기 위해 gpt-4-turbo-2024-04-09를 사용하여 DMR 평가도 수행했습니다.
실험용 노트북은 GitHub 리포지토리를 통해 공개되며, 부록에 관련 실험 팁이 포함되어 있습니다.
표 1: 심층 메모리 검색
암기 | 모델링 | mark |
---|---|---|
재귀적 요약 | 대화 요약 | MemGPT† |
Zep | 대화 요약 | GPT-4-TURBO |
전체 대화 | Zep | GPT-4O-MINI |
결과는 [3]에서 확인할 수 있습니다.
4.2 심층 메모리 검색(DMR)
심층 메모리 검색 평가는 [3]에 의해 도입되었으며 500개의 다중 세션 대화로 구성되며, 각 대화는 세션당 최대 12개의 메시지를 포함하는 5개의 채팅 세션으로 구성됩니다. 각 대화는 메모리 평가를 위한 Q&A 쌍으로 구성되며, 현재 MemGPT 프레임워크[3]는 gpt-4-turbo를 사용해 93.41 TP3T의 정확도로 성능 메트릭을 선도하고 있으며, 이는 재귀 요약 기준선인 35.31 TP3T보다 크게 향상된 수치입니다.
비교 기준선을 설정하기 위해 전체 대화 컨텍스트와 세션 요약이라는 두 가지 일반적인 LLM 메모리 방법을 구현했습니다. gpt-4-turbo를 사용하면 전체 대화 기준선은 94.41 TP3T의 정확도를 달성하여 MemGPT가 보고한 결과보다 약간 높은 반면, 세션 요약 기준선은 78.61 TP3T를 달성했습니다. gpt-4o-mini를 사용하면 전체 대화는 98.01 TP3T, 세션 요약은 88.01 TP3T로 두 방법 모두 향상된 성능을 보였습니다. 발표된 연구에 충분한 방법론적 세부 사항이 없기 때문에 gpt-4o-mini를 사용한 MemGPT의 결과를 재현할 수 없었습니다.
그런 다음 대화를 수집하고 검색 기능을 사용하여 가장 관련성이 높은 상위 10개 노드와 에지를 검색하여 Zep의 성능을 평가합니다.LLM 판사는 제공된 정답에 대한 인텔리전스의 응답을 비교합니다.Zep은 gpt-4-turbo로 94.81 TP3T, gpt-4o-mini로 98.21 TP3T의 정확도를 달성했습니다. 를 사용하여 MemGPT 및 해당 전체 대화 기준선보다 약간 개선된 결과를 보여주었습니다. 그러나 이러한 결과는 각 대화에 60개의 메시지만 포함되어 있고 현재 LLM 컨텍스트 창에 쉽게 적용할 수 있다는 맥락에서 이해해야 합니다.
DMR 평가의 한계는 규모가 작다는 것 외에도 여러 가지가 있습니다. 저희의 분석 결과 이 벤치마크 테스트의 설계에 심각한 약점이 있는 것으로 나타났습니다. 이 평가는 단일 라운드의 사실 검색 문제에만 의존하고 있으며 복잡한 기억 이해력을 평가할 수 없습니다. 많은 질문에는 대화에 명시적으로 설명되지 않은 '좋아하는 휴식 음료' 또는 '이상한 취미'와 같은 개념을 불러일으키는 모호한 표현이 포함되어 있었습니다. 결정적으로, 이 데이터 세트는 실제 기업의 LLM 인텔리전스 사용 사례에 적합하지 않았습니다. 최신 LLM의 단순한 풀 컨텍스트 접근 방식을 사용하여 달성한 높은 성능은 메모리 시스템을 평가할 때 이 벤치마크의 단점을 더욱 부각시킵니다.
이러한 단점은 대화 길이가 길어질수록 LongMemEval 벤치마크에서 LLM의 성능이 급격히 저하된다는 [7]의 연구 결과에 의해 더욱 강조되며, LongMemEval 데이터 세트 [7]는 보다 길고 일관된 대화, 기업 시나리오의 더 나은 반영, 보다 다양한 평가 질문 세트를 제공함으로써 이러한 단점을 해결합니다.
4.3 롱멤이밸(LME)
실제 엔터프라이즈 애플리케이션에서 LLM 인텔리전스를 대표하는 대화와 질문을 제공하는 LongMemEvals 데이터 세트를 사용해 Zep을 평가했습니다. LongMemEvals 데이터 세트는 대화 길이가 평균 약 115,000토큰으로 기존 LLM 및 비즈니스 메모리 솔루션[7]에 상당한 도전을 제기하며, 이 길이가 상당히 길지만, 여전히 현재 프론티어 모델의 컨텍스트 윈도우 내에 있어 Zep의 성능을 평가할 수 있는 의미 있는 기준선을 설정할 수 있습니다.
데이터 세트에는 단일 세션 사용자, 단일 세션 어시스턴트, 단일 세션 환경 설정, 다중 세션, 지식 업데이트, 시간적 추론 등 6가지 문제 유형이 포함되어 있습니다. 이러한 범주는 데이터 세트에 균일하게 분포되어 있지 않으므로 자세한 내용은 [7]을 참조하시기 바랍니다.
모든 실험은 2024년 12월부터 2025년 1월 사이에 진행되었습니다. 매사추세츠주 보스턴에 위치한 저희 주거지에서 소비자 노트북을 사용하여 AWS us-west-2에서 호스팅되는 Zep의 서비스에 연결했습니다. 이러한 분산 아키텍처로 인해 Zep의 성능을 평가할 때 추가적인 네트워크 지연 시간이 발생하지만, 기본 평가에는 이러한 지연 시간이 포함되지 않았습니다.
답안 평가를 위해 GPT-4o를 사용했으며, [7]에서 제공한 질문별 단서를 제공했는데, 이는 인간 평가자와의 관련성이 높은 것으로 나타났습니다.
4.3.1 LongMemEval 및 MemGPT
Zep와 현재의 최신 MemGPT 시스템[3] 간의 비교 벤치마크를 설정하기 위해, 저희는 LongMemEval 데이터 세트를 사용하여 MemGPT를 평가하려고 시도했습니다. 현재 MemGPT 프레임워크는 기존 메시지 기록의 직접 수집을 지원하지 않기 때문에, 저희는 아카이브 기록에 대화 메시지를 추가하는 방식으로 해결책을 구현했습니다. 하지만 이 접근 방식으로는 성공적인 Q&A를 달성할 수 없었습니다. 성능 데이터를 비교하는 것은 LLM 메모리 시스템의 광범위한 개발에 도움이 될 것이므로 다른 연구팀에서 이 벤치마크 테스트를 평가해 주기를 기대합니다.
4.3.2 LongMemEval 결과
Zep은 정확도와 지연 시간 모두에서 베이스라인에 비해 크게 개선된 것으로 나타났습니다. gpt-4o-mini를 사용한 Zep는 정확도가 기준선 대비 15.21 TP3T 개선된 반면, gpt-4o는 18.51 TP3T 개선되었습니다. 큐 크기가 줄어들면서 지연 시간 비용도 기준선 구현에 비해 크게 감소했습니다.
표 2: LongMemEvals
암기 | 모델링 | mark | 미루다 | 지연 IQR | 평균 컨텍스트 토큰 |
---|---|---|---|---|---|
전체 컨텍스트 | 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 |
전체 컨텍스트 | GPT-4O | 60.2% | 28.9 s | 6.01 s | 115k |
Zep | GPT-4O | 71.2% | 2.58 s | 0.684 s | 1.6k |
질문 유형별로 분석한 결과, Zep를 사용한 gpt-4o-mini는 6개 범주 중 4개 범주에서 개선된 것으로 나타났으며, 단일 세션 선호도, 다중 세션 및 시간적 추론과 같은 복잡한 질문 유형에서 가장 큰 개선이 있었습니다. 또한 Zep는 gpt-4o를 사용할 때 지식 업데이트 범주에서 향상된 성능을 보여줌으로써 더 강력한 모델과 함께 사용할 때 더 효과적이라는 점을 강조했습니다. 그러나 덜 강력한 모델에서 Zep의 시간적 데이터에 대한 이해를 향상시키기 위해서는 추가적인 개발이 필요할 수 있습니다.
표 3: LongMemEvals 문제 유형 분해
문제 유형 | 모델링 | 전체 컨텍스트 | Zep | 증분 |
---|---|---|---|---|
단일 세션 기본 설정 | GPT-4O-MINI | 30.0% | 53.3% | 77.7%↑ |
단일 세션 도우미 | GPT-4O-MINI | 81.8% | 75.0% | 90'6%↑ |
연대기 추론 | GPT-4O-MINI | 36.5% | 54.1% | 48.2%↑ |
멀티 세션 | GPT-4O-MINI | 40.6% | 47.4% | 16.7%↑ |
지식 업데이트 | GPT-4O-MINI | 76.9% | 74.4% | 3.36%↓ |
단일 세션 사용자 | GPT-4O-MINI | 81.4% | 92.9% | 14.1%↑ |
단일 세션 기본 설정 | GPT-4O | 20.0% | 56.7% | 184%↑ |
단일 세션 도우미 | GPT-4O | 94.6% | 80.4% | 17.7%↓ |
연대기 추론 | GPT-4O | 45.1% | 62.4% | 38.4%↑ |
멀티 세션 | GPT-4O | 44.3% | 57.9% | 30.7%↑ |
지식 업데이트 | GPT-4O | 78.2% | 83.3% | 6.52%↑ |
단일 세션 사용자 | GPT-4O | 81.4% | 92.9% | 14.1%↑ |
이러한 결과는 모델 규모에 따라 성능을 개선하는 Zep의 능력을 보여주며, 더 강력한 모델과 함께 사용할 때 복잡하고 섬세한 문제 유형에서 가장 큰 개선이 관찰되었습니다. 특히 지연 시간 개선이 두드러졌는데, Zep은 정확도는 더 높게 유지하면서 응답 시간을 약 901 TP3T 단축했습니다.
단일 세션 도우미 문제에 대한 성능 저하(gpt-4o의 경우 17.71 TP3T, gpt-4o-mini의 경우 9.061 TP3T)는 Zep의 다른 일관된 개선 사항에서 주목할 만한 예외를 나타내며, 이는 다음과 같은 사실을 시사합니다. 추가 연구 및 엔지니어링 작업이 필요함을 시사합니다.
5. 결론
저희는 의미론적 메모리와 에피소드 메모리를 엔티티 및 커뮤니티 요약과 결합하는 그래프 기반 접근 방식인 LLM 메모리에 대한 Zep을 소개해드렸습니다. 저희의 평가에 따르면 Zep은 기존 메모리 벤치마크에서 최첨단 성능을 달성하는 동시에 토큰 비용을 절감하고 훨씬 낮은 지연 시간으로 작동하는 것으로 나타났습니다.
Graphiti와 Zep이 달성한 결과는 인상적이지만, 이는 그래프 기반 메모리 시스템의 예비적인 발전에 불과할 가능성이 높습니다. 이 두 가지 프레임워크를 기반으로 다른 GraphRAG 방법을 Zep 패러다임에 통합하는 등 다양한 연구가 이루어질 수 있으며, 새로운 확장 작업도 이루어질 수 있습니다.
연구에 따르면 GraphRAG 패러다임에서 LLM 엔티티 및 에지 추출을 위한 미세 조정 모델이 비용과 지연 시간을 줄이면서 정확도를 향상시킨다는 것이 입증되었습니다[19][25]. 마찬가지로 그래프티 단서에 대한 미세 조정 모델은 특히 복잡한 대화의 경우 지식 추출을 향상시킬 수 있습니다. 또한, LLM으로 생성된 지식 그래프에 대한 현재 연구는 주로 공식 온톨로지[9][4][17][19][26]가 없는 상태에서 진행되었지만, 도메인별 온톨로지는 상당한 잠재력을 가지고 있습니다. LLM 이전 지식 매핑 작업의 기본이 되는 그래프 온톨로지는 Graphiti 프레임워크에서 더 깊이 탐구할 가치가 있습니다.
적합한 메모리 벤치마크 테스트를 검색한 결과, 기존 벤치마크 테스트는 견고성과 정교함이 부족하고 단순한 핀 찾기 사실 검색 문제[3]를 기본으로 하는 경우가 많아 선택의 폭이 제한되어 있는 것으로 나타났습니다. 현업에서는 메모리 접근 방식을 효과적으로 평가하고 차별화하기 위해 특히 고객 경험 작업과 같은 비즈니스 애플리케이션을 반영하는 추가적인 메모리 벤치마크 테스트가 필요합니다. 특히 기존의 벤치마크 테스트는 구조화된 비즈니스 데이터로 대화 기록을 처리하고 종합하는 Zep의 능력을 평가하기에는 불충분합니다. Zep은 LLM 메모리에 초점을 맞추고 있지만, [17], [27], [28]의 기존 벤치마크 테스트와 비교하여 기존의 RAG 기능을 평가해야 합니다.
비용과 지연 시간을 포함한 생산 시스템의 확장성은 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)。
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...