1yefuwang1/vectorlite
Fast, SQL powered, in-process vector search for any language with an SQLite driver
何を解決するか
Vectorlite は SQLite 用のランタイムロード可能な拡張機能であり、高速なベクトル検索機能を追加します。開発者は SQL インターフェース内で近似最近傍(ANN)検索を直接実行でき、別個のスタンドアロンのベクトルデータベースを維持する必要がなくなりつつ、Windows、macOS、Linux で高いパフォーマンスを維持できます。
動作方法
このプロジェクトは、hnswlib ライブラリをバックエンドに使用した SQLite 仮想テーブルモジュールを実装しています。効率的なインデックス作成と検索を実現しています。Google の highway ライブラリを用いて SIMD 加速されたベクトル距離計算を行い、高次元ベクトルの計算を大幅に高速化しています。ユーザーはベクトル用の仮想テーブルを作成でき、標準的な SQL を使ってデータを挿入し、knn_search や knn_param といった特定の関数を使って L2、コサイン、または内積距離に基づいて最も近いベクトルを検索できます。
対象ユーザー
SQLite を使用し、別個のベクトルデータベースサーバーを管理するオーバーヘッドなしにローカルデータベースにベクトル検索機能を追加したい開発者向けです。
特徴
- 高パフォーマンス: ANN 検索に HNSW を使用し、Google Highway を通じた SIMD 加速により、類似の SQLite 拡張機能よりも著しく高速なクエリ速度を実現しています。
- クロスプラットフォーム: Windows、Linux、macOS(x64 および ARM)向けに事前にコンパイル済みです。
- カスタマイズ可能:
ef_constructionやMなどの HNSW パラメータを完全に制御でき、速度と精度のバランスを調整できます。 - メタデータフィルタリング:
rowidフィルタのプッシュダウンをサポートしており、1つのクエリ内でベクトル検索とメタデータフィルタリングを組み合わせられます。 - 永続化: SQL コマンドを使ってベクトルインデックスをディスクに保存・読み込みできます。
- 柔軟な API: ベクトルの JSON シリアライズ/デシリアライズ用のヘルパー関数を提供しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト