전체 그래프
RAG

Multi-faceted Filtering

ai-mlrag

상위: Advanced RAG Techniques

텍스트의 의미적 유사성을 찾는 Vector Search와, 문서의 구조화된 속성 정보(Metadata)를 기반으로 한 필터링을 결합하여 검색의 정확도와 정밀도를 극대화하는 기법

  • 작동방식
    1. Metadata 인덱싱 (Metadata Indexing): 문서를 청킹하고 임베딩할 때, 각 청크에 대한 텍스트 내용뿐만 아니라 '연도', '출처', '저자', '카테고리' 등의 메타데이터를 함께 Vector Database에 저장
    2. 쿼리 분석 (Query Analysis): 사용자 질문이 들어오면, 질문을 분석하여 의미 검색을 위한 부분("AI 관련 내용")과 필터링을 위한 조건("2023년에 나온")을 분리
    3. 사전 필터링 (Pre-filtering): Vector Search를 수행하기 전에, 메타데이터 조건을 만족하는 청크들만 남기고 나머지 모든 청크는 검색 대상에서 제외하여 검색 범위를 크게 좁힘
    4. 필터 후 검색 (Filtered Search): 좁혀진 검색 범위 내에서만 의미론적 벡터 검색을 수행하여 가장 관련성 높은 청크를 찾음
  • 장점
    • 높은 정확도와 정밀도: 검색 공간을 극적으로 줄여주므로, 의미적으로 유사하지만 조건에 맞지 않는 수많은 문서를 배제하고 매우 정확한 결과를 제공
    • 복잡한 질의 처리: 여러 조건이 결합된 복잡한 질문을 효과적으로 처리 가능
    • 속도 및 효율성: 특히 대규모 문서 컬렉션에서, 사전 필터링을 통해 훨씬 작은 데이터셋에 대해서만 Vector Search를 수행하므로 검색 속도를 높이고 비용 절감
  • 구현
    1. 문서의 특성에 맞는 명확한 메타데이터 스키마를 정의
    2. 문서 수집 및 처리(ingestion) 파이프라인에서 이 스키마에 따라 메타데이터를 정확하게 추출하고 저장
    3. 사용자 입력에서 메타데이터 필터 조건을 추출하는 쿼리 파서(query parser) 구현 (LLM을 사용하거나 간단한 규칙 기반으로 구현 가능)
    4. Vector Database가 제공하는 SDK/API를 사용하여, 검색 시 쿼리 벡터와 메타데이터 필터 조건을 함께 전달하여 필터링된 검색