티스토리 뷰

이 글은 RAG 아키텍처 발전사 시리즈의 두 번째 편입니다. 이전 편에서 1세대 Naive RAG의 구조와 의의를 살펴보았고, 이번 편에서는 그 한계를 극복하기 위해 등장한 2세대 Advanced RAG를 다룹니다. 시리즈는 이후 3세대 Modular/Self-Corrective RAG, 3.5세대 Ontology-Enhanced RAG, 4세대 Agentic RAG로 이어질 예정입니다. 



Naive RAG가 남긴 숙제

이전 편에서 Naive RAG의 네 가지 구조적 한계를 정리한 바 있습니다. 검색 품질에 전적으로 의존하는 구조, Dense Retrieval만으로는 키워드·희귀 엔티티 매칭이 어려운 문제, 청크 단위 검색으로 인한 거시적 맥락 부재, 그리고 모든 질의에 대해 무조건 검색을 수행하는 비효율성이 그것이었습니다. 

2세대 Advanced RAG는 이 중 검색 품질 강화에 집중했습니다. "더 좋은 문서를 더 정확하게 가져오는 것"이 이 세대의 핵심 과제였고, 이를 위해 검색 파이프라인의 전·중·후 단계를 각각 보강하는 전략이 등장했습니다. 검색 범위를 확대하는 Hybrid Search(Pre-Retrieval/Retrieval), 검색 결과의 정밀도를 높이는 Reranker(Post-Retrieval), 그리고 검색 대상 자체를 다층적으로 구조화하는 RAPTOR와 Tree RAG가 대표적입니다.




Hybrid Search: Sparse와 Dense의 결합

Naive RAG에서 사용된 Dense Retrieval은 질의와 문서 사이의 의미적 유사성을 벡터 공간에서 포착하는 데 강점이 있었지만, 정확한 키워드 매칭이 필요한 상황에서는 취약했습니다. 반대로, 전통적인 Sparse 검색 방식인 BM25는 TF-IDF 기반의 확률 모델로 정확한 키워드·희귀 토큰 매칭에 뛰어나지만, 동의어나 패러프레이즈로 표현된 의미적으로 유사한 문서를 놓치는 한계가 있었습니다.

흥미로운 점은, 이 두 방식이 검색하는 문서 집합이 상당 부분 겹치지 않는다는 실험적 관찰이었습니다. Sparse 검색과 Dense 검색이 서로 다른 문서 집합을 반환한다는 이 상호 보완성이 두 방식을 결합하는 동기가 되었습니다. BM25가 잡아내는 키워드 기반 관련 문서와 DPR이 포착하는 의미 기반 관련 문서를 함께 활용하면, 어느 한쪽만으로는 도달할 수 없는 검색 커버리지를 확보할 수 있다는 것입니다.


Hybrid Search의 구조는 비교적 직관적입니다. 하나의 질의에 대해 BM25와 Dense Retriever를 독립적으로 실행한 뒤, 두 검색기의 결과를 하나의 순위 목록으로 융합합니다. 융합 전략에는 몇 가지 선택지가 있습니다. 각 검색기의 점수를 정규화한 뒤 가중 합산하는 Late Score Fusion, 순위 정보만을 활용하여 점수 정규화 문제를 우회하는 Reciprocal Rank Fusion(RRF), 그리고 단일 모델에서 Sparse/Dense 표현을 동시에 생성하는 Unified Single-Model 방식이 있습니다.


이 중 RRF는 Cormack et al. (2009)이 SIGIR에서 발표한 방법으로, 1/(k + rank)라는 간단한 공식으로 각 검색기의 순위를 점수로 변환하여 합산합니다. 점수 분포가 검색기마다 다른 문제를 순위라는 공통 척도로 치환한 것이 핵심 아이디어이며, 구현이 단순하면서도 효과적이어서 실무에서 널리 채택되고 있습니다.


DPR 논문의 실험 결과를 보면, Dense Retriever 단독으로도 BM25 대비 Top-20 검색 정확도에서 9~19%의 절대 향상을 달성했으며, Hybrid 방식은 각 검색기의 단독 사용 대비 일관된 성능 향상을 보였습니다 (Karpukhin et al., 2020).


그러나 Hybrid Search에도 한계는 있었습니다. 두 검색기의 결과를 융합하더라도, 두 검색기 모두 관련성이 낮은 문서를 상위에 반환할 수 있다는 근본적인 문제는 해결되지 않습니다. 또한 BM25와 Dense Retriever 사이의 융합 가중치가 데이터셋 특성에 따라 달라지기 때문에 별도의 튜닝이 필요하며, 검색된 결과 목록 내에서 정밀한 순위 조정을 수행하는 메커니즘은 여전히 부재했습니다. 이 마지막 한계가 Reranker의 등장 배경이 됩니다.



Reranker: 검색 결과의 정밀 재순위화

Hybrid Search를 포함한 1단계 검색에서 사용되는 Bi-encoder 방식은 질의와 문서를 각각 독립적으로 인코딩합니다. 질의 벡터와 문서 벡터를 사전에 따로 계산할 수 있기 때문에 대규모 문서 컬렉션에서 빠른 검색이 가능하지만, 질의와 문서 사이의 세밀한 상호작용(예를 들어 특정 단어가 질의 맥락에서 어떤 의미로 쓰였는지)을 포착하는 데는 구조적 한계가 있습니다.

이 문제를 해결하기 위해 등장한 것이 Retrieve → Rerank 2단계 파이프라인입니다. 1단계에서 Bi-encoder로 넓은 범위의 후보 문서(Top-N, 보통 1001,000개)를 빠르게 검색한 뒤, 2단계에서 더 정밀한 모델로 이 후보들의 순위를 재조정하여 최종 Top-k(510개)를 선별하는 구조입니다.


2단계 재순위화에는 크게 두 가지 접근법이 제안되었습니다.


첫 번째는 Cross-Encoder 방식입니다. Nogueira & Cho (2019)가 제안한 이 방법은 질의와 문서를 [CLS] query [SEP] passage [SEP] 형태로 하나의 입력으로 연결하여 BERT에 통째로 입력합니다. BERT의 Full Attention 메커니즘이 질의와 문서의 모든 토큰 쌍 사이의 상호작용을 계산하므로, Bi-encoder보다 훨씬 정밀한 관련성 판단이 가능합니다. 다만 각 (질의, 문서) 쌍마다 개별적으로 BERT 추론을 수행해야 하므로, 후보 문서 수에 비례하는 O(N) 계산 비용이 발생합니다. 그럼에도 이 방식의 효과는 확실했습니다. Nogueira & Cho의 BERT Reranker는 MS MARCO Passage Retrieval 벤치마크에서 당시 리더보드 1위를 달성했습니다.


두 번째는 Late Interaction 방식으로, Khattab & Zaharia (2020)가 제안한 ColBERT가 대표적입니다. ColBERT는 질의와 문서를 독립적으로 인코딩하되(여기까지는 Bi-encoder와 동일합니다)단일 벡터가 아닌 토큰 수준의 벡터 시퀀스를 유지합니다. 이후 각 질의 토큰에 대해 모든 문서 토큰과의 유사도 중 최댓값을 취하는 연산을 수행하고, 이 값들을 합산하여 최종 점수를 산출합니다. 문서 인코딩을 사전에 수행할 수 있으면서도 토큰 수준의 세밀한 매칭이 가능하다는 점이 핵심입니다. ColBERT는 MS MARCO에서 기존 BERT 기반 모델 대비 두 자릿수(two orders of magnitude) 이상 빠른 검색 속도를 달성하면서도 효과적인 검색 성능을 유지했습니다 (Khattab & Zaharia, 2020).


정리하면, Bi-encoder는 빠르지만 정밀도가 낮고, Cross-Encoder는 정밀하지만 느리며, ColBERT의 Late Interaction은 독립 인코딩의 효율성과 토큰 수준 매칭의 정밀성 사이에서 균형을 잡는 위치에 있습니다. 실무에서는 태스크의 요구사항(응답 지연 허용 범위, 후보 문서 수, 정밀도 요구 수준)에 따라 적절한 조합을 선택하게 됩니다.


Reranker가 검색 결과의 순위 정밀도를 크게 향상시킨 것은 사실이지만, 해결하지 못하는 문제도 명확합니다. Cross-Encoder의 높은 추론 비용은 실시간 서비스 적용에 제약이 되며, 1단계 검색에서 관련 문서가 아예 포함되지 않은 경우(오검색)에는 아무리 정밀하게 재순위화해도 의미가 없습니다. 또한 문서의 다층적 맥락(세부 사실과 전체 요약을 동시에 검색하는 것)은 Reranker의 범위 밖에 있었습니다. 이 마지막 한계는 RAPTOR와 Tree RAG의 등장 배경으로 이어집니다.




RAPTOR: 재귀적 요약 트리로 거시적 맥락 확보


Hybrid Search와 Reranker가 검색의 커버리지와 정밀도를 개선했다면, RAPTOR는 검색 대상 자체의 구조를 근본적으로 바꾸는 접근을 취했습니다.

기존 RAG 파이프라인에서 검색의 기본 단위는 일정 크기로 분할된 텍스트 청크입니다. 이 방식은 구현이 단순하고 세부적인 사실을 검색하는 데 효과적이지만, 문서 전체를 관통하는 주제나 여러 섹션에 걸친 맥락을 파악해야 하는 질의에는 구조적으로 취약합니다. 예를 들어 "이 논문의 핵심 기여는 무엇인가?"라는 질문에 답하려면 논문의 여러 부분에 분산된 정보를 종합해야 하는데, 개별 청크만으로는 이 종합이 어렵습니다.

Sarthi et al. (2024)이 ICLR에서 발표한 RAPTOR(Recursive Abstractive Processing for Tree-Organized Retrieval)는 이 문제에 대해 다층 추상화 트리라는 해법을 제시했습니다. 아이디어의 핵심은 Bottom-up 방식으로 텍스트 청크를 재귀적으로 클러스터링하고 요약하여, 원본 텍스트부터 문서 수준 요약까지 여러 추상화 레벨을 하나의 트리 구조에 담는 것입니다.


구축 과정은 다음과 같습니다. 먼저 원본 문서를 100토큰 단위(문장 경계 기준)로 청크를 분할합니다. 이것이 트리의 리프 노드(Level 0)가 됩니다. 각 청크를 임베딩한 뒤 클러스터링을 수행하고, 각 클러스터에 속한 청크들을 LLM으로 요약하여 상위 레벨(Level 1)의 노드를 생성합니다. 이후 Level 1의 요약 노드들을 다시 임베딩 → 클러스터링 → 요약하여 Level 2를 구축하고, 더 이상 클러스터링이 의미 없을 때까지 이 과정을 재귀적으로 반복합니다.


완성된 트리에서 리프 노드는 원본 텍스트의 세부 사실을, 상위 노드로 올라갈수록 더 추상적인 요약을 담게 됩니다. 검색 시에는 트리의 여러 계층에서 관련 정보를 통합 검색할 수 있습니다.


실험 결과는 인상적이었습니다. GPT-4와 RAPTOR 검색을 결합한 경우, 긴 문서의 다단계 추론을 요구하는 QuALITY 벤치마크에서 기존 최고 성능 대비 절대 정확도 20%의 향상을 달성했습니다 (Sarthi et al., 2024). 세부적인 사실 질의에는 리프 노드가, 거시적 맥락이 필요한 질의에는 상위 요약 노드가 검색됨으로써, 하나의 인덱스 안에서 다양한 추상화 수준의 정보에 접근할 수 있게 된 것입니다.


다만 RAPTOR의 트레이드오프도 분명합니다. 재귀적 클러스터링과 LLM 요약을 반복하는 트리 구축 과정은 상당한 계산 비용을 수반합니다. 또한 트리 구조가 정적이기 때문에, 원본 문서가 변경되면 트리 전체를 재구축해야 합니다. 그리고 RAPTOR의 강점은 긴 문서에서의 복잡한 추론 태스크에 집중되어 있어, 짧은 문서나 단순 사실 질의 위주의 시나리오에서는 오버헤드 대비 효용이 크지 않을 수 있습니다.



Tree RAG: 엔티티 계층 구조의 활용

RAPTOR가 텍스트 내용을 기반으로 트리를 자동 구축했다면, Tree RAG(T-RAG)는 도메인에 이미 존재하는 계층 구조를 명시적으로 활용하는 접근을 취했습니다.

Fatehkia et al. (2024)이 제안한 T-RAG는 조직 내부 지식(거버넌스 매뉴얼, 조직도, 정책 문서 등)에 대한 질의응답에서 출발했습니다. 이런 도메인에서는 "Team Alpha의 역할은?"이라는 질문에 답하기 위해 Team Alpha가 속한 부서, 그 부서가 속한 사업부, 나아가 조직 전체에서의 위치라는 계층적 맥락이 필수적입니다. 그런데 이 정보는 평면적인 청크 검색만으로는 온전히 포착되지 않습니다. Team Alpha에 대한 설명이 담긴 청크를 검색하더라도, 그 팀이 조직도 상 어디에 위치하는지는 별도 청크에 분산되어 있거나 명시되어 있지 않을 수 있기 때문입니다.


T-RAG의 구조는 기존 RAG 파이프라인에 엔티티 트리 경로 정보를 추가하는 하이브리드 방식입니다. 질의가 들어오면 두 갈래로 처리가 진행됩니다. 한쪽에서는 일반적인 벡터 DB 검색으로 관련 청크를 가져오고, 다른 쪽에서는 질의에서 엔티티를 인식한 뒤 사전에 구축된 조직 계층 트리를 순회하여 해당 엔티티와 그 상위·하위 노드의 텍스트 설명을 생성합니다. 이 두 결과를 결합한 증강 컨텍스트가 Fine-tuned LLM에 전달되어 최종 답변을 생성합니다.


이 접근의 강점은 계층 정보를 명시적으로 컨텍스트에 포함시킴으로써, 엔티티의 조직적 위치와 관계를 모델이 정확히 참고할 수 있다는 점입니다. Fatehkia et al. (2024)의 실험에서 이 방식은 조직 내 엔티티 관련 질의에 대해 시스템의 강건성을 유의미하게 향상시켰습니다. 논문 제목이 "Lessons from the LLM Trenches"인 것처럼, 실제 기업 환경에서의 적용 경험과 최종 사용자 피드백을 반복적으로 반영한 실용적 방법론이라는 점도 주목할 부분입니다.


한편, T-RAG의 한계도 분명합니다. 엔티티 트리가 수동으로 설계되어야 한다는 점은 RAPTOR의 자동 트리 구축과 대비되는 제약입니다. 트리의 깊이와 데이터셋 규모가 증가하면 검색 시간의 확장성 문제가 발생할 수 있으며, 조직 구조라는 특정 도메인에 맞춰 설계되었기 때문에 범용적으로 적용하기에는 한계가 있습니다.


RAPTOR와 T-RAG를 나란히 놓고 보면, 둘 다 "평면적 청크 검색의 맥락 부재"라는 동일한 문제를 트리 구조로 해결하려 했지만 방향이 다릅니다. RAPTOR는 텍스트 내용에서 추상화 계층을 자동으로 발견하는 데 초점을 맞추었고, T-RAG는 도메인에 이미 존재하는 구조적 지식을 명시적으로 활용하는 데 초점을 맞추었습니다. 어느 쪽이 더 나은가의 문제라기보다는, 적용하려는 도메인과 데이터의 특성에 따라 적합한 접근이 달라진다고 보는 것이 타당합니다.



2세대가 남긴 것

2세대 Advanced RAG의 네 가지 기법을 관통하는 핵심은 명확합니다. 더 좋은 문서를 더 정확하게 가져오는 것. Hybrid Search는 검색의 커버리지를, Reranker는 검색 결과의 정밀도를, RAPTOR와 Tree RAG는 검색 대상의 구조적 깊이를 각각 개선했습니다. Naive RAG가 단일 Dense Retriever에 전적으로 의존했던 것에 비하면, 검색 품질 자체는 상당한 수준으로 향상되었습니다. 

그러나 이 세대의 기법들을 살펴보면서 느끼게 되는 것은, 각 기법이 파이프라인의 서로 다른 단계를 독립적으로 개선했다는 점입니다. Hybrid Search는 Retrieval 단계를, Reranker는 Post-Retrieval 단계를, RAPTOR는 Indexing 단계를 각각 보강했지만, 이들 사이의 통합적인 의사결정 메커니즘은 존재하지 않았습니다.


예를 들어, 검색된 문서가 정말 질의에 관련이 있는지를 시스템 스스로 판단하는 기능은 없습니다. Reranker가 순위를 재조정하더라도, 그 결과가 신뢰할 만한지를 검증하는 단계가 빠져 있습니다. 이번 질의에 외부 검색이 정말 필요한 것인지, 아니면 모델의 파라메트릭 지식만으로 충분한지를 판단하는 로직도 없습니다. 검색 결과가 전반적으로 저품질인 경우, 웹 검색 등 대안적 경로로 전환하는 교정 메커니즘도 부재합니다.


결국 2세대는 "더 좋은 재료를 가져오는 것"에는 성공했지만, "가져온 재료가 정말 쓸 만한지 판단하고, 문제가 있으면 스스로 교정하는 것"까지는 나아가지 못했습니다. 이 한계(전체적인 통합과 자기 교정 능력의 부재)가 3세대의 등장을 촉발했습니다.



정리하며

2세대 Advanced RAG의 기법들을 정리하면서 개인적으로 인상 깊었던 부분은, 각 기법이 매우 구체적이고 명확한 문제 하나에 집중했다는 점입니다. Hybrid Search는 Dense Retrieval의 키워드 매칭 취약성, Reranker는 Bi-encoder의 정밀도 한계, RAPTOR는 청크 단위 검색의 맥락 부재, T-RAG는 계층적 관계 표현의 어려움. 각각 하나의 문제를 정확히 짚고, 그에 대한 해법을 제시했습니다.

동시에, 이 기법들이 독립적으로 발전한 만큼 "이것들을 어떻게 하나의 파이프라인으로 통합할 것인가"라는 다음 단계의 질문이 자연스럽게 떠오릅니다. 검색 여부를 스스로 판단하고, 검색 결과를 자체적으로 검증하며, 필요하면 대안적 경로로 전환하는 자기 성찰적 시스템. 다음 편에서는 바로 이 질문에 답하는 3세대 Modular/Self-Corrective RAG(Self-RAG, CRAG, Adaptive-RAG, Graph RAG, Modular RAG)를 다루겠습니다.


 

References

  • Robertson, S., & Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval, 3(4), 333-389. DOI:10.1561/1500000019
  • Cormack, G. V., Clarke, C. L., & Buettcher, S. (2009). Reciprocal Rank Fusion outperforms Condorcet and Individual Rank Learning Methods. SIGIR 2009. DOI:10.1145/1571941.1572114
  • Nogueira, R., & Cho, K. (2019). Passage Re-ranking with BERT. arXiv:1901.04085
  • Karpukhin, V., Oguz, B., Min, S., Lewis, P., Wu, L., Edunov, S., Chen, D., & Yih, W. (2020). Dense Passage Retrieval for Open-Domain Question Answering. EMNLP 2020. arXiv:2004.04906
  • Khattab, O., & Zaharia, M. (2020). ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT. SIGIR 2020. arXiv:2004.12832
  • Sarthi, P., Abdullah, S., Tuli, A., Khanna, S., Goldie, A., & Manning, C. D. (2024). RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval. ICLR 2024. arXiv:2401.18059
  • Fatehkia, M., Lucas, J. K., & Chawla, S. (2024). T-RAG: Lessons from the LLM Trenches. arXiv:2402.07483
  • Gao, Y., Xiong, Y., Gao, X., et al. (2024). Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997