LLM은 어떻게 기억하나: 대화 메모리(LLM Memory)의 동작 원리
LLM의 기억법
제미나이가 초창기에 나왔을 때였습니다. 1.5 플래시였던가요? 정확하게 기억나지는 않지만, 사용해본 기억이 있습니다. 그때 처음 크게 실망했던 점은 대화 내용을 잘 기억하지 못한다는 것이었습니다.
기술적인 부분은 상세히 알지 못했지만, 당시 사용자 경험이 매우 좋지 않아 다시 챗지피티로 돌아와 한참을 사용했던 기억이 있습니다. 지금은 최고라고 평가받는 클로드도 초창기에는 메모리 부분이 썩 좋지 않았던 기억이 있습니다.
예를 들어 이런 식입니다.
사용자: 안녕
AI: 안녕하세요, 무엇을 도와드릴까요?
사용자: 오늘 점심 추천해줘
AI: 김치찌개 또는 된장찌개가 좋을 것 같아요.
사용자: 아 고민되네…
AI: 무슨 고민 있으세요? 마음에 두지 말고 저에게 말해주세요.
바로 방금 전에 했던 대화도 기억하지 못하는 것처럼 느껴졌습니다. 반면 챗지피티는 비교적 매끄럽게 대화를 이어갔던 기억이 있습니다.
그렇다면 LLM은 어떻게 기억하는 걸까요? 어떻게 대화가 이어지는 걸까요?
생각보다 단순한 방법입니다.
LLM은 일종의 계산기입니다. 사용자가 한 말에 대한 대답을 계산합니다. 그리고 대화가 이어지려면, 이전 대화나 필요한 맥락을 함께 넣어서 계산합니다.
즉,
사용자: 아 고민되네…
이 말만 계산하느냐, 아니면 아래의 대화를 모두 계산하느냐의 차이라고 생각하면 됩니다.
사용자: 안녕
AI: 안녕하세요, 무엇을 도와드릴까요?
사용자: 오늘 점심 추천해줘
AI: 김치찌개 또는 된장찌개가 좋을 것 같아요.
사용자: 아 고민되네…
이전 대화가 함께 들어가면 모델은 "아, 김치찌개와 된장찌개 중에서 고민하고 있구나"라고 맥락을 파악할 수 있습니다. 반대로 이전 대화가 들어가지 않으면, 모델 입장에서는 사용자가 무엇을 고민하는지 알기 어렵습니다.
그러므로 단순하게 구현하면 사용할수록 비용이 증가하게 됩니다. 앞의 대화를 함께 계산해야 하니까요. 물론 이를 줄이기 위한 방법도 있는데, 이것은 다음에 얘기하도록 하겠습니다.
AI 생성 이미지
그렇다면 장기기억은 어떻게 할까요?
새로운 채팅창을 열어서 대화를 해도 예전에 했던 말을 기억하고, 맥락에 맞게 가져오는 경우가 있습니다. 예전에는 대화의 맥락을 무시하고 과거의 기억을 억지로 끼워 넣으려는 경향도 있었던 것 같은데, 최근에는 많이 좋아진 듯합니다.
장기기억1도 큰 원리는 비슷합니다.
앞서 대화한 내용 중 중요하다고 판단되는 정보나 요약을 별도의 공간에 저장합니다. 그리고 이 정보를 최근 대화와 함께 넣습니다. 즉, 같이 계산합니다. 요즘에는 이전 대화 기록을 직접 검색해서, 관련 있는 내용을 요약하고 활용하기도 합니다.
2024년 10월쯤, 작가 Tom Morgan2이 "지금까지의 모든 상호작용을 바탕으로 내가 나 자신에 대해 모를 수도 있는 한 가지를 말해달라"는 ChatGPT 프롬프트를 X에 올렸고, 샘 알트만이 "love this"라고 반응하면서 크게 퍼진 적이 있습니다. 챗지피티에 "내가 너를 어떻게 대하는지 그림으로 그려달라"는 요청이 잠깐 유행한 적도 있습니다. 이러한 것들도 이런 장기 메모리를 가져오는 방법을 이용한 것 같습니다.
AI 생성 이미지
정리하면, LLM이 기억하는 방식은 마법처럼 머릿속에 모든 것을 저장해두는 방식이라기보다는, 필요한 대화 내용과 요약, 저장된 기억, 검색된 정보를 현재 입력에 함께 넣고 다시 계산하는 방식에 가깝습니다.
설명을 쉽게 하기 위해 기술적 비약이 있을 수 있습니다. 하지만 큰 방향만 이해해도 LLM을 사용하는 데 꽤 도움이 되리라 생각합니다.
(1) 장기기억 구현 방식 — 크게 두 가지가 있다. 하나는 대화 중 중요한 정보를 요약해 저장해두고 다음 대화 시 컨텍스트에 주입하는 메모리 저장 방식(ChatGPT Memory 기능이 대표적). 다른 하나는 과거 대화 기록 전체를 저장해두고 현재 대화와 관련 있는 내용을 검색해 꺼내오는 RAG(Retrieval-Augmented Generation) 방식이다.
(2) Tom Morgan의 ChatGPT 프롬프트 — 2024년 10월, 작가 Tom Morgan이 X에 올린 프롬프트가 샘 알트만의 "love this" 반응을 받으며 바이럴됨. ChatGPT의 장기 메모리 기능을 활용한 사례. TechRadar 기사 →