RAG 품질을 바꾸는 검색 알고리즘 (2026)
"임베딩만 바꿨는데 답변이 달라졌다"는 경험이 있으셨다면, 검색 알고리즘을 한 번에 정리해 둘 필요가 있습니다.

1. 왜 지금 알고리즘을 점검해야 하나요?
2025~2026년 사이 Weaviate, Pinecone, Milvus, LanceDB가 하이브리드 검색을 기본 기능으로 채택했고, OpenAI Responses API·Anthropic Workflows도 검색 파이프라인을 명시적으로 받도록 업데이트했습니다. 즉, "벡터 DB + LLM" 조합만으로는 경쟁력이 부족해졌고, Sparse + Dense + Re-Rank + Fusion을 유연하게 조합해야 레이턴시·정확도·비용이 균형을 이룹니다.
2. 희소 검색(Sparse Retrieval) 핵심 알고리즘
- BM25/ BM25L: 전통적인 단어 빈도(TF)와 역문서 빈도(IDF)를 이용합니다. BM25L은 긴 문서에서 과도하게 점수가 떨어지는 문제를 완화합니다. 최신 Elastic 8.x와 OpenSearch 2.x가 기본 제공합니다.
- Dirichlet LM: 언어 모델 관점의 확률적 랭킹. 긴 문서가 많은 정책/법령 RAG에서 안정적입니다.
- SPLADE-v3 (Sparse Lexical Representations): Transformer가 단어마다 가중치를 예측해 희소 벡터를 만듭니다. BM25 수준의 해석 가능성과 딥러닝 표현력을 동시에 얻을 수 있어 2025년 이후 하이브리드 검색에서 자주 쓰입니다.
- Document Expansion (DocT5Query): Dense 모델을 쓰지 않고도 질문 표현을 추가해 BM25 성능을 끌어올립니다.
3. 밀도 검색(Dense Retrieval) & ANN 인덱스
- BERT 기반 DPR: Dense Passage Retrieval. Q/K 인코더를 분리하는 쌍둥이 네트워크. 빠르게 도입 가능하지만 최신 범용 모델보다 성능이 낮습니다.
- Contriever / GTE / jina-embeddings-v3: 2025년 이후 멀티 도메인에서 가장 널리 쓰이는 공개 모델입니다. 한국어/다국어 지원도 강화되었습니다.
- ColBERTv2 + Late Interaction: 쿼리/문서 토큰 간 점수를 세밀하게 계산해 Factoid QA, 코드 RAG에서 많이 쓰입니다.
- ANN 인덱스: HNSW(Hierarchical Navigable Small World), IVF(Inverted File), PQ(Product Quantization), ScaNN 등을 상황에 맞게 선택합니다.
- 짧은 지식 베이스: HNSW + 압축 옵션 없이 운영.
- 거대한 로그/문서: IVF-PQ 조합으로 메모리를 줄이고,
ef_search/nprobe로 정확도 조절.
4. 하이브리드 검색과 융합(Fusion)
- Weighted Fusion: 스파스 점수와 덴스 점수를 정규화 후 가중합. Weaviate Hybrid Search, Pinecone PARSE가 제공.
- Reciprocal Rank Fusion(RRF): 서로 다른 검색기(예: BM25, Contriever) 순위를
1/(k + rank)로 합산. RRF는 튜닝이 간단하면서도 안정적인 상위 k 결과를 제공합니다. - Graph RAG: Neo4j, Memgraph 기반 지식 그래프에서 관계를 따라가고, 랭킹은 PageRank/ Personalized PageRank를 사용합니다. Microsoft GraphRAG 레퍼런스가 대표적입니다.
- Router 기반 선택: 질문 유형을 분류해 "숫자 질의 → BM25", "설명형 → Dense" 식으로 라우팅하는 Multi-Retriever 패턴이 2026년 기준 포럼과 오픈소스(예: LlamaIndex RouterQueryEngine)에 기본 탑재되었습니다.
5. 리랭커(Re-Ranker)와 검증
- Cross-Encoder Re-Ranker: Cohere Rerank 3, OpenAI text-embedding-3-large re-rank 모드, Nomic Rerank 등. 하위 50개 후보를 받아 문장쌍으로 점수를 다시 계산합니다.
- Self-Rerank (LLM-as-a-Judge): LLM이 스스로 근거 문장을 평가해 상위 N개를 선택합니다. 비용은 높지만 법무/컴플라이언스에서 사용됩니다.
- Diversification (MMR, IA-Select): 유사한 문서만 뽑히는 것을 막기 위해 최대한 다양한 정보를 수집하는 알고리즘입니다.
6. 최신 스택 조합 예시 (2026 Q1 현업에서 본 패턴)
- FAQ + 실시간 공지
- Sparse: BM25L (OpenSearch)
- Dense: jina-embeddings-v3-small (ANN: HNSW)
- Fusion: Weighted sum (0.6 dense / 0.4 sparse)
- Rerank: Cohere Rerank 3
- 코드/정책 RAG
- Sparse: SPLADE-v3
- Dense: ColBERTv2
- Fusion: RRF (k=60)
- Rerank: Self-Consistency + ReAct 기반 LLM 평가
- 멀티모달 리포트
- Sparse: DocT5Query 확장 텍스트
- Dense: CLIP + SigLIP for 이미지, text-embedding-3-large for 텍스트
- Fusion: Router (질문 타입 분류)
7. 도입 체크리스트
- 데이터 스키마 정의: 문서 길이, 업데이트 빈도, 도메인 언어를 기준으로 Sparse/Dense 비율을 결정합니다.
- 오프라인 평가:
ragas,mteb벤치마크, in-house 골든 셋으로 Recall@k, MRR을 측정합니다. - 온라인 실험: Langfuse, Arize에 검색/생성 로그를 모두 보내고, 사용자 피드백 기반으로 RRF 가중치나 ANN 파라미터를 조정합니다.
- 비용 추적: Dense 임베딩 생성 비용, 벡터 DB 저장 비용, Re-Rank API 호출 비용을 각각 산출해 FinOps 대시보드에 올립니다.
- 모니터링:
import-linter로 검색 코드 의존을 검사하고, Prometheus/Grafana로 검색 지연, 실패율, ANN 재빌드 시간을 추적합니다.
RAG 성능은 결국 "검색" 품질에 좌우됩니다. 2026년 현재는 스파스/덴스/퓨전/리랭커를 모듈처럼 조합해, 질문별로 최적 경로를 고르는 팀이 가장 빠르게 성과를 내고 있습니다. 알고리즘을 도구처럼 이해하고, 데이터·사용자 특성에 맞게 붙였다 떼는 습관이 LLM 제품의 승패를 가릅니다.