Skip to main content
Nora 리트리벌은 기본적으로 하이브리드 검색 을 씁니다: 두 독립 랭킹 패스 (벡터·키워드) 를 하나의 최종 점수로 융합. 둘 중 하나만 쓰는 것보다 더 잘 동작합니다.

왜 하이브리드

  • 벡터 검색 은 의미가 비슷한 청크를 찾음 — 표현이 달라도. 패러프레이즈된 질문, 언어 간, 개념 매치에 좋음. 드문 정확한 용어 — SKU, 에러 코드, 고유명사 — 에는 약함.
  • 키워드 (BM25) 검색 은 같은 리터럴 용어를 가진 청크를 찾음. 식별자, 전문 용어, 정확한 문자열 조회에 좋음. 동의어·패러프레이즈에 약함.
실제 질문 대부분은 둘 다 필요.

융합 원리

벡터와 키워드가 각각 랭크된 목록을 생성. Nora 는 Reciprocal Rank Fusion (RRF) 로 결합 — 두 목록 모두에서 3위인 청크가 한 목록에서 1위이고 다른 목록에서 100위인 청크보다 더 높게 점수. RRF 는 점수 스케일 차이에 강건하고 튜닝할 매직 상수가 없음. 융합된 목록이 Agent 가 보는 것.

균형 조정

RRF 를 쓰더라도 패스에 가중치를 줄 수 있음. 리트리벌 프리셋에서:
  • Vector weight — 0.0 ~ 1.0. 기본 0.5.
  • Keyword weight — 0.0 ~ 1.0. 기본 0.5.
대화형 도메인 (지원, 법률 Q&A) 은 벡터 쪽으로. 코드, 부품 번호, 제품명은 키워드 쪽으로. 한 가중치를 0 으로 두면 그 패스가 완전 꺼짐 (순수 벡터 또는 순수 키워드).

쿼리 확장

어려운 쿼리 — 짧고, 모호하고, 단일 키워드 — 에 대해 Nora 는 쿼리를 작은 변형 세트로 재작성하고 각각 검색 가능. 결과는 재융합. 지연과 비용이 추가돼 기본 오프. 프리셋에서 켜기: Query expansion → on. 확장 개수 (2-5) 설정. 작은 모델 사용.

다국어

임베딩 모델이 다국어면 벡터 검색은 언어 간 동작. 키워드 검색은 표면 언어만 매치. 데이터가 다국어면 다국어 모델로 임베딩하고 가중치를 벡터 쪽으로.

테스트

모든 리트리벌 프리셋은 Test query 패널을 가짐. 쿼리 입력, 랭크된 결과 확인, 벡터 전용 / 키워드 전용 / 하이브리드 토글로 비교. 반환된 모든 청크에 점수 분해 표시.

하이브리드가 과할 때

매우 작은 컬렉션 (< 1000 청크) 은 키워드만으로 충분하고 추가 비용 없음. 매우 짧고 키워드 위주의 쿼리 (SKU 조회) 는 키워드만이 같은 리콜로 더 빠름. 그런 프리셋은 벡터를 끄세요.