20

Hybrid Search 성능 튜닝 전략

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-11050.2코드 정확 매칭 필요
규격/표준ISO 9001, KS B 12340.25표준 번호 정확 매칭
증상 설명진동이 심하고 온도 상승0.8의미 기반 검색 효과
절차 질의금형 교체 방법0.7개념적 유사성 중요
부품 조회베어링 7210C0.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 FusionRRF
장점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를 결정한다