[Paper Review] LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory

Dobby·2026년 8월 24일

LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory

Abstract

  • 문제: 상용 챗 어시스턴트가 메모리 기능을 탑재하기 시작했지만, 지속적 상호작용에서의 장기 메모리 능력은 충분히 검증된 적이 없다.
  • 벤치마크: 정보 추출(information extraction), 멀티 세션 추론(multi-session reasoning), 시간 추론(temporal reasoning), 지식 업데이트(knowledge updates), 답변 거부(abstention)를 평가하는 500문항 벤치마크 LongMemEval 제안. 채팅 이력 길이는 자유롭게 확장 가능.
  • 평가: 상용 어시스턴트와 long context LLM 모두 지속적 상호작용에서 정확도가 30% 하락
  • 새로운 방법 제안: 장기 메모리 설계를 indexing, retrieval, reading의 3단계로 분해하는 통합 프레임워크를 제안하고, 세션 분해(session decomposition), 사실 증강 키 확장 (fact-augmented key expansion), 시간 인지 쿼리 확장 (time-aware query expansion) 등의 최적화를 통해 메모리 recall과 QA 성능을 개선하였다.

1. Introduction

왜 장기 메모리인가

  • LLM은 자연어로 다양한 과제를 푸는 인상적인 능력을 보여왔으나, 심리 상담이나 비서 업무처럼 장기간의 user-AI 상호작용을 통해 축적된 개인적인 지식에 크게 의존해야 하는 과제에서 한계에 직면한다.
  • 사용자 배경과 선호를 응답에 반영하지 못하면 응답의 정확성과 사용자 만족도가 모두 저하될 수 있다.
  • LLM 기반 어시스턴트를 개인화하려면, 긴 상호작용 이력을 recall하고, 추론하는 능력인 장기 메모리가 필수적이다.
  • 최근 상용 시스템(OpenAI memory, Coze)과 메모리를 갖춘 오픈소스들이 등장하였다. 이들은 채팅 이력을 압축, 인덱싱, 검색하는 기법을 활용해 더 정확하고 개인화된 응답을 생성한다.

기존 벤치마크의 결함

  • 그러나, 장기 상호작용에서의 메모리 능력을 총체적으로 평가하려는 시도는 제한적이었다. 긴 채팅 이력 이해를 평가하는 벤치마크가 몇 개 있지만(Xu et al. 2022a;b, Zhong et al. 2024, Maharana et al. 2024, Du et al. 2024, Kim et al. 2024), 두 가지 중대한 결함이 있다.
  • 결함 1: user-AI의 상호작용을 정확히 반영하지 못한다.
    • 대부분 human-human 대화에만 집중하고, 나머지는 챗 어시스턴트 사용의 상당 부분을 차지하는 과제 지향적 대화(task-oriented dialogues)를 누락한다. 과제 지향 대화는 긴 맥락 입력과 장문 응답으로 인해 암기하기가 어렵다.
    • 또한 이들의 상호작용 이력은 통상 수천 토큰 수준의 조정 불가능한 길이에 머물러, 시스템이 계속 발전하는 상황에서 난이도가 제한된다.
  • 결함 2: 질문이 동적 장기 상호작용에 필요한 메모리 능력의 일부만 평가한다.
    • MemoryBank, PerLTQA는 수많은 세션에 걸쳐 정보를 종합하는 능력이나, 시간적 정보를 추론하는 능력을 충분하게 평가하지 못한다.
    • 최근의 LoCoMo를 포함한 모든 장기 메모리 벤치마크들은, 어시스턴트가 제공한 정보의 검색이나, 업데이트된 사용자 정보에 기반한 추론 평가에 실패한다.

LongMemEval 소개

  • 우리는 챗 어시스턴트의 장기 메모리 능력을 평가하는 포괄적 벤치마크 LongMemEval을 소개한다. LongMemEval은 정보 추출, 다중 세션 추론, 시간적 추론, 지식 업데이트, 답변 거부라는 다섯 가지 핵심 메모리 능력을 시험하는, 500개의 수작업으로 제작한 질문으로 구성된다.
  • 각 질문은 사용자와 어시스턴트 사이의 하나 이상의 과제 지향적 대화 안에 숨겨진 정보를 불러와야 답할 수 있다.
  • ‘needle-in-a-haystack’ 테스트에서 영감을 받아, 각 질문마다 일관되고 길이 조정이 가능한 채팅 이력을 컴파일하는 파이프라인을 설계했다. 챗 시스템은 동적 상호작용을 온라인으로 파싱해 암기하고, 모든 상호작용 세션이 끝난 뒤 질문에 답해야 한다.
  • 대화 이력 길이는 자유롭게 확장 가능하지만, 일관된 비교를 위해 두 가지 표준 설정을 제공한다:
    설정규모
    LongMemEval_S문제당 약 115k 토큰 (약 50세션)
    LongMemEval_M500세션 (약 150만 토큰)
  • 예비 평가에서, long context LLM들은 LongMemEval_S에서 30%~60%의 성능 하락을 보였고, 수동 평가 결과 최첨단 상용 시스템들은 LongMemEval_S보다 훨씬 단순한 설정에서조차 30%~70%의 정확도에 그쳤다.
  • 마지막으로, 우리는 메모리 증강 챗 어시스턴트에 대한 통합적 관점을 제시한다. LongMemEval을 활용해 ‘인덱싱, 검색, 읽기’라는 세 가지 실행 단계와 ‘value, key, query, reading strategy’라는 네 가지 컨트롤 포인트를 포괄적으로 분석했다. 실험을 통해 확인된 효과적인 설계는 다음과 같다.
    • 메모리 value 자체를 key로 사용하는 flat index도 강력한 베이스라인이지만, 키를 추출된 사용자 사실을 덧붙여 확장하면 메모리 recall 능력과 질문 응답이 모두 개선된다.
    • 세션이 아니라 round가 상호작용 이력을 저장하고 활용하는 데 더 최적의 granularity를 갖는다. 개별 사용자 사실(user facts)로까지 더 압축하는 것은 정보 손실 때문에 전체 성능을 해치지만, 다중 세션 추론 정확도는 향상시킨다.
    • 타임스탬프를 사실과 명시적으로 연결하고 검색 범위를 좁히는 쿼리 확장을 제안한다.
    • 완벽한 메모리가 주어져도 검색된 항목을 정확히 활용하는 것은 쉽지 않다. Chain-of-Note와 구조화된 데이터 포맷을 적용하면, 질문 응답도가 개선된다.

2. Related Work

Long-Term Dialogue Benchmarks

  • 대화 시스템의 능력이 향상되면서, 연구는 전통적 대화 모델링 벤치마크(Budzianowski et al. 2018; Wei et al. 2018)를 넘어 장기 대화 이해로 초점을 옮기기 시작했다.
  • 초기 연구는 human-human(Xu et al., 2022a) 또는 human-AI(Xu et al., 2022b) 채팅 이력에 대한 개인화된 응답 생성의 언어 모델링 평가에 집중했다. 메모리 정확도를 더 정밀하게 평가하기 위해, 이후 벤치마크들은 질문 응답(QA) 기반 평가로 이동했다 (Reddy et al. 2019; Zhang & Choi 2021).
    • MemoryBank (Zhong et al., 2024) — 15명 사용자의 며칠에 걸친(multi-day) 채팅 이력과 194개의 수동 작성 probing 질문.
    • LoCoMo (Maharana et al., 2024) — 50개의 장기 채팅 이력과 single-hop, multi-hop, 시간, 상식, 세계 지식, 적대적 추론을 시험하는 질문들.
    • PerLTQA (Du et al., 2024) — 3,409개 대화와 8,593개 질문으로 평가를 확장. 세계 지식, 개인 프로필, 사회적 관계, 사건, 대화 이력을 커버.
    • DialSim (Kim et al., 2024) — TV 쇼 캐릭터 롤플레잉으로 모델의 메모리 능력을 평가하며, 느린 시스템 응답에 페널티를 주는 시간 제약을 도입.
  • 이러한 발전에도 불구하고, 기존 QA 벤치마크들은 장기 user-assistant 상호작용에 결정적인 여러 메모리 능력을 간과한다: 수많은 세션에 걸친 정보 종합, 어시스턴트 측의 정보 회수(recall), 업데이트된 사용자 정보나 복잡한 시간 참조에 대한 추론. 게다가 채팅 이력이 너무 짧아서 과제 지향적 상호작용의 본질을 반영하지 못하는 경우가 많다.

Long-Term Memory Methods

  • 챗 어시스턴트에 장기 메모리 능력을 갖추기 위해 흔히 탐구되는 주요 기법들:
    • long context 입력으로 직접 처리
      • 방대한 이력 정보를 Long context 입력으로 직접 처리하는 방법(Beltagy et al. 2020; Kitaev et al. 2020; Fu et al. 2024; An et al. 2024). 복잡한 아키텍처가 필요 없다는 장점이 있지만, 비효율적이며 lost-in-the-middle 현상에 취약하다.
    • 메모리 모듈 통합
      • 언어 모델에 메모리 모듈을 통합하고, 메모리 능력을 강화하는 특화된 아키텍처 설계와 메모리 능력을 강화하는 특화된 아키텍처 설계와 학습 전략을 제안 (Weston et al. 2014; Wu et al. 2022; Zhong et al. 2022; Wang et al. 2023).
    • 컨텍스트 압축
      • 긴 대화 이력을 압축된 표현으로 응축. LLM 내부 표현(Mu et al. 2023; Chevalier et al. 2023), discrete tokens(Jiang et al. 2023; Xu et al. 2024), 또는 검색 증강 생성(RAG)을 통한 검색 가능한 텍스트 조각 (Shi et al. 2024; Wang et al. 2023; Sarthi et al. 2024; Chen et al. 2023a; Gutiérrez et al. 2024) 형태가 있다.
  • LongMemEval은 어떤 메모리 시스템이든 평가할 수 있지만, 본 논문은 온라인 컨텍스트 압축(online context compression) 관점을 취한다. 각 대화 이력 상호작용 세션은 순차적으로 처리되고 저장되며, 인덱싱과 검색 메커니즘을 통해 on-demand로 접근된다. 이러한 formulation은 최근 연구(Zhong et al. 2024; Gutiérrez et al. 2024) 및 상용 시스템(OpenAI 2024; Coze 2024)과 정합하며, plug-and-play 특성 덕분에 기존 챗 어시스턴트 시스템에 통합하기 쉽다.

3. LongMemEval

3.1. Problem Formulation

  • LongMemEval의 평가는 4-tuple (SS, qq, tqt_q, aa)가 필요하다.
  • 전체 대화 이력 S는 각 세션의 타임스탬프와 세션 내용의 쌍으로 구성된 시퀀스로 정의된다.
  • S ≡ [(t₁, S₁), (t₂, S₂), …, (tNt_N, SNS_N)]
    • 가장 이른 것부터 가장 최근 순으로 정렬된 N개의 대화 이력 채팅 세션 시퀀스.
      • Sᵢ: 사용자와 챗 어시스턴트 간의 멀티 턴 상호작용
      • tᵢ: 세션의 타임스탬프
    • 각 세션은 round(사용자 메시지 1개 + 어시스턴트 응답 1개)로 더 분해될 수 있다.
    • 테스트 시점에 S는 시스템에 한 번에 하나씩 제공된다.
    • qq, tq>tNt_q > t_N: 사용자의 질문과 그 날짜
    • aa: 답을 나타내는 짧은 구절. qq가 open-ended인 경우 선호되는 답변을 기술하는 자연어 rubric.

3.2. Benchmark Curation

  • 신뢰할 수 있는 개인화 어시스턴트를 만드는 데 있어, 동적으로 진화하는 사용자 정보에 대한 온라인 기록(recording), 검색(recalling), 갱신(updating), 추론(reasoniong)을 수행하는 것이 도전 과제. 이 도전을 포괄적으로 반영하기 위해 LongMemEval은 다음의 다섯 가지 핵심 장기 메모리 능력을 평가한다.
    능력원문 정의 번역
    정보 추출 (Information Extraction, IE)사용자 또는 어시스턴트가 언급한 세부 정보를 포함해, 방대한 상호작용 이력에서 특정 정보를 회상하는 능력
    다중 세션 추론 (Multi-Session Reasoning, MR)집계(aggregation)와 비교(comparison)를 수반하는 복잡한 질문에 답하기 위해 여러 이력 세션에 걸친 정보를 종합하는 능력
    지식 업데이트 (Knowledge Updates, KU)사용자 개인 정보의 변화를 인식하고 시간에 따라 사용자에 대한 지식을 동적으로 업데이트하는 능력
    시간적 추론 (Temporal Reasoning, TR)사용자 정보의 시간적 측면에 대한 인식. 명시적 시간 언급과 상호작용의 타임스탬프 메타데이터를 모두 포함한다.
    답변 거부 (Abstention, ABS)상호작용 이력에서 언급되지 않은 정보, 즉 알 수 없는 정보를 찾는 질문임을 식별하고 “모른다”고 답하는 능력
  • 위 능력들을 철저히 평가하기 위해 LongMemEval은 아래의 일곱 가지 질문 유형을 갖춘다.
    • single-session-user / single-session-assistant: 단일 세션 안에서 사용자/어시스턴트가 언급한 정보를 암기할 수 있는가?
      • 사용자: “저는 매일 출퇴근할 때 오디오북을 듣는데, 편도 45분 정도 걸려요.”
      • 질문: “제가 회사까지 출퇴근하는 데 얼마나 걸리죠?”
      • 정답: 편도 45분
    • single-session-preference: 사용자 정보를 활용해 개인화된 응답을 생성할 수 있는가?
      • 사용자: “제 Sony A7R IV와 호환되는 플래시를 추천해 주세요.” / “제 Sony 24-70mm f/2.8 렌즈를 청소하는 가장 좋은 방법은 뭔가요?” / “Sony 카메라 사용자로서 카메라 가방을 업그레이드하려고 해요.”
      • 질문: “제 사진 촬영 장비를 보완할 만한 액세서리를 추천해 줄 수 있나요?”
      • 정답: Sony와 호환되는 액세서리를 선호해서 추천해야 함
    • multi-session (MR): 다중 세션에 걸친 사용자 정보를 통합할 수 있는가?
      • 사용자: “피아노 기술자를 찾아 제 Korg B1을 점검하려고 해요.” / “최근에 검은색 Fender Stratocaster 일렉트릭 기타를 많이 연주하고 있어요.” / “어쿠스틱 기타로 Yamaha FG800을 약 8년 가지고 있었어요.” / “오래된 드럼 세트인 5-piece Pearl Export를 팔까 생각 중이에요.”
      • 질문: “현재 제가 가지고 있는 악기는 몇 개인가요?”
      • 정답: 4개
    • knowledge-update (KU): 사용자의 삶에서의 상태 변화를 인식하고 메모리를 그에 맞게 업데이트할 수 있는가?
      • 사용자: 이전: “다음 여행을 계획 중이에요. 지난달 가족과 Hawaii에 갔을 때 스노클링을 정말 즐겼어요.” → 이후: “사실 Paris에 가볼까 생각 중인데, 지난주 가족과 거기에 다녀왔어요. 정말 멋졌어요.
      • 질문: “가장 최근 가족여행은 어디로 갔나요?”
      • 정답: Paris
    • temporal-reasoning (TR): 메타데이터의 타임스탬프와 명시적인 시간 참조를 모두 사용하여 추론할 수 있는가?
      • 사용자: 1/22: “오늘 화학 교수인 친구와 Science Museum의 비하인드 투어를 다녀왔어요.” / 3/11: “어제 아빠와 Natural History Museum 가이드 투어에 갔어요.” / 4/18: “이번 달 History Museum에서 고대 문명 강의를 들었어요.”
      • 질문: 6/25: “친구와 마지막으로 박물관에 간 뒤 몇 달이 지났나요?”
      • 정답: 5개월
    • abstention (ABS): 위의 질문 유형들 중에서 30개를 뽑아서 거짓 전제(false premise) 질문으로 변형한 뒤, 이에 대해 모델이 올바르게 답변을 거부할 수 있는가?
      • 사용자: “기존 10갤런 수조를 업그레이드했어요. 제 베타 물고기 Bubbles가 있어요.” / “물고기가 숨을 곳을 늘리려고 20갤런 수조에 장식을 추가했어요.”
      • 질문: “제 30갤런 수조에는 물고기가 몇 마리 있나요?”
      • 정답: 30갤런 수조를 가지고 있다는 언급 자체가 없으므로 답할 수 없음

Question Curation

  • 우리는 라이프스타일, 소유물(belongings), 삶의 사건(life events), 상황 맥락(situations context), 인구통계 정보(demographic information)에 걸친 164개의 사용자 속성의 온톨로지를 정의한다.
  • 각 속성에 대해 LLM을 활용해 속성 중심의 사용자 배경 문단을 생성한다. 각 문단은 사용자의 삶의 경험에 대한 상세한 논의를 포함한다.
  • 질문을 만들기 위해 문단 하나를 무작위로 샘플링하고, LLM으로 여러 시드 (질문, 답) 쌍을 제안하게 한다. LLM이 제안한 질문들은 깊이와 다양성이 부족하므로, 인간 전문가가 모든 질문을 수동으로 필터링하고 다시 작성한다. 그런 다음 답을 하나 이상의 증거문(evidence statements)으로 수동 분해한다 (선택적으로 타임스탬프 포함)
  • 사람이 구축한 사용자 속성 온톨로지 예시 (Appendix A.1)

  • user-assistant 채팅에서 흔히 언급되는 주제를 반영하도록 수작업으로 구축.
    • 배경 샘플링: 각 속성에 대해 Llama 3 70B Instruct에게 사용자 기억과 경험 서술하는 배경 문단을 생성하도록 한다.
    • 질문 구축: 생성된 배경에 기반해 Llama 3 70B Instruct가 유형별 질문/답을 제안한다. 추가적으로 temporal-reasoning, multi-session, single-session-preference 유형은 GPT-4o로도 질문을 제안하게 했다. 그럼에도 대부분의 질문이 불만족스러워서 사람이 필터링하고 편집했다. 유형당 약 1,000개의 질문이 생성되었다.
    • 질문 혹은 증거문에 시간에 대한 언급이 있었다면 이 단계에서 타임스탬프를 부여하며, 이 타임스탬프는 이후 대화 이력 구성 단계에서 항상 해당 증거 세션에 사용된다. 그 외에는 무작위로 부여된다.

Evidence Session Construction

  • 각 evidence statement별로 self-chatting을 통해 하나의 evidence session을 생성하고, 해당 정보가 대화 속에서 간접적으로 드러나도록 한다.
  • 사용자 역할의 LLM은 증거문을 간접적으로 전달하도록 지시받는다. 예컨대 “지난 달에 새 차를 샀어”라고 직접 진술하는 대신, 자동차 보험에 대한 도움을 요청하면서 그 정보를 부수적으로 드러낼 수 있다. 이러한 접근은 대화에서 명시적으로 강조되지 않은, 사용자 세부 정보를 인식하고 암기할 것을 요구하므로, 벤치마크의 난이도를 높인다.
  • 데이터 품질을 보장하기 위해 모든 증거 세션을 수동으로 검수하고 편집하였다.
    • 증거 포함 여부 검증
    • 증거문을 서로 다른 대화 위치에 분산시키기
    • 진술을 더 자연스럽고 구어적인 표현으로 재작성
  • 또한, 각 증거 세션 안에서 증거문의 위치를 꼼꼼히 주석을 달았다. 시간 정보를 수반하는 질문에는 증거 세션과 질문 양쪽에 수동으로 타임스탬프를 추가하였다. 대부분의 질문은 여러 세션(최대 6개)의 증거를 요구하며, 증거문의 세션 내 위치도 다양하다.

History Compliation

  • 각 질문에 대해 LongMemEval은 일관된(coherent) user-AI 채팅 이력을 컴파일한다.

  • 무관한(정답과 관계없는) user-AI 채팅 세션들을 샘플링하고, 증거 세션들을 그 중간에 무작위로 삽입하며, 모든 세션에 그럴듯한 타임스탬프를 부여한다. 무관한 세션의 출처는 다음과 같다:
    • (1) 정답과 충돌하지 않는 서로 다른 속성들을 기반해 동일한 파이프라인으로 시뮬레이션한 self-chat 세션
    • (2) ShareGPT (Zheng et al., 2023), UltraChat (Ding et al., 2023) 등 공개된 user-AI 스타일 채팅 데이터
  • 이러한 설계는 최소한의 충돌로 확장 가능한 현실적인 채팅 이력을 만든다. 파이프라인은 임의의 길이의 채팅 이력을 컴파일할 수 있으며, 표준 설정으로 LongMemEval_S (질문당 약 115k 토큰), LongMemEval_M (500세션, 약 150만 토큰)을 제공한다.
  • Appendix A.2 - 대화 이력 구성 3단계 파이프라인
    • 세션 풀(sesison pool) 구성: 질문마다 ShareGPT, UltraChat, 그리고 같은 파이프라인으로 다른 속성에 대해 시뮬레이션한 세션의 새 출처에서 대화 이력 세션을 뽑는다. 이 풀은 non-evidence 세션이 증거 세션과 유사한 주제와 형식을 갖도록 보장하면서, 충돌 정보는 배제한다.
    • 세션 샘플링: x개의 세션을 포함하는 이력을 만들 때 위 세 출처에서 무작위 샘플링해 증거 세션과 함께 섞는다 (shareGPT 25%, UltraChat 25%, 시물레이션 세션 50%). 증거 세션들이 특정 순서를 따라야 하면 셔플 후 순서를 맞바꾼다.
    • 타임스탬프 결정: 이력 순서를 따라 무작위로 타임스탬프를 부여한다. 증거 세션에 사전 정의된 타임스탬프가 있으면 이를 앵커로 삼아 전후 non-evidence 세션의 타임스탬프 범위를 결정한다. 그 외에는 2023년 5월 안에서 무작위 부여한다.

3.3. Evaluation Metric

  • Question Answering: 정답이 유연한 형태를 취할 수 있으므로, LLM(GPT-4o-2024-08-06)으로 응답 품질을 평가하였다. 메타 평가 연구를 통해 인간 전문가와 97% 이상의 일치율을 달성함을 확인하였다.
  • Memory Recall: LongMemEval은 인간이 라벨링한 답 위치 라벨을 포함하므로, 검색 지표를 쉽게 계산할 수 있다. Recall@K와 NDCG@k를 보고한다.

3.4. LongMemEval Represents a Significant Challenge

상용 시스템

  • 사용자가 어시스턴트와 채팅하는 동안 암기된 사용자 사실 집합을 유지하는 두 상용 시스템 ChatGPT (OpenAI, 2024)와 Coze (Coze, 2024) 를 평가했다.
  • 이 시스템들은 웹 인터페이스로만 메모리 기능을 지원하므로, 97개의 질문을 무작위로 선택하고 3~6개 세션의 짧은 채팅 이력(LongMemEval_S의 약 1/10)을 만들었다. 인간 라벨러가 세션 단위 및 턴 단위로 챗 어시스턴트와 상호작용을 하고, 마지막에 새로운 세션에서 질문을 던졌다.

  • ChatGPT와 Coze 모두 오프라인 읽기 대비 37%, 64% 성능 하락을 보였다.
  • 관찰된 실패 양상: ChatGPT는 대화가 이어지면서 결정적인 정보를 덮어쓰는 경향이 있었고, Coze는 간접적으로 제공된 사용자 정보를 기록하는 데 자주 실패했다.

Long-Context LLMs

  • 전체 이력에 대한 오프라인 읽기로는 쉽게 풀릴 수 있는가?
  • Oracle retrieval 설정(증거 세션만 컨텍스트로 주고 답변) 대비, 전체 LongMemEval_S 대화 이력을 읽게 하면, Chain-of-Note 기법 적용 여부와 무관하게 30%~60%의 성능 하락을 보였다.
  • LongMemEval_S의 대화 이력은 짧은 편(약 50세션)이므로, 상호작용 이력이 확장될수록 성능은 더 나빠질 가능성이 크다.
  • 종합하면, 이 발견들은 가장 유능한 현재의 long context LLM들조차 효과적인 메모리 메커니즘 없이는 계속 늘어나는 상호작용 이력을 감당하기 어렵다는 것을 시사한다.

4. A Unified View of Long-Term Memory Assistants

4.1. Long-Term Memory System: Formulation

  • 이 절에서는 챗 어시스턴트를 위한 3단계 장기 메모리 모델을 formulation한다. 이 모델은 단순하지만 기존 장기 메모리 어시스턴트 연구들에 대한 통합적인 관점을 제공한다.
  • 장기 메모리를 거대한 key-value 데이터 스토어로 formulation한다. [(k₁, v₁), (k₂, v₂), …]
    • kik_i는 이질적(heterogeneous)일 수 있으며, 이산적(discrete)일 수도 있고 연속적(continuous)일 수도 있다. 이산적인 경우 키는 문장, 문단, 사실, 엔티티 등이 될 수 있고, 연속적인 경우 키는 예컨대 어떤 입력 하에서의 모델 내부 표현일 수 있다.
    • viv_i는 중복될 수 있다.
    • key: 검색용 표현, value: 메모리에 저장되고 검색 후 reader가 읽게 되는 내용/표현
      • value에는 전체 session이나 하나의 round처럼 원래 대화가 들어갈 수도 있고, 이를 압축한 summary나 user fact가 들어갈 수도 있다. 반면 key는 사용자의 질문과 비교하여 어떤 value를 가져올지 결정하기 위한 검색용 표현이다. 따라서 K=V는 별도의 검색용 표현을 만들지 않고 value 자체를 key로 사용한다는 의미이다. 예를 들어 기본 dense retrival 설정에서는 이 key를 embedding하여 사용자의 query와 유사도를 비교한다.
  • 메모리 증강 어시스턴트의 3단계
    • (1) 인덱싱: 각 이력 세션(tit_i, SiS_i)를 하나 이상의 key-value 항목으로 변환
    • (2) 검색: 검색 쿼리를 구성하고 가장 관련성 높은 상위 k개 항목을 수집
    • (3) 읽기: LLM MM이 검색 결과를 읽고 응답을 생성

  • K = V 라는 것은 Value와 같은 내용은 Key로 사용한다는 뜻. 일반적으로 하는 VectorDB RAG. Value가 Document라면 key는 document의 검색용 representation*

4.2. Long-Term Memory System: Design Choices

챗 어시스턴트의 장기 메모리의 결정적인 컨트롤 포인트 네 가지를 식별한다. 기존 연구의 설계 선택과 한계를 분석하고 최적화를 제안한다.

  • CP 1 Value: value는 메모리에 저장되는 각 세션의 형식과 granularity를 나타낸다.
    • user-AI 채팅 세션은 흔히 길고 여러 주제를 다루므로, 세션 전체를 하나의 항목으로 저장하면 검색과 읽기를 저해할 수 있다.
    • 반대로 기존 연구(Zhong et al. 2024, Du et al. 2024)처럼 세션을 요약이나 사용자 사실로 압축하면 정보 손실이 생겨 상세한 질문에 답하는 성능을 해칠 수 있다.
    • 5.2 절에서 세션 전체 저장 / 세션의 라운드 분해 / 요약 및 사실 추출 적용의 세 가지 value 표현 전략을 비교한다.
  • CP 2 Key: 세션이 분해되고 압축되어도 각 항목에는 여전히 상당한 정보가 담기고, 그중 일부만이 사용자 쿼리와 연관된다.
    • 따라서 기존 연구의 흔한 관행처럼 value 자체를 key로 쓰는 것은 suboptimal한 것일 수 있다.
    • 5.3 절에서 키 확장 (key expansion) 방법을 도입한다. value에서 요약, keyphrase, 사용자 사실, 타임스탬프 부착 사건을 추출해 인덱스를 보강한다. 이러한 최적화를 통해 핵심 정보를 부각하고 다중 경로(multiple pathways) 검색을 가능케 한다.
  • CP 3 Query: 단순한 사용자 쿼리라면 위의 key-value 최적화로 높은 검색 정확도를 얻을 수 있다.
    • 그러나 “지난 주말에 추천해줬던 식당이 어디였지?”라는 질문처럼 시간 참조를 수반하는 쿼리에는 단순한 유사도 검색만으로는 불충분하다.
    • 5.4. 절에서 시간 인지 인덱싱 / 쿼리 확장 전략으로 대응한다. value를 타임스탬프 부착 사건으로 인덱싱하고, 검색을 관련 시간 범위 내의 항목으로 제한한다.
  • CP 4 Reading Strategy: 복잡한 쿼리에 답하려면 다수의 메모리 항목 검색이 필요할 수 있다.
    • 복잡한 쿼리에 답하려면 다수의 메모리 항목 검색이 필요할 수 있다. 앞의 설계들로 검색 정확도를 높여도, LLM이 그 방대한 컨텍스트 위에서 효과적으로 추론할 수 있다는 보장은 없다 (Shi et al. 2023; Liu et al. 2024).
    • 5.5 절에서 답하기 전에 핵심 정보를 추출하는 Chain-of-Note와, structured format prompting 같은 최적화가 읽기 성능을 높이는 데 결정적인 역할을 함을 보인다.

전체 흐름

5. Experiment Results

5.1. Experimental Setup

  • LLM: GPT-4o, Llama 3.1 70B Instruct, Llama 3.1 8B Instruct
  • Retirever: 1.5B Stella V5
  • 인덱싱 단계: Llama 3.1 8B Instruct로 요약, keyphase, 사용자 사실, 타임스탬프 부착 사건을 추출한다. 세션 혹은 라운드를 key로 사용할 때는 사용자 측 발화만 유지한다.
  • 읽기 단계: 검색된 항목은 reader 모델의 시간적 일관성 유지를 돕기 위해 항상 타임스탬프 순으로 정렬한다. 기본값으로 Chain-of-Note와 JSON 포맷을 적용한다.
  • 여기서 대화를 압축하는 방식인 summary, keyphrase, 사용자 사실(user fact)의 차이는 다음과 같다.
    • summary: 대화의 주요 주제와 핵심 정보를 짧은 문단으로 요약한 것
    • keyphrase: 대화를 대표하는 핵심 단어나 구를 추출한 것
    • user fact: 사용자의 개인 정보, 경험, 사건, 선호, 숫자, 장소, 날짜 등을 각각 독립적인 사실 문장으로 추출한 것
    • 예를 들어 “나는 회사까지 편도 45분이 걸리고 출퇴근하면서 오디오북을 듣는다”라는 대화가 있다면, summary는 대화 전체를 짧게 요약하고, keyphrase는 출퇴근; 45분; 오디오북처럼 표현하며, user fact는 “사용자의 출퇴근 시간은 편도 45분이다”처럼 하나의 독립적인 사실로 만든다.

5.2. Value: Decomposition Improves RAG Performance (CP1)

  • LongMemEval_M을 사용하여 평가한다.
  • Figure 5에서 보듯, 세션을 라운드로 분해하면 GPT-4o reader의 읽기 성능이 크게 향상되고, Llama 3.1 8B Instruct reader에서는 round로 분해하지 않은 세션과 유사한 성능을 보인다.
  • 그러나 토큰 효율에도 불구하고, 세션이나 라운드를 추출된 요약/사실로 대체하면 정보 손실로 인해 QA 성능이 부정적으로 영향받는다.
  • 다중 세션 추론 질문은 유일한 예외로, 여기에서는 사실(fact) 분해가 일관되게 성능을 향상시킨다. 우리는 이것이 사실 분해가 모든 세션에 걸쳐 같은 유형의 정보를 더 균일하고 단순화된 형식으로 추출해서, 검색과 읽기를 돕기 때문이라고 가설을 세운다.
  • 최적 토큰 예산은 reader의 능력에 따라 달라진다. Llama 3.1 8B Instruct의 성능은 검색 토큰 3k 를 넘으면 급락하는 반면, GPT-4o는 20k 이상을 검색해도 계속 향상된다.

→ round vs session vs fact

  • 세션은 너무 크고 fact는 너무 작고 라운드가 적정한 절충점.

5.3. Key: Multi-Key Indexing Improves Retrieval and RAG (CP2)

  • Table 3에서는 value를 응축한 요약, keyphrase, 사용자 사실이 value 자체보다 더 나은 key가 될 수 있는지 탐구한다.
  • 더 집중된 의미 (focused semantics)에도 불구하고, 이 응축된 형태들을 단독으로 쓰는 것은 메모리 검색 성능을 향상시키지 못한다. 우리는 그 원인이 retriever가 이미 긴 텍스트의 의미를 효과적으로 다루는 능력을 갖추었기 때문이라고 가설을 세운다.
  • 압축이 부각하는 정보와 원래 값의 완전성을 모두 활용하기 위해, 간단한 문서 확장(document expansion) 기법을 적용했다. 압축된 정보를 인덱싱 시점에 원래 값과 연결해 key를 구성한다.
    • 여기서 K = V + fact는 원래 Value용 Key와 fact용 Key를 각각 따로 검색한 뒤 결과를 합친다는 의미가 아니다. 저자들은 Value에서 추출한 user fact를 원래 Value 앞에 붙여 하나의 확장된 Key를 만들고 이를 인덱싱한다.
    • 즉, 원래 대화가 가진 풍부한 맥락은 유지하면서, “사용자의 출퇴근 시간은 편도 45분이다”와 같이 검색에 유리한 명시적 사실을 추가하는 방식이다. 반대로 원문용 Key와 fact용 Key를 별도로 만들고 검색 순위를 나중에 병합하는 방법도 실험했지만, Appendix E.3에서는 이 방식이 더 낮은 성능을 보였다.
  • 이러한 접근은 특히 사용자 사실을 쓸 때, 모든 모델에 걸쳐 recall@k + 9.4%, 최종 정확도 +5.4%의 개선을 달성했다.
  • Appendix E.2에서 다른 retriever들(BM25, Contriever)을 추가 분석한 결과, 다른 retriever에서는 세션을 value granularity로 사용할 때 요약, keyphrase, key 확장도 Recall@5를 개선할 수 있었다.

5.4. Query: Time-Aware Query Expansion Improves Temporal Reasoning (CP3)

  • 메타데이터와 사용자 발화 양쪽에 존재하는 시간 정보를 활용해 time-sensitive query에 올바르게 답하기 위해, 시간 인지 인덱싱/쿼리 확장 (time-aware indexing and query expansion)을 도입한다.
    • 인덱싱: value를 그 안에 담긴 사건들의 날짜를 추가해서 인덱싱한다.
    • 검색: LLM MTM_T가 시간 민감 쿼리에서 시간 범위를 추출하고, 이를 사용해 다수의 무관한 값들을 필터링한다.
  • Table 4에서 보듯 이러한 설계는 라운드를 value로 쓸 때 평균 +11.3%, 세션을 값으로 쓸 때 +6.8%의 검색 개선을 가져온다. 이러한 개선은 인덱싱에 key 확장을 적용해도 일관되게 유지된다.

  • 또한 이 방법의 효과는 쿼리에서 시간 범위를 정확하게 추론하기 위해 강한 LLM을 MTM_T로 쓰는 것에 의존함을 발견했다. Llama 8B는 수많은 in-context 예시를 줘도 시간 단서를 환각하거나 놓치는 등 정확한 시간 범위 생성에 어려움을 겪는다.

5.5. Improving Reading with Chain-of-Nonte and Structured Format (CP4)

  • LongMemEval은 여러 세션에 걸친 종합을 요구하므로, 최적의 메모리 검색 메커니즘이라도 모든 관련 정보를 담으려면 긴 컨텍스트를 반환해야 한다. 긴 검색 컨텍스트를 다루는 모델 능력을 강화하기 위해 두 가지 핵심 최적화를 적용한다.
    • (1) 구조화된 JSON 포맷으로 검색 항목 제시 (Yin et al., 2023): 모델이 메모리 항목들을 ‘읽기용 데이터’로 명확히 인식하도록 돕는다.
    • (2) Chain-of-Note(CoN) 읽기 접근 (Yu et al., 2023): LLM이 각 메모리 항목에서 먼저 정보를 추출한 뒤 그 노트에 기반해 추론하도록 지시한다. 이는 긴 컨텍스트 읽기를 ‘중요한 세부 내용의 복사’와 ‘더 간결한 노트에 대한 추론’이라는 두 개의 더 단순한 하위 과제로 효과적으로 분해한다.
  • Figure 6에서 oracle 검색 설정(증거 세션만 제공)으로 읽기 방법들을 평가했다.
  • 완벽한 검색이 주어져도 suboptimal한 읽기 전략들은 GPT-4o 기준 최선의 접근법 대비 최대 10 절대 포인트의 하락을 낳는다.

  • CoN을 적용하지 않으면 JSON 포맷이 자연어 포맷을 일관되게 능가하지 않는다. 그러나 CoN과 함께라면 JSON 포맷은 다양한 능력의 reader LLM들에게 일관되게 이득이 된다.
  • Appendix E.5 - 오류 분석
    • 최선의 메모리 설계 (value=round, 사용자 사실 key 확장, CoN 읽기, Stella v5 1.5B retriever, top-10, JSON 구조화 프롬프트)에서 여러 LLM의 오류 원천을 분석한다.
    • 검색은 맞았는데 생성이 틀린 경우 (Correct R, Wrong G)가 전체 인스턴스의 15%~19%, 오류 인스턴스의 40%~50%에 해당한다. 이 비율은 더 약한 reader LLM일수록 더 높다. 즉 읽기 전략에는 여전히 큰 개선의 여지가 있다.
    • reader LLM이 올바른 정답을 출력하려면 약 90%의 경우 올바른 검색이 필요했다. 나머지 10%는 대부분 knowledge-update 유형으로, retriever가 업데이트된 지식만 찾고 업데이트 이전의 정보를 찾지 못한 경우, 우리의 엄격한 검색 평가 기준은 검색 실패로 간주하지만 답은 맞을 수 있다.
    • 종합하면 이 결과는 LongMemEval의 높은 품질을 부각한다. reader LLM은 올바른 메모리 검색 없이 지름길(shortcut)로 정답을 맞힐 수 없다.

6. Conclusion

  • 본 논문에서 우리는 챗 어시스턴트의 장기 메모리 능력을 ‘정보 추출, 다중 세션 추론, 시간적 추론, 지식 업데이트, 답변 거부’에 걸쳐 평가하도록 설계한 LongMemEval을 소개했다.
  • 광범위한 실험을 통해, 현재 시스템들이 상당한 성능 하락을 보였다.
  • 인덱싱, 검색, 읽기 단계에 걸친 핵심 설계 선택지를 분석함으로써 세션 분해(session decomposition), 사실 증강 키 확장(fact-augmented key expansion), 시간 인지 쿼리 확장(time-aware query expansion) 같은 효과적인 전략을 제안했고, 이들은 메모리 검색과 질문 응답 성능을 함께 개선했다.
profile
언어를 좋아하는 AI 엔지니어

0개의 댓글