티스토리 뷰

# RAPTOR: 계층적 검색 트리로 검색 성능을 극대화하는 방법, 다중 문서를 활용해야할 때 유용! ⭐️

1. 기존 RAG의 한계

- 기존의 RAG(Retrieval-Augmented Generation) 시스템은 짧고 연속된 텍스트 청크만 검색하는데 집중함.

- 이 때문에 대규모 문서의 전체적인 컨텍스트를 파악하는 데 한계가 있음. 이로 인해 질문에 충분한 답변을 생성하기 어려움.

 

➡️ RAPTOR는 이러한 문제를 해결하기 위해 텍스트를 재귀적으로 클러스터링하고 요약해 계층적 트리 구조를 만듦. 이로써 상위 수준과 하위 수준의 세부 정보까지 포함하는 검색 시스템을 구현함.

 

2. Main Idea  & Method

- 기존 RAG 접근법은 상위 k개의 텍스트 청크에 의존해 문서의 주요 문맥을 포괄하지 못함.
- RAPTOR는 텍스트를 클러스터링하고 각 클러스터의 요약을 생성한 후, 이 과정을 반복해 계층적 트리 구조를 만듦. 이를 통해 다양한 수준의 질문에 효과적으로 답변할 수 있음.

(1) RAPTOR 트리 구축 절차

1. 텍스트를 문장 단위로 청크화하고 청크 임베딩을 생성해 트리의 리프 노드 형성.
2. SBERT를 사용해 청크 임베딩을 생성하고, 의미적으로 유사한 청크들을 클러스터링.
3. 클러스터링된 텍스트를 요약하고, 이를 반복적으로 상위 노드로 이어가며 트리를 구축.
4. 최종적으로 다층 트리 표현 완성.

 

(2) Querying 전략


- Tree Traversal: 트리를 순회하며 쿼리 임베딩과의 코사인 유사도에 따라 상위 k개의 노드를 선택해 탐색. 선택된 노드의 하위 노드가 다음 계층에서 고려됨. 리프 노드에 도달할 때까지 반복.
- Collapsed Tree: 트리의 모든 노드를 한 번에 고려해 관련 정보를 더 간단하게 검색함. 연산량이 많지만 FAISS와 같은 라이브러리로 보완 가능.

(3) Clustering 및 요약
- Soft Clustering: 하나의 노드가 여러 클러스터에 속할 수 있도록 유연하게 구성.
- GMM(Gaussian Mixture Model): 클러스터링에 사용하며, UMAP으로 차원 축소 후 EM 알고리즘을 활용해 파라미터 추정.
- Model-Based Summarization: 각 클러스터는 GPT-3.5-turbo** 등 언어 모델로 요약. 요약 과정에서 4%의 환각 발생했지만 상위 노드로 전파되지 않음. 질문 답변 작업에 큰 영향은 없었음.

 

3. Experiments

- NarrativeQA: SBERT, BM25, DPR과 RAPTOR 조합 시 모든 데이터셋에서 RAPTOR가 일관된 성능 우위. SBERT with RAPTOR의 성능이 가장 우수.
- QASPER 데이터셋: RAPTOR가 BM25, DPR보다 더 나은 성능 보임.
- SOTA 모델 비교: UnifiedQA등과 비교했을 때, RAPTOR는 계층적 접근 덕분에 다양한 정보를 포착해 강력한 성능 발휘.

 

4. Conclusion

RAPTOR는 재귀적 클러스터링 및 요약 기법을 통해 검색 corpus의 다양한 섹션에서 정보를 종합할 수 있는 계층적 트리 구조를 만듦. 기존 검색 방법보다 성능이 뛰어나며, 다양한 질문 답변 작업에서 새로운 성능 벤치마크를 달성함.

 

- Appendix: RAPTOR는 DPR과 비교 시 리프 노드뿐만 아니라 상위 계층의 요약에서 컨텍스트 포함. 문서의 전체적인 맥락을 설명하는 포괄적인 답변 제공