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 編譯來優化使用者自訂度量的效能。為了維持極小的體積,它採用單一的 C++11 標頭庫,並為 10 種不同語言提供原生繫結。同時支援記憶體對映,可讓大型索引從磁碟直接提供,而無需將整個資料集載入 RAM 中。
適用對象
適用於需要在人工智慧、基因組學、化學、地理空間索引等應用中實現快速向量搜尋功能的開發者,也適用於希望將相似性搜尋整合至現有資料庫,或部署至資源受限環境(如 iOS、Android 或 WebAssembly)的開發者。
主要亮點
- 極致效能:宣稱索引速度比 FAISS 快達 10 倍,且顯著快於暴力搜尋。
- 廣泛相容:支援 Python、Rust、Go、Java、C#、JavaScript、C++ 等多種語言的原生繫結。
- 記憶體高效:支援半精度(
bf16、f16)與四分之一精度(e5m2、e4m3)格式,降低記憶體使用量。 - 可自訂:可透過 Numba、Cppyy 或 PeachPy 定義自己的相似度度量。
- 基於磁碟服務:支援透過記憶體對映從磁碟直接檢視大型索引,有望降低雲端基礎設施成本。
- 內建聚類:內建 K-最近鄰聚類與子聚類功能。
相關
- 專案
- 專案
- 專案
- 專案
- Dispatch