피드로 돌아가기
Dev.toAI/ML
원문 읽기
RAM 기반 메모리를 Redis로 전환하여 재시작 후 기억 정확도 63%에서 98%로 향상
Moving Conversation Memory from RAM to Redis: Boosting Long-Term Accuracy from 63% to 98%
AI 요약
Context
LangChain의 ConversationBufferMemory를 활용한 In-Memory 저장 방식으로 인해 컨테이너 재시작 및 Blue-Green 배포 시 대화 기록이 소실되는 현상 발생. Horizontal Scaling 환경에서 Pod 간 메모리 불일치로 인한 문맥 단절 및 사용자 경험 저하가 핵심 문제로 작용.
Technical Solution
- RedisChatMessageHistory 도입을 통한 State 저장소의 외부 분리를 통한 Persistence 확보
- Redis List 구조를 활용하여 메시지 순서를 보장하며 session_id 기반의 빠른 데이터 Retrieval 구현
- RDB 및 AOF 설정을 통한 서비스 재시작 후에도 데이터 무결성을 유지하는 구조 설계
- LangChain의 Memory Layer 추상화를 이용하여 기존 Chain 로직 변경 없이 Backend 저장소만 교체
- 시나리오 기반의 Automated Memory Test 스크립트를 CI 파이프라인에 통합하여 회귀 테스트 자동화
- 컨테이너 중단 및 재시작 상황을 시뮬레이션하는 테스트 케이스 설계를 통해 실제 운영 환경의 병목 검증
실천 포인트
- State가 포함된 서비스의 Horizontal Scaling 시 Sticky Session 의존도를 낮추고 외부 캐시 저장소 도입 검토 - LLM 대화의 Context 유지 능력을 측정할 수 있는 고정 시나리오 기반의 Regression Test 구축 - 배포 전략(Blue-Green, Rolling Update) 수립 시 In-Memory 데이터의 휘발 가능성 사전 체크