pgvector/pgvector
Open-source vector similarity search for Postgres
해결하는 문제
pgvector는 PostgreSQL용 오픈소스 확장으로, 데이터베이스 내부에서 벡터 임베딩을 직접 저장하고 검색할 수 있게 해줍니다. 이로 인해 전용 벡터 데이터베이스를 별도로 운영할 필요 없이, 관계형 데이터와 함께 임베딩을 유지하면서도 ACID 준수를 보장하고 표준 SQL 쿼리를 지원할 수 있습니다.
작동 방식
새로운 vector 데이터 유형과 유사성 검색을 위한 전용 거리 연산자를 도입합니다. 단정밀도, 반정밀도(halfvec), 이진(bit), 희소 벡터(sparsevec) 등 다양한 벡터 유형을 지원합니다.
검색 속도를 높이기 위해 두 가지 유형의 근사 최근접 이웃(ANN) 인덱스를 제공합니다:
- HNSW (Hierarchical Navigable Small World): 다층 그래프 인덱스로 높은 쿼리 성능과 더 나은 속도-재현율 트레이드오프를 제공하지만, 더 많은 메모리와 느린 빌드 시간을 요구합니다.
- IVFFlat (Inverted File Flat): 벡터를 리스트(클러스터)로 나누고 가장 가까운 리스트만 검색하는 인덱스로, HNSW보다 빠른 빌드 시간과 더 적은 메모리 사용량을 제공합니다.
대상 사용자
PostgreSQL을 이미 사용 중이며, RAG나 추천 시스템과 같은 AI 애플리케이션에 벡터 유사성 검색을 통합하고 싶지만, 새로운 인프라 복잡성을 피하고자 하는 개발자 및 데이터 엔지니어에게 적합합니다.
주요 특징
- PostgreSQL 통합: JOIN, ACID 준수, 시점 복구 등 Postgres의 모든 기능을 활용할 수 있습니다.
- 다양한 벡터 유형 지원: 단정밀도, 반정밀도, 이진, 희소 벡터를 처리할 수 있습니다.
- 다양한 거리 메트릭: L2 거리, 내적, 코사인 거리, L1 거리, 하밍 거리, 자카르드 거리를 지원합니다.
- 하이브리드 검색: Postgres의 전체 텍스트 검색과 결합하여 하이브리드 검색이 가능합니다.
- 고급 인덱싱:
WHERE절을 사용한 필터링 시 재현율을 향상시키기 위해 반복 인덱스 스캔을 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트