Lemmalog: Datalog을 사용한 LLM 메모리의 프로그램 분석으로 전환하기
장기적인 조사 과정에서 일관된 상태를 유지하는 것은 LLM 에이전트의 주요 실패 원인입니다. 취약점 연구와 같은 복잡한 작업에서는 모델이 이미 배제된 가설을 잊어버리거나, 이미 반증된 관찰을 기반으로 계속 추론하는 경우가 자주 발생합니다. Lemmalog은 LLM 메모리를 검색 문제로 보는 대신, 프로그램 분석 문제로 간주하여 Datalog 엔진을 사용해 결정론적 추론 상태를 유지함으로써 이 문제를 해결합니다.
문제: LLM 메모리의 상태 붕괴
표준적인 LLM 메모리 시스템은 일반적으로 벡터 데이터베이스와 의미적 검색(RAG)에 의존합니다. 관련된 과거 대화를 검색하는 데는 효과적이지만, '진실성'과 상태 업데이트 측면에서는 어려움을 겪습니다. 에이전트가 object_a가 object_b를 가리킨다고 확정한 후, 나중에 이것이 틀렸다는 것을 알게 되면, 벡터 데이터베이스는 모순되는 두 진술을 모두 저장하게 됩니다. 이로 인해 LLM은 프롬프트 내에서 이러한 모순을 해결해야 하며, 이는 종종 환각이나 죽은 가설의 부활로 이어집니다.
Lemmalog 아키텍처: 흐린 논리와 결정론적 논리의 분리
Lemmalog은 메모리 문제를 두 가지 서로 다른 구성 요소로 나누어 처리합니다: 확률적 전단계 추출과 결정론적 후단계 추론입니다.
1. 흐린 전단계 (LLM)
LLM은 소스 코드, 디버거 출력, 자연어 노트와 같은 비구조화된 데이터를 구조화된 사실로 변환하는 파서로 사용됩니다. 예를 들어, "LLDB는 해제된 객체가 나중에 재사용됨을 보여줍니다"라는 문장은 freed(object_a)와 reused_as(object_a, write_target)와 같은 형식적 사실로 변환됩니다.
2. 결정론적 후단계 (Datalog)
구조화된 사실이 생성되면, Lemmalog은 Datalog, 즉 선언형 논리 프로그래밍 언어를 사용해 정의된 규칙에 따라 새로운 사실을 도출합니다. 이는 결론이 논리적으로 타당하고 자동으로 업데이트됨을 보장합니다.
주요 기능은 다음과 같습니다:
- 증분 평가: 입력 사실이 변경되면 전체 조사 재실행 대신 영향을 받는 결론만 업데이트됩니다.
- 자동 반박: 결론을 도출하는 데 사용된 사실이 제거되면, 다른 독립적인 도출 경로에 의해 지지되지 않는 한 결론은 자동으로 무효화됩니다.
- 근거 추적: 시스템은 모든 도출된 사실에 대해 종속성 그래프를 유지하여, 에이전트가 특정 결론이 왜 참인지에 대해 원본 관찰로 거슬러 올라가 답변할 수 있도록 합니다.
- 시간적 유효성: 사실은 유효성 간격(예:
viable(primitive_a) [10:14, 12:37))과 연결되어 지식이 시간에 따라 어떻게 진화했는지 추적할 수 있으며, 모순된 상태를 유지하지 않도록 합니다.
성능 벤치마크
Lemmalog은 장기 대화 메모리 처리 능력을 평가하기 위해 LongMemEval과 LoCoMo 벤치마크를 사용하여 테스트되었습니다.
LongMemEval 결과
Lemmalog은 F1 점수 0.463 +/- 0.010과 정확도 0.575 +/- 0.004를 기록했습니다. PropMem과 같은 특화된 메모리 시스템에 비해 약간 뒤처졌지만, 전체 컨텍스트 프롬프팅(GPT-4.1)에 비해 크게 앞서며, F1 점수 0.197를 기록했습니다.
중요하게도, Lemmalog은 컨텍스트 창 크기를 극적으로 줄였습니다. LongMemEval에서 답변 모델은 질문당 약 2,700 토큰을 받았으며, 전체 컨텍스트 접근법은 104,000 토큰을 사용했으므로, 컨텍스트 크기에서 38배의 감소를 달성했습니다.
LoCoMo 결과
더 큰 LoCoMo 벤치마크(1,986개 질문)에서 Lemmalog은 F1 점수 0.533 +/- 0.001을 기록하여 전용 메모리 시스템 중 세 번째로 높은 성능을 보였습니다. 특히 적대적 질문(0.707 F1)에서는 전체 컨텍스트 모델(0.509 F1)보다 뛰어난 성능을 보였는데, 구조화된 메모리가 지원 사실의 부재를 명시적으로 인식할 수 있기 때문입니다. 이는 의미적 유사성에 의해 오도되는 것을 방지합니다.
비교: 추론 상태 vs. 에피소딕 메모리
Lemmalog은 추론 상태와 에피소딕 메모리를 구분하는 하이브리드 아키텍처를 제안합니다:
| 기능 | 추론 상태 (Lemmalog) | 에피소딕 메모리 (벡터 DB) |
|---|---|---|
| 성격 | 사실, 규칙, 시간 | 흐린 맥락 |
| 메커니즘 | 근거 추적 및 반박 | 의미적 검색 |
| 저장 방식 | 유지된 상태 | 원본 텍스트 |
| 강점 | 논리적 일관성, 진실성 | 관련성, 미묘함 |
커뮤니티의 통찰과 반론
기술적 동료들 간의 논의는 이 접근법의 잠재력과 역사적 맥락을 강조합니다:
"LLM은 요청 완수의 터미널에서만 진정으로 작동해야 합니다... 그 터미널 사이에서는 어떤 온톨로지나 형식적 지식 구조 위에서 기계적 추론이 이루어져야 합니다."
일부 기여자는 이 접근법이 '좋은 오래된 방식의 인공지능'(GOFAI)과 상징적 AI를 닮았다고 지적하며, 시스템이 결국 상징적 논리의 고전적 문제, 예를 들어 양화사의 필요성과 '흐린' 또는 의견 기반 정보 처리의 어려움에 직면할 수 있다고 경고했습니다. 다른 이들은 사실의 '학습 취소'를 다루기 위해 더 강력한 비단조성 논리 처리를 위해 정답 집합 프로그래밍(ASP)을 탐색할 것을 제안했습니다.
결론
Lemmalog은 논리적 일관성과 상태 추적을 요구하는 작업에서 컨텍스트 창을 늘리는 것보다 형식적 분석 상태를 유지하는 것이 더 효과적임을 보여줍니다. LLM을 결정론적 Datalog 엔진의 확률적 파서로 사용함으로써, 시스템은 토큰 비용을 줄이고 반증된 가설의 부활을 방지하며, 장기적인 자율 연구 에이전트를 위한 확장 가능한 길을 제시합니다.
Sources
관련
- 프로젝트
- Dispatch
- Dispatch
- Dispatch
- Dispatch