pgvector/pgvector
Open-source vector similarity search for Postgres
何を解決するか
pgvector は PostgreSQL 用のオープンソース拡張であり、データベース内に直接ベクトル埋め込みを格納・検索できるようにします。これにより、専用のベクトルデータベースを別途用意する必要がなく、関係データと併せて埋め込みを保持しつつ、ACID準拠を維持し、標準SQLクエリをサポートできます。
動作方法
vector データ型と、類似性検索に特化した距離演算子を導入しています。単精度、半精度(halfvec)、バイナリ(bit)、スパースベクトル(sparsevec)など、複数のベクトル形式をサポートしています。
検索速度を向上させるために、2種類の近似最近傍(ANN)インデックスを提供しています:
- HNSW(Hierarchical Navigable Small World):マルチレイヤーのグラフインデックスで、高いクエリパフォーマンスと優れた速度-リコールのトレードオフを実現しますが、メモリ消費量が多く、構築に時間がかかります。
- IVFFlat:リストベースのインデックスで、ベクトルをクラスタに分割し、HNSWよりも構築が速く、メモリ使用量も少ないです。
対象ユーザー
PostgreSQL を既に使用している開発者やデータエンジニアで、AIアプリケーション(RAGや推薦システムなど)にベクトル類似性検索を統合したいが、スタックに新たなインフラを追加したくない人向けです。
特徴
- PostgreSQL との統合:ACID準拠、JOIN、時系列の復元機能を活用できます。
- 多様な距離メトリクス:L2、内積、コサイン、L1、ハミング、ジャカード距離をサポートしています。
- 柔軟なベクトルタイプ:密ベクトル、半精度、バイナリ、スパースベクトルを扱えます。
- ハイブリッド検索:PostgreSQL のフルテキスト検索と組み合わせて、キーワード検索と意味的検索を併用できます。
- スケーラビリティツール:バイナリ量子化や反復インデックススキャンを提供し、データフィルタリング時のリコールを向上させます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト