Tiered Retrieval
Tiered Retrieval(계층적 검색)은 검색을 비용·속도·품질의 트레이드오프에 따라 여러 계층(tier)으로 나누고, 빠르고 저렴한 계층부터 순차적으로 시도하여 충분한 품질의 결과를 얻으면 조기 종료하는 기법이다. 높은 정밀도가 항상 필요한 것은 아니라는 관찰에서 출발한다.
핵심 개념
모든 쿼리에 최고 품질의 검색을 적용하는 것은 비효율적이다. 쉬운 쿼리는 저렴한 방법으로 빠르게 해결하고, 어려운 쿼리에만 비싼 방법을 사용하면 전체 비용을 크게 낮출 수 있다. Tiered Retrieval은 이 직관을 구조화한 패턴이다.
전형적인 3계층 구조
Tier 1: Cache Layer (ms, 무비용)
│ miss
▼
Tier 2: Lightweight Retriever (수십ms, 저비용)
│ 품질 미달
▼
Tier 3: Precision Retriever (수백ms~초, 고비용)
Tier 1: 캐시 계층
이전에 동일하거나 매우 유사한 쿼리가 있었다면 캐시된 결과를 즉시 반환한다. 비용이 0에 가깝고 레이턴시가 가장 낮다.
- Exact cache: 동일 쿼리 문자열 매칭 (Redis, Memcached)
- Semantic cache: 임베딩 유사도 기반 캐시 히트 판단 (GPTCache, LangChain semantic cache)
def semantic_cache_lookup(query: str, threshold: float = 0.95):
query_embedding = embed(query)
cached = cache_store.find_similar(query_embedding, threshold)
return cached.result if cached else NoneTier 2: 경량 검색 계층
캐시 미스 시 빠르고 저렴한 검색기를 실행한다. BM25 같은 sparse retriever나 소형 임베딩 모델 기반 dense retriever가 이 역할을 한다. 반환된 결과의 신뢰도 스코어가 임계값 이상이면 여기서 종료한다.
Tier 3: 정밀 검색 계층
Tier 2 결과의 품질이 불충분할 때만 실행한다. 대형 임베딩 모델, ColBERT 같은 multi-vector retriever, 또는 LLM 기반 재순위화 등 비용이 높은 방법을 사용한다.
계층 간 에스컬레이션 기준
어떤 조건에서 다음 계층으로 이동할지 정의하는 것이 핵심 설계 요소다.
스코어 임계값 기반
result = tier2_retriever.search(query)
if result.top_score < MIN_CONFIDENCE:
result = tier3_retriever.search(query)결과 수 기반
반환된 결과가 최소 개수에 미치지 못하면 에스컬레이션한다.
쿼리 복잡도 기반
라우터가 쿼리를 미리 분류해 복잡한 쿼리는 직접 Tier 3으로 전송한다. 단순 사실 조회는 Tier 2에서 충분한 경우가 많다.
비용-품질 트레이드오프
| 계층 | 레이턴시 | 비용 | 적중 가능성 |
|---|---|---|---|
| Tier 1 (캐시) | ~5ms | 무료 | 반복 쿼리에 높음 |
| Tier 2 (경량) | ~50ms | 낮음 | 명확한 쿼리에 높음 |
| Tier 3 (정밀) | ~500ms+ | 높음 | 항상 높음 |
실제 운영에서 Tier 1 캐시 적중률이 30~50%에 달하는 경우 전체 비용을 크게 절감할 수 있다.
구현 시 고려사항
캐시 무효화
문서가 업데이트되면 관련 캐시 항목을 무효화해야 한다. 문서 ID를 캐시 키와 연결해 관리한다.
계층 간 결과 일관성
동일한 쿼리가 어떤 계층에서 처리되느냐에 따라 결과가 달라질 수 있다. 사용자 경험의 일관성을 위해 캐시 TTL과 업데이트 주기를 신중히 설정해야 한다.
모니터링
각 계층의 적중률과 에스컬레이션 비율을 추적하면 임계값 튜닝과 비용 최적화에 활용할 수 있다.
관련 개념
- Retriever Routing: 검색기(알고리즘) 수준에서 적절한 retriever를 선택하는 기법
- RAG Routing: 인덱스·도메인 수준의 경로 분기
- Policy-based Retrieval: 정책 조건에 따라 검색 범위를 제한하는 기법