피드로 돌아가기
Dev.toAI/ML
원문 읽기
Redis Hot Layer와 ChromaDB Cold Layer 조합을 통한 고효율 AI Persistent Memory 설계
Building an AI companion with persistent memory — Redis + ChromaDB
AI 요약
Context
기존 Rolling Summary 방식의 반복적 압축 과정에서 발생하는 정보 손실과 문맥 단순화 문제 분석. 모든 대화 내역을 Vector DB에 저장할 경우 발생하는 Index 크기 증가 및 검색 정밀도 저하라는 트레이드오프 발생.
Technical Solution
- Redis 기반 Hot Layer 구축을 통한 최근 대화 내역의 O(1) 시간 복잡도 조회 및 저지연성 확보
- ChromaDB 기반 Cold Layer 설계 시 개별 메시지가 아닌 LLM 생성 Chunk Summary를 임베딩하여 Index 크기 최적화 및 검색 품질 향상
- asyncio.gather를 이용해 Recent Buffer, Latest Summary, Top-K Semantic Search의 3개 Retrieval Path를 병렬 실행하는 구조 채택
- Redis LTRIM 및 TTL 설정을 통한 메모리 사용량 제한 및 비활성 사용자 데이터 자동 삭제 메커니즘 구현
- Pipelined Writes 적용으로 rpush, ltrim, expire 작업을 단일 Round Trip으로 처리하여 네트워크 오버헤드 감소
- 동시성 제어를 위해 per-key task tracking 기반의 중복 요약 작업 취소 로직 구현
실천 포인트
- AI 메모리 설계 시 개별 메시지 단위 임베딩보다 의미 단위의 Summary 임베딩으로 Recall 성능 개선 검토 - Redis 사용 시 noeviction 설정의 위험성을 인지하고 allkeys-lru 설정을 통한 메모리 오버플로우 방지 적용 - State Reset과 같은 사용자 액션 발생 시 진행 중인 비동기 요약 작업의 Race Condition 방지 로직 필수 포함 - 대화량 기반의 Fixed-size Window 요약 방식을 통해 사용자 활동량에 관계없는 일관된 문맥 밀도 유지