- AI Dev - 인공지능 개발자 모임
- 정보공유
- 챗봇 딥러닝
저희와 비슷하게 AI Companion을 서비스하고 있는 회사와 미팅을 했습니다. 그중 한가지 주제가 메모리였습니다. AI와 애착을 형성하려면 장기기억은 필수입니다. 우리가 함께한 경험을 공유하지 못하면 몰입이 바로 깨지니까요.
지금도 몇몇 서비스들은 장기기억 능력이 있습니다. 최근에는 챗GPT도 메모리가 추가되었습니다. 보통 이전 대화를 일정 대화길이마다 요약하고 이를 벡터DB에 저장합니다. 그리고 질문과 비슷한 내용을 벡터DB에서 찾아서 LLM에 입력으로 같이 넣어줍니다.
이런 RAG는 기능형 챗봇에서는 꽤 잘 동작합니다. 회사 주소가 뭐야 하고 물어보면 주소 정보를 벡터DB에서 검색하여 LLM이 정확히 대답합니다. 하지만 일상대화에서는 상황이 다릅니다. 보통 친구들끼리 얘기할때 명확하게 이전 내용을 물어보지 않습니다. 그냥 대화하다보면 자연스럽게 과거 기억을 떠올려 말하기 마련입니다. 검색 자체가 안되기 때문에 RAG로 장기기억을 구현하기가 어렵습니다.
장기기억은 결국 RAG보단 그냥 요약된 전체 기억을 입력에 넣는게 더 효과적입니다. 요즘 LLM의 컨택스트 길이도 커졌으니까요. 다만 비용이 문제입니다. 최근 기억 요약은 최대한 그대로 유지합니다. 반면에 오래된 기억은 다시 하나로 요약해서 압축하는 방식도 가능합니다.
그와 별개로 유저 프로파일을 만들 수도 있습니다. 미리 생일, 취미, 좋은거, 싫은거 등등 카테고리를 정합니다. 매 대화마다 별도의 LLM 처리를 하여 프로파일 문장을 뽑아냅니다. 이렇게 프로파일을 구축하고 이를 입력에 계속 같이 넣습니다. 미리 카테고리를 정하지 않고 그래프 형식으로 추가할 수도 있습니다.
사실 저도 테스트를 안해본 부분도 있어서 정확하진 않습니다. 다만 지금처럼 RAG 기반의 장기기억은 한계가 분명합니다. 앞으로 LLM 비용이 싸지고 컨택스트 길이가 커지면 장기기억 문제도 어느정도는 해결되리라 생각합니다.