전체 그래프
RAG

Hierarchical Indices

ai-mlrag

상위: Advanced RAG Techniques

방대한 문서 전체를 한 번에 검색하는 대신, '요약 인덱스(Summary Index)' 와 '상세 청크 인덱스(Detailed Chunk Index)' 라는 2단계 계층 구조를 만들어 검색하는 기법

  • 작동방식
    1. 이중 인덱싱 (Dual Indexing): 문서를 인덱싱할 때, 두 개의 별도 Vector Database를 구축
      • 요약 DB: 문서의 각 페이지나 섹션별 요약문들을 저장
      • 상세 청크 DB: 원본 문서를 잘게 나눈 상세 청크들을 저장. 각 청크는 자신이 속한 페이지/섹션 번호를 Metadata로 가짐.
    2. 요약 탐색 (Summary Search): 사용자 질문이 들어오면, 먼저 '요약 DB' 에서 검색하여 질문과 가장 관련성 높은 페이지/섹션을 식별
    3. 상세 탐색 (Detailed Search): 1단계에서 찾은 페이지/섹션 번호를 필터(filter) 조건으로 사용하여, '상세 청크 DB' 에서 검색을 수행. 이를 통해 관련성 높은 부분에서만 세부 내용을 찾음.
    4. 최종 결과 반환: 2단계에서 찾은 상세 청크들을 최종 검색 결과로 LLM에게 전달.
  • 장점
    • 효율성 및 확장성: 대규모 문서군에서 전체 청크를 검색하는 대신, 가벼운 요약 인덱스를 먼저 검색하므로 매우 빠르고 효율적.
    • 문맥 보존: 먼저 큰 그림(요약)을 파악한 뒤 세부 내용을 찾으므로, 개별 청크가 가진 문맥적 의미를 잃지 않고 정확한 정보를 찾을 수 있음.
    • 정확도 향상: 관련 없는 수많은 페이지의 상세 청크들을 처음부터 검색 대상에서 제외하므로, 노이즈가 줄어들고 검색 결과의 정확도가 높아짐.
  • 구현
    • LLM 기반 요약 기능을 사용하여 각 문서 단위의 요약문을 생성
    • Vector Database를 두 개 생성하여, 하나는 요약문을, 다른 하나는 상세 청크를 저장
    • 1단계 검색 결과(요약문)의 메타데이터(페이지 번호)를 추출하여, 2단계 검색 시 필터(filter) 조건으로 활용하는 로직