4

Hybrid Search 성능 튜닝 전략

Day 2: Hybrid Search

학습 목표
  • Hybrid Search의 alpha 파라미터 튜닝 방법을 이해한다
  • RRF(Reciprocal Rank Fusion)와 Score Fusion의 차이를 설명할 수 있다
  • 시뮬레이터에서 alpha·청크 크기·top-K 를 바꿔 가며 hit rate 와 MRR 의 변화를 직접 측정한다

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}")

글로 읽지 말고 슬라이더를 움직여라

위 코드를 돌리려면 평가셋과 임베딩 API 가 필요하다. 아직 없다면 연결된 rag-pipeline 시뮬레이터의 평가·튜닝 탭에서 같은 일을 할 수 있다. 질문 세트와 코퍼스가 이미 들어 있고, 노브를 움직이면 hit rate 와 MRR 이 그 자리에서 다시 계산된다. 하드코딩된 값이 아니라 실제 검색 결과에서 나온 값이다.

움직일 수 있는 것은 다섯 가지다 — 청크 크기, 오버랩, top-K, 리랭커 on/off, 하이브리드 alpha. 다음 순서로 재라.

  1. alpha 를 1.0(벡터만)에서 0.0(BM25만)까지 옮기며 hit rate 를 적는다. 최고점은 어디인가.
  2. 그 alpha 를 고정하고 청크 크기를 바꾼다. alpha 의 최적값이 따라 움직이는가.
  3. 목표 hit rate 는 0.85 다. 기본 설정으로는 닿지 않는다. 어떤 조합에서 넘는가.

세 번째가 이 시뮬의 핵심이다. 하나의 노브만으로는 목표에 닿지 않게 설계되어 있고, 그것이 실제 튜닝의 모습이다.

실무 팁: 제조 현장은 에러 코드/규격 번호 쿼리가 많으므로 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를 최적으로 선택하는 방법). 파이썬 실험 코드 골격도 함께 작성해줘.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
RAG Pipeline - 평가·튜닝 탭
alpha·청크 크기·top-K·리랭커를 움직이며 hit rate 와 MRR 이 어떻게 변하는지 직접 재보세요. 목표 hit rate 0.85 는 기본 설정으로는 닿지 않습니다.
핵심 포인트
  • alpha는 BM25와 Semantic 가중치 비율 — 에러코드 쿼리는 낮게(0.2), 증상 쿼리는 높게(0.8)
  • RRF는 점수 스케일 문제가 없어 기본값으로 쓸 만하고, Score Fusion은 평가셋을 갖춘 뒤 세밀 제어에 쓴다
  • 최적 alpha 는 청크 크기와 함께 움직인다. 노브 하나만 돌려서는 목표 지표에 닿지 않는다
용어