timescale/pgvectorscale

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

解決する課題

pgvectorscaleは、ベクトル埋め込み検索のパフォーマンスとストレージ効率を向上させるPostgreSQL拡張機能です。大規模なAIアプリケーション向けに、より高いクエリスループット、より低いレイテンシ、およびよりコスト効率の高いストレージを提供することで、pgvectorを補完します。

仕組み

PostgreSQLに3つの主要な技術革新を導入します:

  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環境におけるベクトルワークロードのコストとパフォーマンスを最適化したい方。
  • コントリビューター: Rustを使用してPostgreSQLのベクトルサポートに貢献することに興味がある開発者。

ハイライト

  • 高いパフォーマンス: ベンチマークでは、大規模データセットにおいてPineconeのストレージ最適化インデックスと比較して、p95レイテンシが最大28倍低減し、クエリスループットが16倍向上することが示されています。
  • コスト効率: AWS EC2でセルフホストする場合、コストを最大75%削減できます。
  • 柔軟なフィルタリング: 高性能なラベルベースのフィルタリングと、任意のSQL WHERE 句によるポストフィルタリングの両方をサポートしています。
  • チューニング機能: 精度と速度のバランスをとるために、ビルド時パラメータ(例:num_neighborsstorage_layout)とクエリ時パラメータ(例:query_rescore)の両方を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト