본문으로 건너뛰기

© 2026 Molayo

r/LocalLLaMA분석2026. 06. 27. 10:43

ContextForge: 장기 실행 시에도 실제로 잘 버티는 장기 기억을 위한 로컬 SDK

요약

ContextForge는 LLM의 장기 기억 문제를 해결하기 위해 설계된 로컬 SDK입니다. 벡터 DB 대신 SQLite와 경량 인덱스를 사용하여 매 단계마다 최소한의 작업 세트를 재구성함으로써, 장기 실행 시에도 안정적이고 일관된 컨텍스트를 제공합니다.

핵심 포인트

  • 벡터 DB 없이 SQLite와 경량 인덱스를 활용한 로컬 저장 방식
  • 컨텍스트 윈도우를 작업 세트(working set)로 재구성하여 안정성 확보
  • 장기 실행(180일~500일 스타일) 환경에서 기존 시스템 대비 우수한 성능
  • llama.cpp, vLLM 등 다양한 모델 실행 환경과 호환 가능

저는 한동안 LLM (Large Language Models)을 위한 장기 기억 (long term memory) 작업을 해왔고, 계속해서 동일한 문제에 부딪혔습니다.
데모용으로는 모든 것이 잘 작동하지만, 그 이후에는 무너져 버립니다.
그래서 이것을 만들었습니다:
https://github.com/Betanu701/ContextForge
이것은 프롬프트 (prompt)를 폭발시키지 않으면서도 사실상 무제한의 컨텍스트 (context)를 제공하는 SDK입니다.
핵심 아이디어는 간단합니다:
컨텍스트 윈도우 (context window)는 기억이 아니라, 단지 작업 세트 (working set)일 뿐이라는 것입니다.
따라서 모든 것을 컨텍스트에 유지하거나 벡터 DB (vector DB)에 쏟아붓는 대신, 이 방식은 다음과 같이 작동합니다:

  • 모든 것을 디스크에 저장 (SQLite 사용, 벡터 DB 없음)
  • 가벼운 인덱스 (index) 구축
  • 매 단계마다 최소한의 작업 세트 (working set)를 재구성
    저는 일반적인 벤치마크 (benchmark) 범위를 훨씬 넘어서는 테스트를 수행했습니다 (bench-results에 180일 및 500일 스타일의 실행 결과가 있습니다). 모든 벤치마크는 GPT 급 모델들로 수행되었습니다. 하지만 원래는 로컬에서 작동하도록 설계되었습니다.
    그 시점이 되면 대부분의 시스템이 어려움을 겪기 시작합니다.
    제가 발견한 것은 단순히 모든 것을 저장하고 검색하는 것만으로는 충분하지 않다는 것입니다. 그 접근 방식은 짧은 평가 (evals)에서는 좋아 보이지만, 더 긴 실행 과정에서는 실제로 잘 버티지 못합니다.
    매 단계마다 작업 세트 (working set)를 재구성하는 것이 결과적으로 시간이 지남에 따라 더 안정적이고, 빠르며, 일관성 있는 것으로 나타났습니다.
    제 테스트 결과, 짧은 벤치마크 스타일의 실행을 넘어설 경우 MemPalace와 같은 것들보다 성능이 뛰어났습니다.
    저는 llama.cpp에서 qwen 모델을 실행하며 이를 설계했지만, 이는 vLLM 및 모델의 컨텍스트 입출력을 제어할 수 있는 권한을 부여하는 모든 시스템에서 작동할 것입니다.
    이것이 기억 문제를 완전히 해결한다고 말하는 것은 아니지만, 몇 번의 턴 (turns) 이상을 실행하려고 한다면 훨씬 더 잘 작동합니다.
    더 자세한 분석에 관심이 있는 분이 있다면, 여기서 접근 방식에 대해 정리해 두었습니다:
    https://arxiv.org/abs/2606.26105
    submitted by /u/betanu701
    [link] [comments]

AI 자동 생성 콘텐츠

본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0