YAMS: LLM 및 다양한 애플리케이션을 위한 영구 메모리 시스템 (Yet Another Memory System)

YAMS 소개

YAMS(Yet Another Memory System)는 대규모 언어 모델(LLM)과 다양한 애플리케이션을 위한 영구 메모리 시스템입니다. 단순한 데이터 저장소가 아니라, 콘텐츠 주소 기반 저장(content-addressed storage), 중복 제거(deduplication), 의미 기반 검색(semantic search), 그리고 전체 텍스트 인덱싱(full-text indexing) 기능을 통합적으로 제공합니다. 이를 통해 LLM이 세션 간에 맥락을 유지하거나, 개발자가 프로젝트별 지식 베이스를 구성하는 데 최적화되어 있습니다.

YAMS의 핵심은 SHA-256 기반 콘텐츠 주소화를 통해 데이터 무결성을 보장하고, Rabin fingerprinting으로 블록 단위 중복 제거를 수행하며, Zstandard와 LZMA 압축 방식을 지능적으로 적용하여 저장 효율을 극대화하는 데 있습니다. 검색 기능은 SQLite FTS5를 통한 전체 텍스트 검색과 벡터 임베딩을 활용한 의미 기반 검색을 모두 지원하여 단순 키워드 매칭 이상의 결과를 제공합니다. 또한 쓰기 전 로그(write-ahead logging)를 통해 장애 상황에서도 안정적으로 복구 가능하며, 멀티스레드 환경에서도 100MB/s 이상의 고성능 처리를 구현합니다.

특히 YAMS는 LLM 환경에서의 문맥 기억 및 데이터 재활용을 염두에 두고 설계되었습니다. 예를 들어, 개발자가 이전 코드 변경 내역, 대화 맥락, 외부 문서 등을 저장해두고 필요할 때 즉시 검색·활용할 수 있습니다. 이러한 특성은 대규모 AI 모델을 활용한 개발 워크플로우에서 매우 유용합니다.

YAMS는 Git이나 일반 문서 검색 시스템과 비교했을 때 다음과 같은 차별성이 있습니다:

  • Git과 비교: Git은 소스 코드 버전 관리에 특화되어 있으며, 주로 텍스트 파일의 변경 이력을 추적합니다. 반면 YAMS는 다양한 형식의 데이터를 저장할 수 있으며, 의미 기반 검색과 중복 제거, 압축, PDF 텍스트 추출 등 데이터 관리에 필요한 다양한 기능을 제공합니다.
  • 일반 검색 엔진과 비교: Elasticsearch, Lucene 같은 검색 시스템은 강력한 검색 기능을 제공하지만, 콘텐츠 주소 기반 저장과 블록 단위 중복 제거, LLM 친화적 CLI 및 파이프라인 통합 기능은 기본적으로 제공하지 않습니다.
  • 기존 파일 저장소와 비교: 단순한 파일 서버나 클라우드 스토리지와 달리 YAMS는 검색·저장·관리·통합까지 하나의 CLI/TUI 및 API에서 모두 수행할 수 있습니다.

YAMS의 주요 특징

기본 사용법

  • 저장: 표준 입력(stdin)이나 파일을 받아 SHA-256 해시 기반으로 저장
  • 검색: 키워드 검색, 의미 검색, 퍼지(fuzzy) 매칭 지원
  • 목록 출력: JSON, 테이블, 최소 출력 포맷 지원
  • 문서 조회: 해시 기반 즉시 조회, 파일로 저장 또는 파이프 처리 가능
  • TUI 브라우저: yams browse 명령어로 인터랙티브 탐색 지원

LLM 통합

LLM 환경에서는 대화 맥락, 코드 변경, 연구 자료, 외부 문서 등을 YAMS에 저장하고 필요 시 검색·재사용할 수 있습니다. 특히 Claude Desktop과 같은 MCP(Model Context Protocol) 호환 클라이언트와의 통합 기능을 제공합니다.

성능 최적화

환경 변수를 통해 청크 크기(YAMS_CHUNK_SIZE), 캐시 크기(YAMS_CACHE_SIZE), 압축 방식(YAMS_COMPRESSION) 등을 조정할 수 있어 대용량 파일 처리와 메모리 사용량을 상황에 맞게 최적화할 수 있습니다.

라이선스

YAMS 프로젝트는 Apache-2.0 라이선스로 공개 및 배포되고 있습니다. 상업적 사용에 제한이 없습니다.

:github: YAMS 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: