2026년 검색 품질의 표준 스택은 이것이다: 하이브리드(BM25+덴스, RRF) → 크로스인코더 리랭킹 → Contextual Retrieval 전처리. Anthropic 실측으로 top-20 검색 실패율 5.7%→1.9%(-67%) — 그리고 이 중 어느 단계도 쿼리 시점 LLM 호출이 없다.
1층: 하이브리드 — RRF k=60으로 시작
덴스 검색은 고유명사·제품코드·오타에 약하고 BM25는 동의어에 약하다. 둘을 합치는 가장 안전한 시작점이 RRF(score += 1/(k+rank), k=60): 점수 스케일이 달라도 가중치 튜닝 없이 각각 단독보다 좋다. 튜닝 여력이 생기면 점수 정규화 fusion + α 가중(Weaviate 실측 RRF 대비 recall +6%, 키워드 중요 도메인은 α 0.3~0.5)으로.
한국어 전제조건: 형태소 토크나이저
공백 분리로는 "선생님께서"와 "선생님이"가 다른 토큰 — 한국어 BM25는 토크나이저가 성패를 가른다. ES/OpenSearch면 공식 플러그인 Nori(decompound_mode=mixed로 복합명사 리콜 확보), 파이썬 스택이면 Kiwi(오타·띄어쓰기 교정 내장 — 채팅체 실쿼리에 유효). 가장 흔한 실패: 도메인 고유명사(제품명·사내 용어)를 사용자 사전에 안 넣어서 엉뚱하게 쪼개져 BM25 리콜이 조용히 새는 것.
2층: 리랭커 — 오픈소스가 상용 API를 역전했다
top-50~100을 크로스인코더로 top-5~20으로. 자기 호스팅 기본값은 bge-reranker-v2-m3(568M, 다국어). 2025-26의 변화: mxbai-rerank-v2(Apache-2.0, 1.5B)가 BEIR 57.49로 Cohere Rerank 3.5(55.39)를 추월 — A100에서 쿼리당 0.89초. 한국어 특화 파인튜닝 경로는 ko-reranker(MRR 0.80→0.87)가 검증돼 있다. GPU 운영이 싫으면 Cohere API(1천 검색당 $2) — 단 ARAGOG 연구에서 데이터셋에 따라 리랭커 이득이 본전인 사례도 있으니 자기 데이터 nDCG로 재보고 결정.
쿼리 변환은 "기본 탑재"가 아니라 선택적 무기
- HyDE — 가상의 정답 문서를 생성해 그걸로 검색. 품질 최고치를 주지만(Fudan 비교에서 Hybrid+HyDE가 최고 mAP) 쿼리당 ~11초의 대가. 그리고 사내 고유명사 질문에선 가상 문서가 엉뚱한 방향으로 환각해 검색을 망치는 역효과가 검증됐다(LlamaIndex의 "What is Bel?" 사례).
- step-back 프롬프팅 — 구체적 질문을 추상화해 함께 검색(TimeQA +27%). 검색 비용 2배이므로 라우터로 복잡한 질문에만.
- 네거티브 결과도 있다 — ARAGOG: multi-query는 baseline보다 낮았고 MMR은 이득 없음. 어떤 기법이든 골든셋 A/B 없이 프로덕션에 넣지 마라(평가 시리즈 참조).
균형 잡힌 기본 구성은 Fudan의 모듈 조합 실험(EMNLP 2024)과 동일하다: 하이브리드 검색 + 크로스인코더 리랭킹 + 512토큰 청크 — 최고 성능 구성(+HyDE)과의 품질 차이는 작고 속도는 훨씬 빠르다.
한 줄 요약: 화려한 쿼리 변환보다 "토크나이저 제대로 + 하이브리드 + 리랭커"가 먼저다.
— RAG 실전 시리즈 ⑥ / 다음 글: 생성과 grounding — 무엇을 넣지 않을지, 언제 답하지 않을지
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.