timescale/pgvectorscale

Postgres extension for vector search (DiskANN), complements pgvector for performance and scale. Postgres OSS licensed.

해결하는 문제

pgvectorscale은 벡터 임베딩 검색의 성능과 스토리지 효율성을 향상시키는 PostgreSQL 확장 기능입니다. 대규모 AI 애플리케이션을 위해 더 높은 쿼리 처리량, 더 낮은 지연 시간 및 더 비용 효율적인 스토리지를 제공함으로써 pgvector를 보완합니다.

작동 원리

PostgreSQL에 세 가지 주요 기술 혁신을 도입합니다:

  1. StreamingDiskANN Index: DiskANN 알고리즘에서 영감을 받은 새로운 인덱스 유형으로, 효율적인 근사 최근접 이웃(ANN) 검색을 가능하게 합니다.
  2. Statistical Binary Quantization (SBQ): Timescale에서 개발한 압축 방법으로, 표준 이진 양자화에 비해 벡터 데이터의 스토리지 점유 공간을 줄여줍니다.
  3. Label-based Filtered Search: Filtered DiskANN 연구를 기반으로 구현되었으며, 사용자가 벡터 유사성 검색과 메타데이터 레이블 필터링(smallint[] 배열 사용)을 결합하여 고성능의 정확한 결과를 얻을 수 있도록 합니다.

이 확장 기능은 PGRX 프레임워크를 사용하여 Rust로 작성되었으며, C 기반의 pgvector에 대한 현대적인 대안을 제공합니다.

대상 사용자

  • 애플리케이션 개발자: PostgreSQL 데이터베이스 내에서 고성능 벡터 검색을 구현해야 하는 개발자.
  • 데이터베이스 관리자 (DBA): 기존 PostgreSQL 환경에서 벡터 워크로드의 비용과 성능을 최적화하고자 하는 관리자.
  • 기여자 (Contributors): Rust를 사용하여 PostgreSQL의 벡터 지원에 기여하고 싶은 개발자.

주요 특징

  • 고성능: 벤치마크 결과, 대규모 데이터 세트에서 Pinecone의 스토리지 최적화 인덱스 대비 p95 지연 시간이 최대 28배 낮고 쿼리 처리량이 16배 높게 나타났습니다.
  • 비용 효율성: AWS EC2에서 셀프 호스팅할 경우 비용을 최대 75%까지 절감할 수 있습니다.
  • 유연한 필터링: 고성능 레이블 기반 필터링과 임의의 SQL WHERE 절 사후 필터링을 모두 지원합니다.
  • 튜닝 기능: 정확도와 속도 사이의 균형을 맞추기 위해 빌드 시 매개변수(예: num_neighbors, storage_layout)와 쿼리 시 매개변수(예: query_rescore)를 모두 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트