timescale/pg_vectorsearch

High-performance vector search for PostgreSQL

解決する課題

このプロジェクトは、PostgreSQL 用の高性能ベクトル検索インデックスを提供し、既存の代替手法よりも効率的に大規模データセット(1 億以上のベクトル)を処理できるように設計されています。高度な量子化と階層分割を使用して、従来のベクトルインデックス手法のパフォーマンスボトルネックに対処します。

仕組み

PRISM(Partitioned Routing Index for Similarity Matching)インデックスを導入します。これはネイティブの PostgreSQL アクセスメソッドです。階層セントロイドツリーを使用してベクトルをクラスタリングし、RaBitQ 量子化を使用して理論上の誤差範囲を維持しながらデータを圧縮します。検索中、システムはセントロイドツリーを走査して関連クラスタを特定し、量子化データを使用して候補をフィルタリングし、最終的な高精度の再ランキングを実行します。SIMD 命令(AVX2、AVX512、NEON)を活用して距離計算を高速化し、PostgreSQL バッファキャッシュと直接統合します。

対象読者

PostgreSQL 上で AI 駆動アプリケーションを構築するデータベース管理者と開発者向けです。大規模なベクトル埋め込みに対して高速でスケーラブルな類似性検索を実行し、メモリ使用量とクエリレイテンシを最適化したい方に適しています。

ハイライト

  • 高性能: 大規模データセットにおいて、IVFFlat や HNSW と比較してクエリとインデックス構築時間が大幅に短縮されます。
  • メモリ効率: グラフベースの代替手法よりもはるかに少ないメモリで、1 億以上のベクトルで高い再現率を達成します。
  • pgvector 互換: テーブル書き換えを必要とせず、既存の vector または halfvec 列のドロップイン置換として使用できます。
  • 高度な量子化: RaBitQ を使用して全精度の再ランキングの必要性を減らし、検索操作を高速化します。
  • SIMD 最適化: 最新の CPU 命令セットを利用して距離計算を高速化します。

関連

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