turbovec: それが何であるか、解決する問題、そして注目を集めている理由
turbovec: それが何であるか、解決する問題、そして注目を集めている理由
解決する課題
turbovec は、大規模ベクトル検索における膨大な RAM 要求を削減するために設計された高性能ベクトルインデックスです。メモリのごく一部(例: 31 GB の代わりに 4 GB で 1,000 万件のドキュメント)に数百万件のドキュメントを収めながら、高速検索と高リコールを維持できるため、エアギャップ環境やメモリ制約のある RAG スタックに最適です。
仕組み
Google Research の TurboQuant アルゴリズムをベースに構築されており、別途トレーニングフェーズを必要としないデータ無関係量子化器を使用します。プロセスは次の通りです。
- 正規化と回転: ベクトルを単位方向に正規化し、ランダムな直交行列で乗算して座標分布を予測可能にします。
- キャリブレーション (TQ+): 初回インジェスト時に各座標にシフトとスケールを適合させ、経験的データを標準的なベータ分布にマッピングします。
- Lloyd‑Max 量子化: 事前計算された最適境界を用いて座標を 2 ビットまたは 4 ビット整数にバケット化します。
- 長さの再正規化: ベクトルごとにスカラーを保存し、量子化による内積の体系的な過小評価を補正してバイアスのないスコアリングを実現します。
- SIMD 検索: 手書きの NEON (ARM) および AVX‑512BW (x86) カーネルを使用し、コードブック値に直接スコアリングを行うことで完全なデコードを不要にします。
対象ユーザー
プライバシー、低レイテンシ、メモリ効率が重要な Retrieval‑Augmented Generation (RAG) アプリケーションを構築する開発者、特にローカルまたはエアギャップ環境での利用を想定しています。
ハイライト
- オンラインインジェスト: コーパスが増えてもトレーニングステップ、パラメータ調整、インデックス再構築は不要です。
- 極端な圧縮: 最大 16 倍圧縮(例: FP32 から 2 ビット)でリコール損失は最小限です。
- 高性能: ARM では FAISS IndexPQFastScan を 10–19% 上回り、x86 でも競争力があります。
- フィルタ検索: 許可リストによる検索時フィルタリングをサポートし、SIMD カーネルに直接組み込んで不要な計算を回避します。
- フレームワーク統合: LangChain、LlamaIndex、Haystack、Agno のインメモリベクトルストアのドロップイン置換として利用可能です。
- 完全ローカル: マネージドサービスは不要で、データはローカルマシンまたは VPC に留まります。
概要
Rust で実装され、Python バインディングを提供するベクトルインデックス。Google の TurboQuant アルゴリズムを用いて、RAG アプリケーション向けに極端なメモリ圧縮と高速 SIMD 加速ベクトル検索を実現します。
タイトル
turbovec: それが何であるか、解決する問題、そして注目を集めている理由
Sources
- undefinedRyanCodrai/turbovec