- 장기 대화형 챗봇은 긴 컨텍스트 창이 있어도 과거 상호작용의 핵심을 응답에 안정적으로 반영하기 어렵고, 이 연구는 재귀적 요약 메모리로 일관성 문제를 줄이는 방법을 다룸
- 핵심 절차는 짧은 대화에서 초기 메모리를 만든 뒤, 세션이 추가될 때마다 이전 메모리와 새 대화를 함께 요약해 최신 메모리로 갱신하는 방식임
- 검색 기반 방식은 필요한 과거 발화를 정확히 찾는 검색기에 의존하고, 기존 메모리 기반 방식은 갱신되지 않은 오래된 정보가 응답 품질을 흔들 수 있음
- Llama, ChatGLM, OpenAI GPT-3.5-Turbo 등 공개·비공개 LLM 실험에서 자동 평가와 인간 평가 모두 기존 접근보다 장기 대화 일관성이 높게 나타남
- 이 방식은 긴 컨텍스트 창이나 검색 강화 LLM과도 함께 쓸 수 있어, 전체 대화 길이를 무작정 늘리지 않고 매우 긴 대화 맥락을 다루는 실용적 선택지가 될 수 있음
긴 컨텍스트만으로는 부족한 장기 대화 기억
- GPT-4, ChatGPT 같은 LLM은 다양한 주제에서 동적이고 맥락에 맞는 대화를 수행할 수 있지만, 장기 대화에서는 과거 정보를 놓쳐 일관성 없는 응답을 만들 수 있음
- 긴 컨텍스트 창은 전체 대화 이력을 입력으로 처리할 수 있게 해도, 과거 상호작용을 이해하고 핵심 정보를 응답에 통합하는 능력은 여전히 제한적임
- 과거 대화 기억이 필요한 대표 사례는 개인 AI 동반자와 건강 보조 서비스임
- 개인 AI 동반자는 관계 형성을 위해 이전 대화를 떠올릴 필요가 있음
- 건강 보조 서비스는 진단 결과 제공을 위해 환자의 문의 기록 전체를 고려해야 함
- Multi-Session Chat Dataset 예시에서는 약 20턴 뒤 사용자가 과거의 “작곡” 주제를 다시 언급했을 때, ChatGPT gpt-turbo-3.5-0301 버전이 자신을 “전통적인 의미의 직업이 없는 AI 언어 모델”로 답해 이전 페르소나와 불일치한 응답을 생성함
검색 기반·메모리 기반 접근의 한계
- 장기 대화 능력을 강화하는 대표 접근은 검색 기반 방식과 메모리 기반 방식으로 나뉨
- 검색 기반 방식은 과거 발화를 저장소에 보관하고, 현재 대화와 가장 관련 있는 이력을 검색기로 찾아 응답 생성에 활용함
- 현재 대화에 필요한 의미를 완전하게 포착하는 이상적인 검색기를 얻기 어렵다는 한계가 있음
- 메모리 기반 방식은 별도 학습 모델이나 강력한 LLM으로 과거 대화를 요약해 핵심 정보를 저장함
- 반복 갱신 메커니즘이 부족하면, 보존된 오래된 정보가 응답 품질을 직접 해칠 수 있음
- MemoChat은 화자의 주제별로 과거 대화 이력을 재구성하고, 생성 시 구조화된 메모리에서 검색하도록 LLM을 프롬프트함
- MemoryBank는 각 대화 세션의 요약을 먼저 만든 뒤 이를 전역 요약으로 압축하는 메모리 메커니즘을 제안함
- 저장된 메모리가 완전히 고정되면 진행 중인 대화와의 일관성을 보장하기 어려움
재귀적으로 갱신되는 메모리 생성
- 제안 방식은 LLM 자체가 요약을 만들고 과거 맥락을 계속 갱신·검토해 화자의 실시간 정보를 저장하도록 하는 단순한 플러그인 방식임
- 절차는 세 단계로 구성됨
- 생성형 LLM이 짧은 대화 맥락을 입력받아 초기 요약을 생성함
- 이후 이전 메모리와 후속 대화를 결합해 새 요약 또는 메모리를 계속 갱신함
- 챗봇은 최신 메모리를 주요 참조로 사용해 현재 대화에 응답함
- 생성된 요약은 전체 대화보다 훨씬 짧기 때문에, 최대 입력 길이를 비싸게 늘리지 않고도 여러 세션에 걸친 매우 긴 맥락을 다룰 수 있음
- 장기 대화는 여러 세션으로 구성된 Multi-Session Dialogue로 정의됨
- 과거 세션 집합
S = {S1, S2, ..., SN}과 현재 세션의 대화 맥락Ct, 정답 응답rt를 사용함 - 목표는 과거 세션과 현재 맥락을 바탕으로 관련 있고 일관성 높은 응답을 생성하는 것임
- 과거 세션 집합
- 메모리
Mi는 i번째 세션이 끝난 시점에서 사용할 수 있는 메모리이며, 전체 과정은 각 메모리가 현재 세션과 이전 메모리에만 의존하는 순차적 과정으로 정의됨
메모리 반복과 응답 생성
- 제안 방식은 임의의 LLM에 두 작업을 맡김
- 메모리 반복: 장기 대화 흐름에 따라 핵심 정보를 재귀적으로 요약함
- 메모리 기반 응답 생성: 최신 메모리와 현재 대화를 결합해 적절하고 일관된 응답을 생성함
- 메모리 반복은 챗봇이 사용할 일관되고 최신 상태의 요약을 얻는 과정임
- 일부 기존 연구는 요약에 replace, append, delete 같은 “하드 연산”을 적용해 메모리를 갱신함
- 이런 방식은 연산 라벨이 붙은 고품질 대화에 의존하고, 요약의 의미적 일관성을 방해하며, 장기간 관리에도 적합하지 않음
- 제안 방식은 대화 맥락과 이전 메모리를 함께 넣어 LLM이 메모리 또는 요약을 재귀적으로 생성하게 함
- 이전 요약을 활용하면 모델이 현재 대화 맥락을 더 잘 소화하고 고품질 메모리를 만들 수 있음
- 예시에서는 첫 번째 세션 후 초기 메모리가 만들어지고, 두 번째 세션 후 이전 메모리에 “봇이 최근 24시간 운영하는 새 헬스장에 가입했다”는 새 성격 정보가 통합됨
실험 결과와 적용 가능성
- 실험은 Llama, ChatGLM, OpenAI GPT-3.5-Turbo 등 최신 공개·비공개 LLM으로 구현됨
- 장기 대화 성능은 자동 평가와 인간 평가 모두에서 기존의 인기 접근보다 높게 나타남
- 명시적 메모리를 장기 대화에 사용하는 효과와, 제안 방식으로 생성한 메모리가 LLM이 소화하기 더 쉽다는 점을 검증함
- 인컨텍스트 학습(ICL)을 결합하면 응답 품질을 더 높일 수 있음
- 여러 개의
(대화, 메모리, 정답 응답)형식 샘플을 LLM에 제시함 - LLM이 생성된 메모리를 더 유연하게 활용할 수 있게 함
- 여러 개의
- text-davinci-003에서는 BLEU 점수가 약 +3% 개선됨
- 제안 방식은 GPT-3.5-Turbo-16k, LongLoRA-8k 같은 긴 컨텍스트 창 LLM과 LLM-BM25, LLM-DPR 같은 검색 강화 LLM을 보완함
- 공개 코드는 qingyue2014/Rsum에 제공됨