unum-cloud/USearch
Fast Open-Source Search & Clustering engine × for Vectors & Arbitrary Objects × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram 🔍
解決する課題
USearchは、FAISSのような従来のベクトル検索ライブラリよりも小型、高速、かつポータブルに設計された高性能な類似検索・クラスタリングエンジンです。重い依存関係を必要とせずに、さまざまなプログラミング言語やハードウェアプラットフォーム全体で、ベクトル(埋め込み)の最近傍を効率的に検索するニーズに応えます。
仕組み
USearchは、近似最近傍検索のためのHNSW (Hierarchical Navigable Small World) アルゴリズムを実装しています。SIMD (Single Instruction, Multiple Data) と、ユーザー定義メトリクス用のJITコンパイルを活用してパフォーマンスを最適化しています。メモリフットプリントを削減するため、半精度 (bf16, f16) や四半精度フォーマットを含む幅広い数値型(ダウンキャスティングおよび量子化)をサポートしています。また、メモリマッピングを通じてディスクから直接インデックスを提供できるため、インデックス全体をRAMに読み込む必要がありません。
対象ユーザー
セマンティック検索を必要とするAIアプリケーション、ゲノミクスや化学アプリケーション(バイナリTanimoto/Sorensen係数を使用)、および既存のデータベースやクロスプラットフォームアプリケーション(iOS, Android, WebAssembly)にベクトル検索を統合する必要がある開発者を対象としています。
ハイライト
- 極めて高いパフォーマンス: FAISSと比較して最大10倍高速なインデックス作成と、大幅に高速な総当たり検索を実現。
- 幅広い互換性: Python, Rust, C++, Go, Javaを含む10以上の言語向けのネイティブバインディング。
- メモリ効率: 最大1兆個のエントリをインデックス化できる
uint40_tをサポートし、複数の低精度データ型でRAMを節約。 - 柔軟なメトリクス: Numba, Cppyy, または PeachPy を介して、任意のユーザー定義メトリクスをサポート。
- ディスクベースの提供: インデックスをRAMに読み込まずにディスクから直接参照できるため、クラウドインフラストラクチャのコストを削減可能。
- 統合クラスタリング: K-Nearest Neighbors クラスタリングおよびサブクラスタリング機能を内蔵。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト