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++ 等多種語言的原生繫結。
  • 記憶體高效:支援半精度(bf16f16)與四分之一精度(e5m2e4m3)格式,降低記憶體使用量。
  • 可自訂:可透過 Numba、Cppyy 或 PeachPy 定義自己的相似度度量。
  • 基於磁碟服務:支援透過記憶體對映從磁碟直接檢視大型索引,有望降低雲端基礎設施成本。
  • 內建聚類:內建 K-最近鄰聚類與子聚類功能。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • Dispatch