PART 8 - 강의 2/4
검색 개선 기법
Reranking, Hybrid Search, Context 최적화 전략
01
검색 품질의 중요성
Garbage In, Garbage Out
RAG의 품질은 검색 품질에 직접적으로 의존합니다. 아무리 좋은 LLM이라도 잘못된 문서를 받으면 좋은 답변을 할 수 없습니다.
검색 품질 지표
- Precision (정밀도): 검색된 문서 중 실제 관련 문서 비율
- Recall (재현율): 전체 관련 문서 중 검색된 비율
- MRR (Mean Reciprocal Rank): 첫 번째 관련 문서의 순위
- NDCG: 순위를 고려한 관련성 점수
02
Reranking (재순위화)
더 정교한 모델로 재정렬
초기 검색 결과를 더 정교한 모델로 재정렬하여 가장 관련성 높은 문서가 상위에 오도록 합니다.
1단계: 초기 검색 (Bi-encoder)
빠른 벡터 검색으로 Top-100 후보 문서 검색
Doc A 0.92
Doc B 0.89
Doc C 0.87
Doc D 0.85
... Top-100
2단계: Reranking (Cross-encoder)
쿼리-문서 쌍을 함께 분석하여 정밀한 관련성 점수 계산
Doc A 0.95
Doc C 0.91
Doc B 0.45
Doc D 0.32
3단계: Top-K 선택
재정렬된 결과에서 상위 K개 문서를 LLM에 전달
Doc A
Doc C
Bi-encoder vs Cross-encoder
| 특성 | Bi-encoder (초기 검색) | Cross-encoder (Reranker) |
|---|---|---|
| 처리 방식 | 쿼리/문서 독립 임베딩 | 쿼리+문서 함께 처리 |
| 속도 | 빠름 (사전 계산) | 느림 (실시간 계산) |
| 정확도 | 상대적으로 낮음 | 높음 |
| 용도 | 대규모 후보 검색 | 소수 후보 재정렬 |
인기 Reranker 모델
| 모델 | 타입 | 특징 |
|---|---|---|
| Cohere Rerank | API | 높은 성능, 다국어 지원, 간편한 사용 |
| BGE Reranker | 오픈소스 | MTEB 상위권, 중국어/영어 강점 |
| cross-encoder/ms-marco | 오픈소스 | MS MARCO 학습, 널리 사용됨 |
| Jina Reranker | API | 8K 컨텍스트 지원, 빠른 속도 |
03
Hybrid Search 심화
Dense + Sparse 검색 결합
Dense(의미)와 Sparse(키워드) 검색을 결합하여 두 방식의 장점을 모두 취합니다.
Dense Search
의미 기반 검색
동의어, 문맥 이해
동의어, 문맥 이해
+
Sparse Search
키워드 기반 (BM25)
정확한 매칭
정확한 매칭
->
Hybrid Result
RRF로 결합
균형 잡힌 검색
균형 잡힌 검색
RRF (Reciprocal Rank Fusion)
순위 기반 융합
각 검색 결과의 순위를 기반으로 최종 점수를 계산합니다.
점수 스케일이 다른 검색 결과도 쉽게 결합할 수 있습니다.
RRF_score(d) = Sum 1/(k + rank(d))
k = 60 (일반적)
k = 60 (일반적)
Weighted Average
가중 평균
Dense와 Sparse 점수를 가중 평균합니다.
가중치(alpha)를 조절하여 어느 쪽에 더 비중을 둘지 결정합니다.
score = alpha x dense + (1-alpha) x sparse
alpha = 0.5~0.7 (보통)
alpha = 0.5~0.7 (보통)
Hybrid Search가 특히 효과적인 경우
- 제품명, 코드명 등 고유명사가 많은 문서
- 정확한 숫자/날짜 검색이 필요한 경우
- 전문 용어와 일반 설명이 섞인 문서
04
컨텍스트 윈도우 최적화
Lost in the Middle 문제 해결
연구에 따르면 LLM은 컨텍스트의 처음과 끝에 있는 정보에 더 집중하고, 중간에 있는 정보는 간과하는 경향이 있습니다.
LLM의 위치별 주의(Attention) 분포 (개념적 시각화)
해결 전략
1. 중요도 기반 재배치
가장 관련성 높은 문서를 처음과 끝에 배치
가장 관련 높음
Position 1
관련 중간
Position 2
관련 낮음
Position 3
두 번째로 관련 높음
Position 4 (끝)
적절한 K 선택
너무 많은 문서는 노이즈를 증가시킵니다.
보통 3-5개의 고품질 청크가 10개의 중간 품질 청크보다 낫습니다.
Context Compression
검색된 문서에서 관련 부분만 추출하여 컨텍스트를 압축합니다.
LLM이나 추출 모델을 사용합니다.
05
최적화된 검색 파이프라인
단계별 검색 개선 프로세스
1
쿼리 변환
HyDE, Multi-Query 등으로 쿼리 최적화
v
2
Hybrid Search
Dense + Sparse 검색으로 Top-100 후보 추출
v
3
Reranking
Cross-encoder로 재정렬, Top-10 선택
v
4
Context 최적화
압축, 재배치, 중복 제거
v
5
LLM 생성
최적화된 컨텍스트로 답변 생성
06
검색 품질 평가
주요 평가 지표
Precision@K
관련 n 검색 / K
상위 K개 중 관련 문서 비율
Recall@K
관련 n 검색 / 전체 관련
전체 관련 문서 중 검색된 비율
MRR
1 / 첫 관련 문서 순위
첫 번째 관련 문서의 순위
NDCG
DCG / IDCG
순위 가중 관련성 점수
평가 팁
- 테스트 데이터셋 (쿼리 + 정답 문서) 구축 필수
- 단일 지표보다 여러 지표를 함께 확인
- 최종적으로는 LLM 답변 품질로 평가
SUMMARY
핵심 요약
- Reranking - Cross-encoder로 정밀 재정렬
- Hybrid Search - Dense + Sparse 결합
- Context 최적화 - 위치, 압축, K 조절
- 평가 지표 - Precision, Recall, MRR, NDCG