I accidentally turned LLM memory into program analysis
개요
LLM 에이전트의 장기 기억력 문제를 해결하기 위해 Datalog 기반의 상태 유지 시스템인 Lemmalog를 개발하여 기존의 LLM 메모리 시스템과 비교 평가한 결과, 특정 작업에서 우수한 성능을 보였습니다.
주요 내용
- LLM 에이전트는 복잡한 취약점 연구 중 이전 결정 사항을 잊어버리거나 잘못된 가정을 반복하는 경향이 있었습니다.
- 기존 LLM 메모리 시스템은 과거 대화나 관찰 내용을 저장하고 관련 정보를 검색하는 방식이었으나, 사실 관계의 변경이나 새로운 발견에 따른 결론의 자동 무효화에는 한계가 있었습니다.
- Datalog는 사실(facts)과 규칙(rules)을 통해 새로운 사실을 도출하는 선언적 로직 프로그래밍 언어로, 입력 사실 변경 시 영향을 받는 결과만 효율적으로 업데이트할 수 있습니다.
- Lemmalog는 LLM이 자연어, 코드, 디버거 출력 등 "퍼지(fuzzy)"한 정보를 구조화된 사실로 변환하는 역할을 하고, Datalog 엔진은 이 사실들을 바탕으로 "결정론적(deterministic)"인 상태를 유지 및 추론합니다.
- Lemmalog는 사실의 제거(retractions) 시에도 여러 근거를 가진 결론이 하나의 근거가 사라진다고 해서 자동으로 무효화되지 않도록, 사실의 도출 과정을 추적하여 의존성을 관리합니다.
- 또한, 특정 사실이 왜 참인지 근거(provenance)를 추적할 수 있어 AI 에이전트의 추론 과정을 이해하는 데 도움을 줍니다.
- 시간에 따라 변경되는 사실을 위해 유효 기간(validity intervals)을 적용하여 과거의 상태와 현재의 상태를 모두 파악할 수 있도록 합니다.
- 기존 벡터 데이터베이스는 관련성은 높지만, 사실의 유효성이나 파생 결론에 대한 정보를 직접적으로 제공하지 못하는 반면, Lemmalog는 현재 참인 것을 유지하는 데 초점을 맞춥니다.
- Lemmalog는 프로그램 분석과 유사하게 관찰, 가정, 관계, 가설, 결론 등을 구조화된 사실과 추론 규칙으로 관리하며, 변경 발생 시 점진적 평가(incremental evaluation)를 수행합니다.
- LongMemEval 및 LoCoMo 벤치마크에서 Lemmalog는 일부 기존 메모리 시스템보다 낮은 F1 점수를 기록했으나, 특히 지식 업데이트, 시간적 추론, 다중 홉 관계, 잘못된 전제 거부 등의 작업에서 경쟁력 있는 성능을 보였습니다.
- Lemmalog는 기존 LLM 메모리 시스템 대비 사용되는 토큰 수가 현저히 적어 효율적인 컨텍스트 관리가 가능합니다.
- 개선된 성능의 상당 부분은 LLM의 추론 능력 자체보다는, 정보 추출, 개체 식별(entity resolution), 의미론적 별칭(semantic aliases) 처리 등 분석 상태를 구축하고 유지하는 전처리 및 후처리 과정의 개선에 기인합니다.
- Lemmalog는 추론(inference)과 같이 퍼지한 영역에서는 여전히 한계를 보이지만, 구조화된 상태와 원본 텍스트를 결합하는 하이브리드 방식의 가능성을 보여줍니다.
시사점
Lemmalog는 LLM이 복잡하고 장기적인 작업을 수행할 때 발생하는 기억력 문제를 해결하기 위해, Datalog 기반의 프로그램 분석 기법을 LLM의 상태 유지에 적용함으로써 효율적이고 신뢰할 수 있는 정보 관리가 가능함을 시사합니다. 이는 LLM 에이전트의 성능 향상과 더불어, AI의 의사결정 과정을 투명하게 이해하는 데 기여할 수 있습니다.
원문을 불러오는 중...
댓글
GitHub Discussions