90

Hybrid Search 엔진 구현

Day 2: Hybrid Search

학습 목표

BM25 + Semantic Search를 결합하는 코드를 작성할 수 있다 Score Fusion과 RRF 두 가지 결합 방법을 구현할 수 있다 알파 가중치를 최적화하는 방법을 적용할 수 있다 제조 쿼리 유형별 적응형 가중치를 설정할 수 있다

Hybrid Search 엔진 구현

BM25와 Semantic Search를 결합하는 Hybrid Search를 구현하자. 두 가지 결합 방법(Score Fusion, RRF)을 모두 만들고 비교한다.

목표

  1. BM25 인덱스 구축
  2. Score Fusion (가중 합산) 구현
  3. RRF (Reciprocal Rank Fusion) 구현
  4. 쿼리 유형별 적응형 가중치

아래 스타터 코드를 완성하세요.

에디터 로딩 중...
힌트 보기
  • BM25Okapi는 토크나이즈된 코퍼스(2D list)를 생성자에 전달합니다
  • ChromaDB의 distance를 similarity로 변환: similarity = 1 - distance
  • Score Fusion 전에 반드시 Min-Max 정규화를 적용하세요 (BM25와 cosine의 스케일이 다릅니다)
  • RRF에서 검색 결과에 없는 문서의 순위는 initial_k + 1로 설정합니다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
🤖BM25+Semantic 결합 코드 생성AI 학습 팁

BM25와 임베딩 검색 점수를 RRF로 융합하는 Hybrid Search 클래스를 AI로 스캐폴딩하세요. 제조 설비 고장 매뉴얼 검색에 맞게 가중치 파라미터를 노출하도록 요청하세요.

제조 설비 고장 매뉴얼을 검색하는 Hybrid Search 엔진을 Python으로 구현해줘. BM25Retriever와 FAISS 임베딩 검색 결과를 Reciprocal Rank Fusion(RRF)과 Score Fusion 두 방식으로 결합하고, alpha 가중치를 생성자 파라미터로 받는 클래스 구조로 작성해줘.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
🧪Vector Store
벡터 검색과 BM25 결합을 테스트해보세요