피드로 돌아가기
Dev.toAI/ML
원문 읽기
Sieve 프록시 도입을 통한 Ollama의 Stateless 한계 극복 및 Persistent Memory 구현
Persistent memory for Ollama, in about five minutes
AI 요약
Context
Ollama의 Stateless 아키텍처로 인해 세션 종료 시 모든 컨텍스트가 소멸하는 한계 존재. 이를 해결하기 위해 전체 대화 이력을 매 요청마다 재전송하는 방식이 사용되었으나, 이는 컨텍스트 윈도우 포화 및 local hardware의 tokens-per-second 저하를 야기함.
Technical Solution
- Client와 Ollama 사이에 Sieve 프록시 계층을 배치하여 기존 Client 코드 변경 없이 Memory 기능 추가
- SQLCipher 기반의 암호화된 SQLite DB를 활용하여 대화 중 도출된 핵심 사실(Facts)을 로컬에 영구 저장
- Outbound 페이로드에서 중복 지시문, Tool Schema, 오래된 이력을 제거하여 토큰 소모량 최적화
- 요청 시점의 컨텍스트에 부합하는 관련 사실만을 DB에서 추출하여 LLM에 동적으로 주입하는 Retrieval 메커니즘 적용
- OBSERVE -> ACCUMULATE -> ACTIVATE의 3단계 램프업 프로세스를 통해 점진적으로 메모리 활성화
- /api/chat 및 /v1/chat/completions API 규격을 그대로 유지하여 하위 호환성 확보
실천 포인트
1. Local LLM 도입 시 전체 이력 전송으로 인한 TPS 저하 여부 확인
2. SDK 기반 메모리 관리와 Proxy 기반 메모리 관리의 유지보수 비용 비교
3. 데이터 프라이버시를 위해 SQLCipher 등 로컬 암호화 저장소 검토
4. 모델 크기(8B+ 권장)에 따른 Context 주입 시의 할루시네이션 억제 성능 검증