antgroup/vsag
vsag is a vector indexing library used for similarity search.
何を解決するか
VSAG は、大規模なベクトルセットにおける効率的な類似検索を目的としたベクトルインデックスライブラリです。特に、システムメモリを超えるデータに対して設計されています。開発者が基礎となるアルゴリズムを深く理解する必要なく、データ規模やベクトル次元に基づいてパラメータを自動生成するため、近似最近傍(ANN)検索の実装を簡素化します。
動作方法
C++で書かれたこのライブラリは、異なるデータタイプや検索要件に対応する複数の専用インデックスアルゴリズムを実装しています:
- SINDI:スパースベクトル検索に最適化された高性能インデックス。
- HGraph:高い再現率と低レイテンシを必要とするシナリオに使用されるグラフベースのインデックス。
- IVF:バッチクエリおよび大規模検索に最適化された逆引きファイルインデックス。
- LazyHGraph:小規模データセットではブルートフォース検索から開始し、データが増大すると自動的に HGraph に変換する適応型インデックス。
メモリ使用量を削減するために、Product Quantization (PQ)、Scalar Quantization (SQ4/SQ8)、RaBitQ などのさまざまな量子化手法をサポートしています。AVX-512 や Neon などの命令セットを活用して、x86_64 および ARM アーキテクチャに最適化されています。
対象ユーザー
ベクトルデータベースや類似検索システムを開発している開発者で、C++、Python(pyvsag を通じて)、Node.js/TypeScript に対応する高パフォーマンスでクロスプラットフォームなインデックスエンジンが必要な方。
特徴
- 多言語対応:ネイティブ C++ コアに加え、公式の Python および TypeScript バインディングを提供。
- 高性能スパース検索:SINDI アルゴリズムは、クエリ毎秒(QPS)において、従来の最先端ソリューションを大きく上回ります。
- メモリ効率:複数の量子化レベルと、スパースベクトル用のディスクベース I/O(SINDI_V2)をサポート。
- ハードウェア最適化:SSE、AVX、Neon、SVE などの CPU 固有最適化を活用し、Intel-MKL や OpenBLAS をオプションで利用して加速可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト