TL;DR
HNSW는 낮은 지연 시간과 높은 처리량을 제공하지만 그래프와 벡터 캐시를 메모리에 유지하므로 벡터 수가 커질수록 메모리 부담이 커집니다. HFresh는 HNSW 기반의 RQ8 centroid 색인을 메모리에 두고 RQ1로 압축한 posting을 디스크에 저장한 뒤, 쿼리와 가까운 posting만 읽고 원본 벡터로 상위 후보를 재채점합니다. posting의 분할·병합·벡터 재배치를 백그라운드에서 점진적으로 처리해 전체 색인 재구축 없이 업데이트를 반영하며, DBpedia OpenAI 1M 실험에서 Go heap 사용량은 HFresh 239 MB, 비압축 HNSW 6.67 GB로 측정됐습니다. 대신 비슷한 recall에서 HNSW 계열보다 QPS가 낮으므로 최고 처리량이 필요한 경우에는 HNSW가, 메모리 절약과 대규모 mutable dataset이 중요한 경우에는 HFresh가 적합합니다.
섹션별 상세






from weaviate.classes.config import Configure, VectorDistancescollection = client.collections.create( name="Article", vector_config=Configure.Vectors.self_provided( name="Title", vector_index_config=Configure.VectorIndex.hfresh( distance_metric=VectorDistances.COSINE, ), ),)Python client에서 collection의 vector index를 HFresh로 설정하고 COSINE distance metric을 지정합니다.


용어 해설
- 계층형 탐색 가능한 소세계 그래프(HNSW)
- — HNSW는 벡터를 여러 그래프 계층에 배치해 유사한 벡터를 빠르게 찾는 근사 최근접 이웃 색인입니다. 상위의 희소한 그래프에서 넓게 이동한 뒤 하위의 조밀한 그래프에서 후보를 좁히며, 빠른 탐색과 높은 검색 품질을 제공하는 대신 그래프와 벡터 캐시를 메모리에 유지해야 합니다.
- 회전 양자화(Rotational Quantization)
- — Rotational Quantization은 벡터를 압축하기 쉬운 좌표계로 회전한 뒤 각 차원의 표현 정밀도를 낮추는 기법입니다. HFresh는 centroid에는 RQ8을, 디스크의 posting 벡터에는 RQ1을 적용해 라우팅 정확도와 저장 공간 절약 사이의 역할별 균형을 맞춥니다.
- 포스팅 영역(Posting)
- — Posting은 벡터 공간에서 서로 가까운 벡터를 묶은 작은 영역으로, HFresh에서는 각 영역의 벡터를 디스크에 저장합니다. 쿼리마다 모든 벡터를 읽지 않고 centroid 색인이 선택한 posting만 불러오므로 디스크 읽기 범위와 지연을 제한하는 단위가 됩니다.
- 경량 증분 재균형(LIRE)
- — LIRE는 분할이나 병합 이후 벡터가 더 적합한 centroid 또는 인접 posting으로 이동했는지 점검하는 SPFresh의 재배치 절차입니다. 전체 색인을 다시 만들지 않고 일부 벡터를 점진적으로 옮겨 posting 경계와 검색 품질을 지속적으로 보정합니다.
- 균형 K-Means(Balanced K-Means)
- — Balanced K-Means는 지나치게 커진 posting의 벡터를 두 개의 균형 잡힌 그룹으로 나누는 클러스터링 방식입니다. HFresh는 이 결과로 두 개의 새 centroid를 만들고 기존 posting을 대체해 디스크 읽기량과 라우팅 정밀도의 악화를 억제합니다.
기술
- Weaviate
- HFresh
- HNSW
- SPFresh
- SPTAG
- ACORN
- Rotational Quantization
- Balanced K-Means
- LIRE
- Python client
활용 사례
- 제한된 메모리 환경의 벡터 검색
- 수십억 개 벡터를 저장하는 대규모 검색
- 삽입과 삭제가 빈번한 mutable dataset
- 제품 브랜드·가격·재고 조건을 함께 적용하는 전자상거래 검색
- Weaviate Cloud Free Tier의 Cost Optimized profile
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.