20분
Hybrid Search 성능 튜닝 전략
Day 2: Hybrid Search
Hybrid Search 성능 튜닝 전략
RAG 심화 > Day 2: Hybrid Search
학습 목표
Hybrid Search의 alpha 파라미터 튜닝 방법을 이해한다 RRF(Reciprocal Rank Fusion)와 Score Fusion의 차이를 설명할 수 있다 제조 현장 쿼리 유형별 최적 가중치를 결정하는 기준을 안다
Hybrid Search 성능 튜닝
Alpha 파라미터란?
alpha는 BM25(키워드)와 Semantic(의미) 검색의 가중치 비율이다.
hybrid_score = alpha * semantic_score + (1 - alpha) * bm25_score
alpha = 1.0 → 완전 Semantic
alpha = 0.0 → 완전 BM25
alpha = 0.5 → 균등 혼합
제조 쿼리 유형별 최적 alpha
| 쿼리 유형 | 예시 | 최적 alpha | 이유 |
|---|---|---|---|
| 에러 코드 | E-4521, W-1105 | 0.2 | 코드 정확 매칭 필요 |
| 규격/표준 | ISO 9001, KS B 1234 | 0.25 | 표준 번호 정확 매칭 |
| 증상 설명 | 진동이 심하고 온도 상승 | 0.8 | 의미 기반 검색 효과 |
| 절차 질의 | 금형 교체 방법 | 0.7 | 개념적 유사성 중요 |
| 부품 조회 | 베어링 7210C | 0.4 | 이름+의미 혼합 |
RRF vs Score Fusion
Score Fusion: 점수를 직접 합산
# 점수 정규화 후 가중 합산
bm25_norm = normalize(bm25_scores) # 0~1
semantic_norm = normalize(semantic_scores) # 0~1
final = alpha * semantic_norm + (1 - alpha) * bm25_norm
RRF (Reciprocal Rank Fusion): 순위 기반 합산
# 순위의 역수로 합산 (k=60이 표준)
def rrf_score(rank, k=60):
return 1 / (k + rank)
final = rrf_score(bm25_rank) + rrf_score(semantic_rank)
| 비교 | Score Fusion | RRF |
|---|---|---|
| 장점 | alpha로 세밀 조절 | 파라미터 불필요 |
| 단점 | 정규화 필수, alpha 튜닝 | 점수 차이 반영 약함 |
| 적합 | 쿼리 유형 예측 가능 | 다양한 쿼리 처리 |
A/B 테스트로 alpha 최적화
def evaluate_alpha(alpha, test_queries, ground_truth):
hits = 0
for query, relevant_docs in zip(test_queries, ground_truth):
results = hybrid_search(query, alpha=alpha, top_k=5)
if any(doc in results for doc in relevant_docs):
hits += 1
return hits / len(test_queries)
# 0.0 ~ 1.0 범위에서 최적 alpha 탐색
best_alpha = max(
((alpha, evaluate_alpha(alpha, test_q, gt))
for alpha in [i/10 for i in range(11)]),
key=lambda x: x[1]
)[0]
print(f"최적 alpha: {best_alpha}")
실무 팁: 제조 현장은 에러 코드/규격 번호 쿼리가 많으므로 alpha=0.3~0.4가 일반적으로 좋은 출발점이다.
AI로 학습하기 — 꿀팁
🤖Hybrid Search alpha 튜닝 실험 계획AI 학습 팁
제조 RAG의 BM25·벡터 가중치(alpha) 최적값을 찾기 위한 체계적 실험 설계를 AI와 함께 만들면 시행착오 없이 튜닝할 수 있습니다.
제조 설비 매뉴얼 RAG의 Hybrid Search alpha 파라미터를 최적화하기 위한 실험 계획을 만들어줘. 포함 내용: (1) 실험 설계 — alpha를 0.0, 0.25, 0.5, 0.75, 1.0으로 변화시킬 때 각각 MRR@5, Recall@10을 측정하는 방법, (2) 제조 쿼리 유형별 분류(약어 검색/개념 검색/절차 검색/수치 검색) 각 10개씩 40개 테스트 쿼리 생성 방법, (3) RRF vs Score Fusion 비교 실험 설계, (4) 결과 해석 기준(어떤 지표가 가장 높은 alpha를 최적으로 선택하는 방법). 파이썬 실험 코드 골격도 함께 작성해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • alpha는 BM25와 Semantic 가중치 비율 — 에러코드 쿼리는 낮게(0.2), 증상 쿼리는 높게(0.8)
- • RRF는 파라미터 없이 안정적, Score Fusion은 alpha 튜닝으로 세밀 제어 가능
- • A/B 테스트로 실제 쿼리 데이터 기반 최적 alpha를 결정한다