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