[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 적용 여부를 조정해야 한다.
'AI > LangChain' 카테고리의 다른 글
블로그의 정보
우와한개발자 님의 블로그
우와한개발자