이번에 더 배울 것
RAPTOR(Sarthi et al. 2024)는 코퍼스를 100토큰 정도의 짧은 청크로 자르고(문장을 중간에 자르지 않음) SBERT로 임베딩해 나무의 잎으로 둡니다. 비슷한 청크를 군집으로 묶고 LLM으로 각 군집을 요약한 뒤, 요약을 다시 임베딩·군집·요약하는 일을 더 묶을 수 없을 때까지 반복해 아래에서 위로 여러 층의 나무를 만듭니다. 군집은 가우스 혼합 모델(GMM)을 쓰는 소프트 군집이라 한 청크가 여러 군집에 속할 수 있고, 차원 축소에 UMAP, 군집 수 결정에 BIC를 씁니다.
검색 방식은 두 가지입니다. 나무 순회(tree traversal)는 맨 위층에서 질문과 가까운 상위 k개를 고르고, 그 자식들 가운데 다시 상위 k개를 고르며 내려갑니다. 접힌 나무(collapsed tree)는 모든 층의 노드를 한 층으로 펼쳐 질문과 코사인 유사도가 높은 순으로 토큰 한도까지 담습니다. 논문의 QASPER 비교에서는 접힌 나무가 꾸준히 더 좋았는데, 질문마다 알맞은 추상 수준의 노드를 자유롭게 고를 수 있기 때문이라고 설명합니다.
GraphRAG와 비교하면 RAPTOR는 의미가 비슷한 텍스트끼리 묶고, GraphRAG는 엔티티와 관계로 이어진 무리를 묶습니다. RAPTOR는 엔티티 추출이 없어 인덱싱 과정이 단순하지만, ‘누가 누구와 연결되었나’ 같은 명시적 관계 경로는 남지 않습니다. GraphRAG 논문도 자신이 RAPTOR 같은 계층 요약 방식과 비슷하다고 언급하면서, 그래프 인덱스를 만들고 커뮤니티 탐지로 주제를 나누는 점을 차이로 듭니다.
작은 예제로 따라가기
잎 청크 8개를 군집하면 A{1,2,3}, B{3,4,5}, C{6,7,8}처럼 청크 3이 두 군집에 들어갈 수 있습니다(소프트 군집).
군집마다 요약해 2층 노드 3개를 만들고, 다시 묶어 맨 위 요약 1개를 만듭니다. 나무 전체 노드는 8+3+1=12개입니다.
접힌 나무 검색은 12개 노드 전부를 질문과 비교해 유사도 순으로 토큰 한도까지 담으므로, 세부 질문이면 잎이, 주제 질문이면 요약 노드가 뽑히기 쉽습니다.
질문 수준에 따라 뽑히는 노드
같은 나무에서 세부 질문과 주제 질문을 할 때 각 검색 방식이 어느 층의 노드를 주로 가져올지 먼저 예상해 보세요.
구체적 표현이 그대로 남은 잎이 질문과 가장 비슷합니다.
학습을 시작하면 새 문제를 직접 풀고 확인 퀴즈를 마친 뒤 선택한 본과정 회차로 돌아갑니다.