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 조회)는 키워드만으로 같은 리콜에 더 빠릅니다. 그런 프리셋은 벡터를 끄세요.