timescale/pgvectorscale
Postgres extension for vector search (DiskANN), complements pgvector for performance and scale. Postgres OSS licensed.
解決する課題
pgvectorscaleは、ベクトル埋め込み検索のパフォーマンスとストレージ効率を向上させるPostgreSQL拡張機能です。大規模なAIアプリケーション向けに、より高いクエリスループット、より低いレイテンシ、およびよりコスト効率の高いストレージを提供することで、pgvectorを補完します。
仕組み
PostgreSQLに3つの主要な技術革新を導入します:
- StreamingDiskANN Index: DiskANNアルゴリズムに触発された新しいインデックスタイプで、効率的な近似最近傍(ANN)検索を可能にします。
- Statistical Binary Quantization (SBQ): Timescaleによって開発された圧縮手法で、標準的なバイナリ量子化と比較してベクトルデータのストレージフットプリントを削減します。
- 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_neighbors、storage_layout)とクエリ時パラメータ(例:query_rescore)の両方を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト