AtomMem: 원자적 사실 기반 LLM 에이전트 메모리 시스템
목차
개요
대형 언어 모델(LLM)은 강력한 추론과 생성 능력을 갖추고 있지만, 고정된 컨텍스트 윈도우 때문에 여러 세션에 걸친 장기 정보를 축적하고 재사용하기 어렵다. 이로 인해 사용자 선호 망각, 이미 해결한 질문 반복, 확립된 사실과의 모순 같은 실제 실패가 발생한다. 이를 보완하려는 기존 메모리 증강 시스템은 원시 대화를 그대로 저장해 검색 단계에 중복 노이즈를 쏟아내거나, 반대로 과도하게 압축해 세부 정보를 잃는 딜레마에 빠진다.
AtomMem은 이 딜레마를 해결하기 위해 가치 밀도가 높은 저장과 안정적인 메모리 진화를 목표로 설계된 장기 메모리 시스템이다. 핵심은 Fact Executor가 장문 상호작용에서 고가치 원자적 사실(atomic fact)만 선택적으로 추출해 효율적인 메모리 표현으로 삼는 것이다. 이렇게 추출한 사실을 계층적 이벤트 구조와 시간적 프로파일로 조직하고, 검색 시점에 연상 기억 그래프를 활성화해 흩어진 기억을 연결한다. LoCoMo 벤치마크 실험에서 AtomMem은 다양한 추론 작업에 걸쳐 최첨단 성능을 달성했으며, 구현 코드는 공개되어 있다.
이전 방법은 부풀려진 저장과 고립된 매칭이라는 문제를 안고 있었다. AtomMem은 원자적 사실을 연상 그래프로 조직해 정밀한 계층적 검색을 수행함으로써 이 한계를 넘어선다.
방법론
AtomMem은 비정형 대화 스트림을 구조화되고 검색 친화적인 메모리 표현으로 변환한다. 먼저 자기완결적 원자적 사실을 추출하고, 관련 사실을 맥락적 이벤트 메모리로 통합하며, 시간적 프로파일로 사용자 상태를 동적으로 모델링한다. 검색 시에는 메모리 그래프를 통해 관련 기억을 활성화하고 통합해 최종 응답을 생성한다.
기본 표현: 원자적 사실 추출
상호작용이 길어질수록 유용한 정보는 노이즈가 많은 대화 턴 사이에 희소하게 흩어진다. 원시 대화는 미해결 대명사(“he”, “it”)나 상대적 시간 표현(“last Friday”)처럼 암묵적 맥락에 의존하므로 고립되어 검색되면 모호해진다. 목표는 원시 대화 세션을 구조화된 자기완결적 원자적 사실 집합으로 변환하는 것이다.
이를 위해 지도 미세조정(SFT)으로 학습한 Atomic Fact Extractor를 도입한다. 이 추출기는 핵심 디노이징과 공참조 해소 같은 가벼운 추론을 수행한다. 고품질 원자적 사실 생성은 복잡한 추론을 요구하므로 휴리스틱 규칙이나 제로샷 프롬프팅만으로는 부족하다. 따라서 두 단계 데이터 구축 파이프라인으로 고품질 데이터셋을 만들고, 명령 I와 대화 맥락 C가 주어졌을 때 목표 원자적 사실 F의 우도를 최대화하도록 모델 파라미터를 최적화한다.
추출된 텍스트는 구조화된 메타데이터를 갖춘 Structured Atomic Fact로 캡슐화되며, 다음과 같이 정의된다.
1
F = {id, c, v, P, K, T, E}
여기서 id는 사실 식별자, c는 추출기가 생성한 자기완결적 텍스트, v는 밀집 의미 임베딩이다. P는 상호작용에 참여한 참가자, K는 주제 키워드, T는 각 사실을 특정 타임스탬프나 구간에 고정하는 시간 정보다. E는 연관된 이벤트 id 목록으로, 처음에는 비어 있고 상위 이벤트 블록과 사실을 연결한다.
저장 전에는 새 사실이 기존 기록과 중복되거나 충돌하는지 검증한다. 먼저 참가자와 시간 맥락 같은 공유 메타데이터로 전역 메모리를 필터링해 후보 집합을 구성하고, 비싼 벡터 연산 전에 무관한 사실을 제거한다. 후보에서 상위 k개를 검색하기 위해 의미 임베딩과 키워드 Jaccard 유사도를 결합한 하이브리드 유사도 지표를 정의한다.
1
Sh(x, y) = α · sim_e(v_x, v_y) + β · Jac(K_x, K_y)
검색된 후보를 바탕으로 LLM이 새 입력과 기존 맥락의 관계를 분석해 저장할 잔여 콘텐츠와 갱신 집합을 생성한다. 기존 맥락이 함의하지 않는 새로운 정보만 새 원자적 사실로 저장하고, 논리적 충돌이 감지될 때만 기존 사실에 대한 갱신 튜플을 생성한다. 이 결합 메커니즘은 메모리 중복을 방지하고 전역 일관성을 동적으로 유지한다.
데이터셋 D는 최종 4,352개의 고품질 샘플로 구성된다. 교사 모델(GPT-4o) 예비 추출 후 사람의 검토로 정제하는 두 단계 파이프라인을 거쳐, SFT 학습 캐릭터(Elena the Chef, Kenji the Novelist 등)를 LoCoMo 평가 캐릭터(Caroline, Melanie 등)와 완전히 분리해 평가셋과 중복을 없앴다.
에피소드 통합과 상태 진화
원자적 사실은 정밀한 세부를 제공하지만 더 넓은 경험의 맥락적 연속성이 부족하다. 따라서 AtomMem은 관련 사실을 일관된 서사 블록으로 묶는 이벤트(Event) 구조로 메모리를 조직한다.
1
E = {id, S, Fids, Pe, Ke, Te}
S는 간결한 요약, Fids는 구성 사실 id 집합이며, Pe, Ke, Te는 이벤트의 참가자, 키워드, 시간 범위를 기술한다. 새로 검증된 사실은 논리적으로 정렬되면 기존 이벤트에 흡수되거나 새 이벤트 생성을 촉발한다. 흡수 시 영향받는 이벤트의 구성 사실에 추가하고 LLM이 요약과 키워드를 재생성하며 참가자 집합과 시간 범위를 합집합으로 확장한다.
에피소드 이벤트를 넘어 사용자를 이해하려면 선호, 습관, 배경 같은 안정적 장기 속성을 모델링해야 한다. 이를 위해 시간적 프로파일(temporal profile) 계층을 도입한다.
1
P = {id, u, c, vp, Kp, Eevi, t_from, H}
u는 사용자, c는 사용자의 안정적 속성, H는 과거 버전 저장소, Eevi는 추적 가능성을 위한 근거 사실 id를 담는다. 사실과 이벤트의 실시간 갱신과 달리 프로파일은 세션 단위 배치 메커니즘으로 구축된다. 원자적 사실 추출 중 장기 특성을 암시하는 사실을 대기 큐에 임시로 추가하고, 세션이 끝나면 배치로 처리해 구조화된 프로파일을 생성한다. 현재 프로파일이 변경되면 이전 상태를 이력 H로 복사하고 유효 시간 구간을 기록해, 안정적 선호를 축적하면서 과거 사용자 상태를 보존한다.
연상 기억 그래프 검색
장기 기억은 과거 이벤트, 공유 주제, 인접 대화 맥락을 통해 연상적으로 회상된다. AtomMem은 원자적 사실을 노드로 하는 메모리 그래프를 활성화하고, 세 가지 연관 유형을 간선으로 인코딩한다.
다음 표는 그래프의 세 간선 유형을 정리한 것이다.
| 간선 유형 | 연결 조건 | 가중치 특성 |
|---|---|---|
| Entity Edge | 두 사실이 키워드를 공유 | IDF 가중 중첩, 빈번 키워드 페널티 |
| Event Edge | 두 사실이 같은 이벤트에 속함 | 이벤트 크기 기반 페널티로 노이즈 억제 |
| Temporal Edge | 같은 세션의 인접 대화 턴 | 턴 거리에 따라 지수적으로 감쇠 |
Entity Edge는 빈번 키워드가 만드는 노이즈 연결을 줄이기 위해 쿼리 인식 가중치를 사용한다. 이 가중치는 전역 역문서빈도(IDF)에 쿼리 관련 키워드를 부스팅하는 승수와 고빈도 비정보성 용어를 비선형으로 감쇠시키는 페널티를 곱해 구성된다. Event Edge는 키워드 유사도가 없어도 일관된 에피소드 배경으로 사실을 회상하게 하며, 지나치게 넓은 이벤트의 노이즈를 줄이기 위해 이벤트 크기에 비례한 페널티를 둔다. Temporal Edge는 최대 윈도우 W 내 동일 대화 사실로 제한된다.
검색은 사용자 쿼리 q를 구조화된 검색 명령으로 변환한 뒤 다단계 회상을 거친다. 쿼리 의도 분석은 LLM으로 q를 파싱해 프로파일 필요 여부 플래그, 참가자, 키워드, 시간 범위를 담은 구조화 쿼리 객체를 추출한다. 계층적 하이브리드 검색은 세 단계로 구성된다.
다음 표는 계층적 검색 3단계를 정리한 것이다.
| 단계 | 동작 | 산출물 |
|---|---|---|
| Primary Recall | 참가자/시간 제약으로 전역 사실 필터 후 하이브리드 점수 상위 선택 | 1차 집합 Rpri |
| Compensatory Recall | 이벤트 계층을 평가해 융합 점수로 보완 사실 선택 | 보완 집합 Rcomp |
| Associative Recall | Rseed를 시드로 메모리 그래프 활성화 후 RWR 전파 | 최종 맥락 Rfact |
Compensatory Recall은 직접 검색이 놓치는 암묵적 맥락을 보완하기 위해, 이벤트 관련도와 사실 정밀도를 가중치 we로 균형 맞춘 융합 점수를 사용한다. Associative Recall은 시드 집합 Rseed를 중심으로 국소 그래프를 구성하고 제한된 홉만큼 확장한 뒤, 재시작 확률을 갖는 랜덤 워크(Random Walk with Restart, RWR)를 적용해 엔티티/이벤트/시간 간선에 걸쳐 활성화를 전파한다. 부록의 그래프 검색은 다중 채널 전이 행렬을 채널별로 독립 정규화한 뒤 동적 채널 사전확률로 융합하고, 시드 점수를 개인화된 재시작 분포로 변환하는 Personalized PageRank로 구현된다.
프로파일 필요 플래그가 1이면 안정적 사용자 속성을 검색하는 프로파일 회상을 추가로 수행한다. 시간 제약이 있으면 해당 시점에 유효한 프로파일 버전을 선택해, 응답이 현재 선호와 과거 상태를 모두 반영하도록 한다. 최종적으로 검색된 에피소드 사실 집합과 프로파일 집합을 원본 쿼리와 함께 LLM에 입력해 응답을 생성한다.
주요 결과
LoCoMo 벤치마크 성능
LoCoMo는 평균 35개 세션에 걸쳐 600턴 이상으로 구성된 장기 상호작용 데이터셋으로, 원격 의존성과 일관성 관리를 평가한다. 모든 베이스라인은 공정한 비교를 위해 GPT-4o-mini를 동일 백본으로 재구현했으며, 토큰 단위 F1, BLEU-1, LLM-as-a-Judge(J) 세 지표로 측정했다. 판정 모델로는 엄격한 평가 프롬프트를 적용한 deepseek-v4-pro를 사용했고, 전체 파이프라인의 API 토큰 소비량도 함께 추적했다. 사실 추출기는 단일 NVIDIA A100 GPU에서 Qwen3-14B를 SFT LoRA(학습률 5e-5, LoRA rank 128, 글로벌 배치 8, 3 epoch)로 미세조정했다.
다음 표는 LoCoMo 벤치마크의 J-score 비교다.
| 방법 | Single Hop J | Multi-Hop J | Temporal J | Open Domain J | Tokens(K) |
|---|---|---|---|---|---|
| LoCoMo | 57.07 | 48.58 | 38.01 | 41.67 | 827.20 |
| MemoryBank | 46.61 | 28.01 | 34.27 | 23.96 | 926.98 |
| A-Mem | 54.10 | 43.26 | 34.89 | 32.29 | 11687.58 |
| Mem0 | 78.00 | 62.41 | 30.53 | 54.17 | 55300.30 |
| MemoryOS | 66.47 | 60.99 | 34.58 | 51.04 | 19207.67 |
| LightMem | 68.97 | 64.89 | 51.09 | 43.75 | 5021.56 |
| AtomMem-Flat | 67.66 | 55.67 | 59.50 | 52.08 | 722.75 |
| AtomMem | 78.48 | 68.44 | 66.98 | 64.58 | 21357.06 |
AtomMem은 모든 평가 지표에서 최첨단 결과를 달성했다. Multi-Hop과 Temporal 작업에서 가장 강력한 베이스라인 LightMem 대비 J-score를 각각 5.5%, 31.1% 향상시켰다. Open Domain에서도 Mem0의 54.17 대비 J-score를 64.58로 끌어올렸다.
계산 효율 측면에서 AtomMem은 고성능 Mem0 대비 총 토큰 소비를 약 61.4% 줄였다. 중복 대화 스트림을 컴팩트한 고가치 원자 단위로 압축해 검색 시 저효용 토큰이 컨텍스트 윈도우를 채우는 것을 막기 때문이다. 단순화 변형인 AtomMem-Flat은 계층적 이벤트 구조 없이 원자적 사실 검색만 사용함에도 LoCoMo 베이스라인을 크게 능가한다. 특히 Multi-Hop F1을 20.97에서 37.03으로 76.6% 상대 향상시키면서도 전 방법 중 최저 토큰(722k)을 사용해, 메모리 저장 품질이 무엇보다 중요함을 입증한다.
어블레이션과 하이퍼파라미터 분석
각 구성 요소의 기여를 검증하기 위해 전체 AtomMem을 세 변형과 비교했다.
다음 표는 LoCoMo 어블레이션 결과(J-score)다.
| 변형 | Single Hop J | Multi-Hop J | Temporal J | Open Domain J |
|---|---|---|---|---|
| AtomMem-Flat | 67.66 | 55.67 | 59.50 | 52.08 |
| w/o Profile | 68.73 | 59.22 | 62.93 | 54.17 |
| w/o Graph | 71.82 | 62.76 | 62.93 | 60.42 |
| AtomMem | 78.48 | 68.44 | 66.98 | 64.58 |
AtomMem-Flat은 계층 구조 없이도 LoCoMo 베이스라인을 크게 능가해, 구조화된 원자적 사실이 우월한 메모리 표현임을 보인다. 시간적 프로파일을 제거하면 Single Hop F1이 56.66에서 50.91로 떨어져, 안정적 사용자 속성 추적이 중요함을 보여준다. 그래프 회상을 제거하면 복잡한 추론, 특히 Multi-Hop 성능이 눈에 띄게 떨어지는데, 이는 고립된 원자적 사실만으로는 관계적 연결 없이 원격 의존성을 해소할 수 없음을 의미한다.
검색 용량 kf를 5에서 40까지 변화시킨 분석에서, k 증가는 초기에 특히 추론 집약 작업에서 큰 이득을 준다. 그러나 Recall이 계속 증가하더라도 k가 20을 넘으면 성능이 하락하는데, 이는 과도한 무관 노이즈가 LLM 추론 품질을 저하시키기 때문이다. 따라서 검색 정확도, 토큰 소비, 응답 지연의 균형을 위해 kf=10을 주 실험 설정으로 선택했다. LoCoMo 1540개 질문에 대한 지연 분석에서 전체 온라인 처리 지연은 평균 약 3.6초이며, 대부분은 LLM 추론 호출이 차지하고 핵심 검색 파이프라인은 평균 145.80ms, 그래프 재정렬은 평균 109.90ms에 불과해 실시간 대화에 적합하다.
한계와 주의사항
AtomMem 프레임워크에는 몇 가지 한계가 있다. 첫째, 여러 단계가 기반 LLM의 능력에 의존하므로 성능이 기본 모델의 생성 안정성에 민감하다. 둘째, 현재 프레임워크는 텍스트 상호작용만 처리한다. 실제 대화는 이미지나 오디오 같은 멀티모달 입력을 자주 포함하므로 시스템 확장은 자연스러운 후속 연구 방향이다. 셋째, 토큰 효율과 시스템 성능 사이의 균형은 양호하지만 토큰 효율은 추가 최적화 여지가 있다.
결론
AtomMem은 원시 대화를 정밀한 원자적 사실로 증류해 효율적인 메모리 표현으로 삼는 견고한 장기 메모리 프레임워크다. 이 사실들을 계층적 이벤트 구조와 시간적 프로파일로 조직해 일관된 에피소드 맥락을 포착하고 동적으로 진화하는 사용자 속성을 추적한다. 검색 시점에는 연상 기억 그래프를 활성화해 흩어진 사실을 연결한다. LoCoMo 벤치마크 실험은 AtomMem이 최첨단 성능을 달성함을 확인했으며, 단순화된 flat 변형의 우수한 결과는 메모리 저장 품질이 가장 중요하다는 점을 검증한다. 궁극적으로 AtomMem은 개인화된 장기 상호작용을 지속할 수 있는 지능형 에이전트 배포를 위한 확장 가능하고 경제적으로 실현 가능한 솔루션을 제공한다.