우와한 개발자

[LangChain] RAG 검색 품질 높이기 — Hybrid Search, Reranking

by 우와한개발자

1. Hybrid Search ─ Keyword + Vector

(1) 개념

  • Hybrid Search는 키워드 검색과 벡터 검색을 결합한 검색 방식이다.
  • 단일 검색 방식의 한계를 보완하기 위해 사용한다.
  • BM25 검색과 Vector 검색의 장점을 함께 활용하여 검색 정확도를 높인다.

(2) BM25 검색

  • 정확한 키워드 매칭에 강하다.
  • 전문 용어, 상품명, 사람 이름, 코드명, 약어 검색에 유리하다.
  • 사용자가 입력한 단어가 문서에 직접 포함되어 있을 때 효과적이다.

(3) Vector 검색

  • 의미적 유사성 파악에 강하다.
  • 동의어, 유사 표현, 문맥 기반 검색에 유리하다.
  • 사용자가 문서와 다른 표현으로 질문해도 관련 문서를 찾을 수 있다.

(4) Hybrid Search가 필요한 이유

  • 키워드 검색만 사용하면 표현이 다를 때 관련 문서를 놓칠 수 있다.
  • 벡터 검색만 사용하면 정확한 고유명사나 전문 용어 검색에서 약할 수 있다.
  • 두 방식을 결합하면 정밀도와 재현율을 함께 높일 수 있다.

 

2. Reranking ─ 검색 품질 향상

(1) 개념

  • Reranking은 초기 검색 결과의 순서를 더 정교한 모델로 다시 평가하는 단계이다.
  • Vector Search 또는 Hybrid Search로 후보 문서를 넓게 가져온 뒤, Reranker가 질의와 문서의 관련도를 다시 계산한다.
  • 최종적으로 관련도가 높은 문서만 LLM context로 전달한다.

(2) 필요한 이유

  • 초기 검색 결과에는 관련성이 낮은 문서가 포함될 수 있다.
  • 검색 결과 순서가 부정확하면 LLM이 잘못된 문서를 참고할 수 있다.
  • Reranking을 적용하면 최종 context 품질을 높일 수 있다.

(3) 처리 흐름

1단계: 초기 검색
Vector Search 또는 Hybrid Search로 후보 문서를 넓게 검색한다.
예: Top-50

2단계: Reranker 적용
Cross-Encoder 계열 모델이 질문과 문서 쌍의 관련도를 정밀하게 재점수화한다.

3단계: 최종 선택
재점수 결과를 기준으로 상위 k개의 문서를 LLM context로 전달한다.
예: Top-5

(4) 대표 Reranker

  • Cohere Rerank
  • BGE Reranker
  • Cross-Encoder 모델

 

3. RAG의 주의점

(1) 검색 품질

  • 잘못된 문서가 검색되면 답변 품질도 떨어진다.
  • chunk 크기, chunk overlap, top-k, 임계값 설정이 중요하다.

(2) 토큰 비용

  • 검색된 문서를 프롬프트에 포함하기 때문에 토큰 사용량이 증가한다.
  • 필요한 만큼만 context에 포함해야 한다.

(3) 근거 기반 답변 설계

  • LLM이 검색된 문서에 없는 내용을 임의로 생성하지 않도록 프롬프트를 설계해야 한다.
  • 문서에 근거가 없으면 모른다고 답하도록 지시하는 것이 좋다.

(4) 문서 전처리 품질

  • PDF에서 텍스트가 깨지거나 표, 이미지, 수식이 제대로 추출되지 않으면 검색 품질이 떨어질 수 있다.
  • 문서 로딩, 텍스트 추출, chunking 과정을 꼼꼼히 확인해야 한다.

(5) 평가와 튜닝

  • RAG는 한 번 구성하고 끝나는 구조가 아니다.
  • 검색 결과, 답변 정확도, 근거 충실성을 지속적으로 평가해야 한다.
  • 필요에 따라 chunk size, overlap, top-k, retriever 방식, reranker 적용 여부를 조정해야 한다.

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기