Post

[Production RAG] Day 3: 하이브리드 검색과 리랭킹 - 검색 품질을 높이는 두 전략

[Production RAG] Day 3: 하이브리드 검색과 리랭킹 - 검색 품질을 높이는 두 전략

서론: 벡터 검색만으로는 충분하지 않은 경우

벡터 검색은 의미적 유사성이 뛰어나지만, 정확한 용어·제품명·코드 같은 정밀 일치에서는 키워드 검색이 더 정확할 수 있다. 두 방식은 서로 다른 유형의 질의를 잘 처리한다.

하이브리드 검색은 두 방식을 결합해 더 넓은 질의 유형을 커버한다.

1. 키워드 검색: BM25

TF-IDF 기반의 통계적 키워드 매칭 알고리즘이다.

1
BM25 점수 = Σ IDF(term) × tf 가중치

장점: 정확한 키워드 매칭, 빠른 속도, 추가 인프라 불필요 단점: 동의어·유사 표현을 처리하지 못함

벡터 검색이 “클라우드 요금 절감 방법”이라는 질의에 관련 문서를 찾는다면, BM25는 “AWS 비용 최적화”라는 정확한 표현이 포함된 문서를 더 잘 찾는다.

2. 하이브리드 검색 결합 방법

2.1 RRF (Reciprocal Rank Fusion)

각 검색 방식의 순위를 역수로 합산해 통합 순위를 계산한다.

1
2
3
RRF_score(doc) = Σ 1 / (k + rank_i(doc))
  k: 상수 (보통 60)
  rank_i: i번째 검색 방식에서의 순위

점수 스케일이 다른 두 시스템의 결과를 정규화 없이 결합할 수 있어 실용적이다.

2.2 선형 결합

1
final_score = α × vector_score + (1 - α) × bm25_score

α는 실험으로 결정한다. 의미 검색이 중요하면 α를 높이고, 정밀 매칭이 중요하면 낮춘다.

RRF가 α 튜닝이 불필요해 운영이 간단하므로 시작점으로 권장된다.

3. 리랭킹 (Reranking)

하이브리드 검색으로 후보 청크를 넓게 회수한 뒤, Cross-Encoder로 질의-청크 쌍을 정밀 평가해 순위를 재조정한다.

1
2
3
4
5
Retrieval (벡터 + BM25)
  └─ Top-K 후보 (예: 20개)
  └─ Reranker (Cross-Encoder)
       └─ 질의와 각 청크를 함께 입력해 관련도 점수 계산
  └─ 최종 Top-N (예: 5개)을 LLM에 전달

3.1 Bi-Encoder vs Cross-Encoder

구분Bi-EncoderCross-Encoder
입력질의·문서 각각 독립 임베딩질의+문서 쌍을 함께 처리
속도빠름 (대규모 검색 가능)느림 (후보 집합에만 적용)
정확도중간높음
역할Retrieval (1차)Reranking (2차)

두 단계를 결합하면 속도와 정확도를 모두 확보할 수 있다.

4. Query Expansion (질의 확장)

사용자 질의의 표현이 인덱스 텍스트와 다를 때 검색 리콜을 높이는 보완 전략이다.

  • HyDE (Hypothetical Document Embedding): LLM이 질의에 대한 가상의 답변을 생성하고, 그 답변을 임베딩해 검색
  • Multi-query: 같은 질의를 여러 표현으로 확장해 병렬 검색 후 결과 합산
1
2
3
4
5
원래 질의: "계약 해지 조건"
Multi-query 확장:
  - "계약 종료 요건"
  - "해지 통보 기한"
  - "계약 해제 사유"

5. 운영 관측 지표

  • 하이브리드 대비 벡터 단독의 Recall@5 차이
  • 리랭킹 전후 답변 품질 점수 변화
  • 리랭킹 추가 지연 (Cross-Encoder 처리 시간)
  • Query expansion 활성화율

6. Day 3 체크리스트

  1. 벡터 검색과 BM25를 RRF로 결합했다.
  2. 회수 후보 수(Top-K)와 LLM 전달 수(Top-N)를 분리해 리랭킹 단계를 추가했다.
  3. Cross-Encoder 추가 지연이 SLO에 영향을 주는지 측정했다.
  4. 의미 검색 실패 사례를 분석해 Query expansion 필요 여부를 판단했다.

다음 글 예고

Day 4에서는 RAG 평가를 다룬다. Faithfulness, Answer Relevance, Context Recall 지표가 각각 무엇을 측정하고 어떻게 자동화하는지 살펴본다.

This post is licensed under CC BY 4.0 by the author.