피드로 돌아가기
Dev.toAI/ML
원문 읽기
Pre-filtering 기반 검색 공간 2M → 800개 축소로 Recall 극대화
Metadata Filtering Before Vector Search: The Recall Win Nobody Measures
AI 요약
Context
Vector Search의 Cosine Similarity만으로는 유사한 Boilerplate 문구로 인한 데이터 혼입 및 Hallucination 발생. 특히 Multi-tenant 환경에서 다른 고객사의 데이터가 검색 결과에 포함되는 보안 및 정확도 문제 직면.
Technical Solution
- Vector Search 전 Hard Predicate를 적용하는 Pre-filtering 구조 채택을 통한 검색 대상 집합의 원천적 제한
- Post-filtering 시 발생하는 Top-k 결과셋의 부족 및 Recall 저하 문제를 Pre-filtering의 후보군 선제 필터링으로 해결
- HNSW Graph 탐색 시 필터로 인한 Node 단절 및 성능 저하를 방지하기 위해 High-selectivity 필드 중심의 Payload Indexing 적용
- Cardinality Trap 방지를 위해 검색 공간을 효율적으로 축소하면서도 Graph Traversal이 가능한 최적의 Selectivity 지점 확보
- 데이터 Ingestion 단계부터 customer_id, doc_type 등 파티셔닝 가능한 메타데이터를 Payload로 포함하는 스키마 설계
실천 포인트
1. 검색 API 호출 시 필터가 Vector Search 전(Pre)에 작동하는지 또는 결과 반환 후(Post)에 작동하는지 확인
2. Multi-tenant 시스템의 경우 customer_id와 같이 Selectivity가 높은 필드를 우선적으로 Indexing
3. 메타데이터 누락으로 인한 전체 Re-indexing 비용을 방지하기 위해 Ingestion 파이프라인에 메타데이터 스키마 강제
4. High-cardinality 필터 적용 시 성능 저하 여부를 측정하여 Brute-force Scan 전환 임계점 파악