피드로 돌아가기
Dev.toDatabase
원문 읽기
HNSW 기반 Vector Search 구현으로 recall@10 0.984 달성
I Built a Vector Search Engine from Scratch — Here's What I Learned
AI 요약
Context
기존 Vector Database 솔루션을 배제하고 RAG 엔진의 핵심인 Vector Search를 직접 구현하여 시스템 동작 원리를 분석함. Dense Retrieval의 고질적 문제인 정확한 키워드 매칭 누락과 검색 성능 간의 Trade-off를 해결하려는 목적임.
Technical Solution
- HNSW(Hierarchical Navigable Small World) 그래프 구조를 통해 O(log n)의 검색 복잡도를 확보한 계층형 인덱스 설계
- 확률적 레이어 생성 방식(1/ln(M))을 적용하여 상위 레이어에서는 희소한 탐색을, 하위 레이어에서는 밀집 탐색을 수행하는 Highway 네트워크 구현
- BM25의 키워드 매칭과 Dense Retrieval의 의미론적 검색을 결합한 Hybrid Search 구조 및 RRF Fusion 적용으로 검색 정밀도 향상
- HyDE(Hypothetical Document Embeddings) 쿼리 재작성 기법을 도입하여 팩트 기반 질의의 Recall 성능 최적화
- Temporary File 작성 후 ATOMIC_MOVE를 수행하는 쓰기 패턴을 통해 데이터 손실을 방지하고 인덱스 영속성 보장
실천 포인트
- HNSW 파라미터(M, efConstruction, efSearch) 간의 Memory-Recall-Latency Trade-off를 정밀하게 튜닝할 것 - 단순 Vector Search보다 BM25를 결합한 Hybrid 구조를 우선 검토하여 키워드 매칭 누락 방지 - 인덱스 저장 시 'Write-to-tmp & Rename' 패턴을 적용하여 Partial Write로 인한 데이터 오염 방지