Episodic Memory
AI의 일화 기억은 에이전트의 구체적인 과거 경험과 맥락을 저장하고 나중에 검색하며, RL 리플레이부터 LLM 에이전트 메모리까지 활용됩니다.
인공지능에서 일화 기억은 에이전트가 과거에 겪은 구체적인 경험을 저장하는 공간입니다. 각 경험에는 무슨 일이 어디서 언제 일어났는지에 대한 맥락이 함께 저장되며, 에이전트는 현재의 의사결정에 참고하기 위해 이를 검색합니다. 이 용어는 심리학에서 유래했습니다. Endel Tulving은 1972년에 개인적 사건을 회상하는 일화 기억과 사실에 관한 일반 지식인 의미 기억을 구분했습니다. AI에서 일화 기억은 에이전트가 실행 중에 기록하는 외부 저장소 형태로 구현됩니다. 강화 학습 에이전트는 과거 전이와 리턴을 보관하고, 언어 모델 기반 AI 에이전트는 이전 대화와 행동을 기록하며, 로봇과 웨어러블 어시스턴트는 카메라에 포착된 내용을 로그로 저장합니다.
일화 기억, 의미 기억, 절차 기억#
학습된 신경망은 모델 가중치에 일반 지식을 저장하며, 이 가중치는 학습 중에만 변경됩니다. 따라서 어제 있었던 특정 사건을 기억하려면 런타임에 기록할 수 있는 별도의 저장소가 필요합니다. Theodore Sumers, Shunyu Yao, Karthik Narasimhan, Thomas Griffiths가 2023년에 제안한 Cognitive Architectures for Language Agents(CoALA) 프레임워크는 심리학적 범주를 대규모 언어 모델(LLM) 에이전트에 대응시킵니다. 작업 기억은 현재 프롬프트이고, 일화 기억은 에이전트의 과거 경험을 보관하며, 의미 기억은 세계에 관한 사실을 보관하고, 절차 기억은 모델 가중치와 에이전트 코드 형태로 기술을 보관합니다.
일화 기억이 있는 에이전트는 매 단계마다 기억에서 정보를 읽고 기록합니다.
강화 학습에서의 일화 기억#
Long-Ji Lin이 1992년에 소개한 경험 재생은 가장 단순한 일화 저장 방식입니다. 에이전트는 전이 정보를 저장하고 그중 무작위 샘플로 학습합니다. 2015년에 Atari 게임을 플레이하도록 학습한 DQN 에이전트는 가장 최근의 전이 100만 개를 보관했습니다. 일화 제어는 이 저장소를 이용해 직접 행동합니다. 2016년 DeepMind의 Charles Blundell과 동료들이 개발한 Model-Free Episodic Control은 각 상태와 행동에서 얻은 최상의 리턴을 기록하고, 기억 속 최근접 이웃을 바탕으로 새로운 상태의 가치를 추정하여 학습 초기에 DQN보다 빠르게 학습할 수 있었습니다. DeepMind의 Never Give Up 에이전트(2020)는 현재 에피소드의 기억에 저장된 모든 상태에서 멀리 떨어진 상태에 도달하면 보상을 제공하는데, 이러한 탐색 보너스는 후속 모델인 Agent57이 57개의 Atari 게임 전체에서 인간 기준 점수를 넘어선 최초의 심층 강화 학습 에이전트가 되는 데 기여했습니다.
LLM 에이전트에서의 일화 기억#
언어 모델은 컨텍스트 윈도우에 들어가는 내용만 기억할 수 있으므로, 장시간 작동하는 에이전트는 경험을 외부 저장소에 기록하고 관련 경험을 프롬프트에 불러옵니다. UIST 2023에서 발표된 Generative Agents에서는 Stanford와 Google의 Joon Sung Park과 동료들이 시뮬레이션 캐릭터 25명에게 자연어 관찰 기록으로 구성된 기억 스트림을 제공했습니다. 각 기억은 최근성, 즉 마지막으로 검색된 뒤 게임 시간당 0.995의 감쇠 계수를 적용한 지수 감쇠, 중요도, 즉 언어 모델이 부여하는 1부터 10까지의 정수, 관련성, 즉 기억의 임베딩과 질의의 코사인 유사도를 기준으로 점수를 받습니다. 세 점수는 최솟값과 최댓값을 기준으로 정규화한 뒤 동일한 가중치로 합산합니다.
이 예시는 all-MiniLM-L6-v2 문장 임베딩 모델을 사용해 가정용 로봇의 기억에 이 점수 계산을 적용합니다.
import numpy as np
from sentence_transformers import SentenceTransformer
# Episodic memories of a home robot: what happened, hours since last recalled, importance from 1 to 10
memories = [
("Saw the car keys on the kitchen counter", 30, 5),
("Charged the battery at the docking station", 2, 2),
("Watered the plants in the living room", 5, 3),
("Saw the car keys in the coat pocket in the hallway", 4, 5),
("The user said the back door sticks when it rains", 50, 8),
]
texts, hours, importance = zip(*memories)
model = SentenceTransformer("all-MiniLM-L6-v2")
query = model.encode("Where are my car keys?", normalize_embeddings=True)
relevance = model.encode(list(texts), normalize_embeddings=True) @ query # cosine similarity to the query
recency = 0.995 ** np.array(hours) # exponential decay per hour
# Generative Agents retrieval: min-max normalize each signal to 0-1, then add them with equal weights
signals = [recency, np.array(importance, dtype=float), relevance]
score = sum((s - s.min()) / (s.max() - s.min()) for s in signals)
for i in np.argsort(-score)[:3]:
print(f"score {score[i]:.2f}, relevance {relevance[i]:.2f}: {texts[i]}")복도에서 열쇠를 본 기억은 점수 2.44로 가장 높은 순위를 기록하여 주방 조리대에서 본 기억의 1.89보다 앞섭니다. 하지만 오래된 기억이 질문과 약간 더 유사합니다(0.71 대 0.70). 최근성이 두 기억을 구분하므로 로봇은 열쇠를 가장 최근에 본 장소를 보고합니다. Noah Shinn과 동료들이 2023년에 개발한 Reflexion은 에이전트가 실패한 시도에 대해 직접 작성한 성찰을 일화 버퍼에 저장했으며, HumanEval 코딩 벤치마크에서 GPT-4의 80%와 비교해 91%의 pass@1을 달성했습니다.
비디오 및 체화 에이전트에서의 일화 기억#
체화 AI와 웨어러블 카메라에서 일화 기억은 카메라가 이전에 무엇을 보았는지에 대한 질문에 답하는 것을 의미합니다. 2021년 Meta와 대학 파트너가 공개한 Ego4D 데이터셋은 9개 국가, 74개 장소에서 카메라 착용자 931명이 촬영한 3,670시간의 1인칭 비디오를 포함하며, "열쇠를 어디에 두었지?"와 같은 질문을 중심으로 구성된 일화 기억 벤치마크도 제공합니다. 해당 작업에서는 자연어 질문에 답하는 비디오 구간을 찾고, 참조 이미지에 나온 물체가 마지막으로 등장하는 시점을 찾으며, 특정 활동이 발생한 모든 사례를 찾습니다. Ultralytics 패키지의 VisualAISearch는 CLIP을 사용해 폴더의 모든 이미지를 임베딩하고 텍스트 질의와의 코사인 유사도에 따라 순위를 매깁니다. 이는 로봇 카메라에서 저장한 프레임을 대상으로 하는 기억 시스템에서 관련성을 평가하는 단계입니다.
일화 기억과 관련 용어#
- 메모리 뱅크: 대조 학습의 네거티브 샘플, 과거 비디오 프레임, 정상 이미지 패치 등 모델의 자체 연산에 필요한 벡터를 저장합니다. 일화 기억은 에이전트의 의사결정을 안내하기 위해 에이전트의 경험을 저장합니다.
- 검색 증강 생성(RAG): 모델의 답변에 근거를 제공하기 위해 외부 문서에서 구절을 검색합니다. 일화 기억은 동일한 검색 메커니즘을 에이전트 자신의 기록에 적용합니다.
- 벡터 데이터베이스: 프로덕션 에이전트의 일화 기억을 저장하는 데 자주 사용되는 저장 및 유사도 검색 계층입니다.
- 연속 학습: 과거 작업을 치명적으로 망각하지 않고 새로운 작업을 학습하며, 저장된 예제를 재생하는 방식이 자주 사용됩니다. David Lopez-Paz와 Marc'Aurelio Ranzato가 2017년에 개발한 Gradient Episodic Memory(GEM)는 이전 작업마다 소량의 예제를 보관하고, 예제에 대한 손실이 증가하지 않도록 모든 업데이트를 제한합니다.










