피드로 돌아가기
Dev.toAI/ML
원문 읽기
Semantic Caching 도입으로 LLM 호출 58% 절감 및 Latency 95% 개선
Semantic caching our flaky-test summariser: 58% fewer LLM calls
AI 요약
Context
Flaky-test 요약을 위해 일일 40k 건의 LLM 호출이 발생하며 비용과 지연 시간이 증가한 상황. 타임스탬프나 컨테이너 ID만 다른 유사 실패 로그가 반복되어 단순 Key-value 캐시로는 중복 요청을 처리하지 못하는 한계 발생.
Technical Solution
- 의미적 유사성 기반 매칭을 위해 Bifrost Gateway에 Semantic Cache 플러그인 도입
- OpenAI text-embedding-3-small 모델을 통한 입력 텍스트의 Vector Embedding 변환 및 저장
- Cosine Similarity 임계값을 0.92로 설정하여 정확도와 Hit Rate 사이의 균형 최적화
- 신규 프롬프트 적용 시 발생하는 데이터 오염 방지를 위해 TTL 24시간 설정으로 자동 갱신 구조 설계
- 단일 Go Binary 기반의 Self-hosted 아키텍처를 채택하여 Redis 등 외부 의존성 최소화 및 운영 복잡도 제거
- Cache Hit 시 LLM Provider 호출 없이 즉시 응답하는 구조로 Upstream 장애 시 Load Shedding 효과 확보
Impact
- LLM API 호출 횟수 58% 감소
- Cache Hit 시 p50 Latency 900ms에서 40ms로 단축
- Primary Provider 11분간의 Brownout 발생 시 요청의 50% 이상을 캐시로 처리하여 시스템 안정성 유지
실천 포인트
- 입력 텍스트에 가변적인 식별자(ID, Timestamp)가 포함된 경우 Key-based 대신 Semantic Caching 검토 - 임계값 설정 시 정밀도(Precision) 저하로 인한 잘못된 정보 제공 리스크를 고려해 보수적 Threshold 설정 - 캐시 도입이 단순 비용 절감을 넘어 Upstream 장애 시 Blast Radius를 줄이는 가용성 전략으로 활용 가능함을 인지 - 프롬프트 변경 등 모델 업데이트 주기와 연동된 적절한 TTL 정책 수립 필요