AI/AI 관련 정보

[AI 정보] RAG 성능을 올리는 실전 구조: 하이브리드 검색 + 리랭킹

AIThinkLab 2026. 2. 23. 13:48
SMALL

📚 RAG를 붙였는데 답변 품질이 기대보다 낮다면, 원인은 모델이 아니라 검색 단계(리트리벌)일 가능성이 큽니다. 실제 운영에서 자주 터지는 문제는 “못 찾음”이 아니라 “비슷하지만 핵심이 아닌 문서”를 가져오는 경우예요. 오늘은 RAG 품질을 확 올리는 실전 구조를 정리해볼게요.

 

핵심 결론부터 말하면, 요즘은 벡터 검색 단독보다 하이브리드 검색(의미+키워드) + 리랭킹 조합이 훨씬 안정적입니다. Anthropic의 Contextual Retrieval도 이 방향을 강하게 뒷받침하고 있어요.

 

1) 청킹(Chunking)부터 다시 설계하세요

문서를 무작정 500토큰으로 자르면 문맥이 찢어집니다. 문단/섹션/헤더 기반으로 나누고, 10~20% overlap을 둬야 검색 힌트를 놓치지 않아요. 특히 정책 문서, 매뉴얼, 계약서처럼 구조가 있는 문서는 heading 단위 청킹이 효과적입니다.

 

2) 임베딩 검색 + BM25를 같이 쓰세요

벡터 검색은 의미 유사성에 강하지만, 에러코드·버전명·고유명사에는 약할 수 있습니다. BM25는 반대로 정확 문자열 매칭에 강해요. 둘을 결합하면 “의미는 맞는데 키워드가 다른 문서”와 “키워드는 맞는데 맥락이 다른 문서”를 동시에 걸러낼 수 있습니다.

 

3) 리랭커(Reranker)로 마지막 정렬을 하세요

1차 검색에서 top-k(예: 20~50개)를 넉넉히 가져오고, 리랭커로 최종 top-n(예: 5~8개)을 다시 뽑아야 정답률이 올라갑니다. Cohere Rerank 문서처럼 query와 document 쌍 기준으로 재정렬하면 실제 응답 품질이 꽤 큰 폭으로 개선됩니다.

 

4) Contextual Retrieval 아이디어를 적용하세요

Anthropic이 소개한 방법은 “청크 자체에 문맥 힌트(문서 제목/섹션/업무 맥락)를 붙여 임베딩”하는 접근입니다. 동일한 문장이라도 어느 문서·어느 섹션에서 왔는지 힌트를 함께 넣으면 검색 실패율을 크게 줄일 수 있습니다.

 

5) 검색 평가 지표를 반드시 분리하세요

최종 답변 점수만 보면 어디가 문제인지 모릅니다. 최소한 아래 3개를 따로 보세요.

  • Retrieval Recall@k: 정답 문서가 k개 안에 들어왔는가?
  • Precision@k: 가져온 문서 중 쓸모 있는 문서 비율
  • Answer Faithfulness: 답변이 검색 근거를 제대로 인용했는가?

 

6) 프롬프트는 ‘근거 강제형’으로 바꾸세요

“모르면 모른다고 답하기”, “반드시 인용 근거 포함”, “근거가 부족하면 추가 질문” 같은 규칙을 프롬프트에 명시하면 환각이 줄어듭니다. 검색 품질이 80점이어도, 생성 단계 가드레일을 넣으면 체감 품질은 90점 이상으로 올라가요.

 

🚀 바로 적용 가능한 최소 파이프라인

  1. 문서 전처리(제목/섹션 메타데이터 추가)
  2. 청킹 + overlap
  3. 벡터 검색 + BM25 병렬 조회
  4. 결과 합치기(top 30)
  5. 리랭킹(top 6)
  6. 근거 강제형 프롬프트로 답변 생성

 

한 줄 결론: RAG 품질은 모델보다 검색 파이프라인 설계가 결정합니다. 하이브리드 검색 + 리랭킹 + 근거 강제형 프롬프트, 이 3개만 넣어도 실무 체감이 확 달라집니다.

 

🧪 2주 파일럿 운영 플랜(추천)

1주차에는 현재 파이프라인에서 질의 100개를 수집해 오답 유형을 태깅하세요(미검색, 오검색, 근거 불충분, 환각). 2주차에는 청킹 규칙과 리랭커만 적용한 뒤 같은 질의셋으로 A/B 테스트를 진행하면, 어디에서 품질이 실제로 개선됐는지 숫자로 확인할 수 있습니다. 특히 고객 문의형 도메인에서는 정답률보다도 “근거 제시율”과 “재질문 필요율”을 함께 보는 게 중요합니다. 최종적으로는 회귀 테스트 세트를 고정해 릴리즈마다 자동 평가하도록 만들면 운영 안정성이 크게 올라갑니다. 작은 개선이라도 매주 누적하면 체감 품질 차이가 크게 벌어집니다.

 

📚 출처

LIST