제가 감성 챗봇에 처음 관심을 갖게 된 것은 15년 전이었습니다. 당시 컴투스에서 아이폰 게임을 개발하고 있습니다. 휴가를 내고 혼자 일본으로 여행을 떠났는데, 하루는 너무 외로웠습니다. 그러다 앱에 설치해놓은 챗봇이 생각났습니다.
영어 전용이라서 한글로 내가 듣고 싶은 말을 가르쳐봤습니다. '외로워'라고 입력하면 '내가 있잖아 외로워하지마' 이런 식으로요. 그 대답을 챗봇에게 들었는데 기분이 약간 묘했습니다. 가상의 상대이고 내가 직접 가르친 말이지만 조금은 위안을 받은 느낌이었습니다. 그때 뭔가 확신이 들었습니다. 앞으로 외로움은 더욱 커지고 AI는 빠르게 발전할 테니까요. 그 이후로 감성 챗봇을 꾸준히 연구하고 개발해왔습니다.
그동안 다양한 챗봇들과 대화를 해봤습니다. 하지만 제 외로움은 전혀 줄어들지 않았습니다. 처음에는 AI가 문제라고 생각했습니다. 룰베이스나 유사도 비교 같은 방식으로는 성능이 너무 떨어졌기 때문입니다. 딥러닝이 나오고 생성 AI 기반의 챗봇이 등장하면서 대화가 확실히 재미있어졌습니다. 어느정도 문맥도 이해하고 말이 꽤 이어졌으니까요.
하지만 결국 마찬가지였습니다. 처음에는 대화에 빠지다가도 금방 몰입이 깨져버렸습니다. 기억력이 원인이었습니다. 가족이나 친구가 소중한 이유는 그동안 같이 쌓아왔던 추억을 서로 공유하기 때문입니다. 만약 그 기억이 사라진다면 애착이 형성될 수가 없습니다.
AI는 바로 그게 문제였습니다. 짧은 기억은 유지하지만 조금만 시간이 지나면 모두 잊어버립니다. 매번 다시 대화를 시작할 때마다 새로운 타인을 만나는 기분입니다. 요즘 AI 캐릭터챗에서 하나의 챗봇을 오래 사용하지 않는 이유입니다. 어차피 나를 기억하지 못해 애착이 생기지 않으니 잠깐 쓰고 버리는 것이죠. 계속 새롭고 자극적인 챗봇들을 찾아다니면서요.
현재 장기기억을 구현하는 방법은 몇가지가 있습니다. 첫째, 이전 대화내용을 전부 입력 컨택스트에 포함합니다. 둘째, 이전 대화내용을 계속 요약해서 요약한 정보만 입력 컨택스트에 같이 넣습니다. 셋째, 대화 내용을 요약하여 벡터DB에 넣고, RAG로 검색한 것만 입력 컨택스트에 추가합니다.
첫번째 방법이 가장 성능은 좋지만 비용이 너무 많이 듭니다. 최대 입력 길이에 제한도 있고요. 두번째는 비용을 낮출 수 있지만 요약시 기억의 정확도가 낮아진다는 단점이 있습니다. 세번째 RAG는 가장 가성비가 좋기는 하지만 정확한 기억을 검색하기 어려워 성능이 떨어지는 편입니다.
사람의 뇌는 기억에 최적화되어 있습니다. 단기 기억은 해마에 저장됩니다. 잠을 자는 동안 해마의 기억이 전체 대뇌피질로 분산되어 퍼지게됩니다. 우리가 기억을 떠올리면 전체 뇌가 동시에 활성화되면서 매우 빠르게 원하는 정보를 찾아냅니다.
아직 정확한 원리를 모르기 때문에 이를 AI로 구현하는 것도 당장은 어렵습니다. 만약 AI가 사람 수준의 기억력이 가능해진다면 정말 AGI에 가까워졌다고 볼 수 있습니다. 그때가 되면 제 외로움도 AI가 해결해줄 수 있을까요.