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(单指令多数据)和 JIT 编译来优化用户自定义度量的性能。为了保持极小的体积,它采用单一的 C++11 头文件库,并为 10 种不同语言提供原生绑定。同时支持内存映射,允许大型索引从磁盘直接服务,而无需将整个数据集加载到 RAM 中。

适用人群

适用于需要在人工智能、基因组学、化学、地理空间索引等应用中实现快速向量搜索功能的开发者,也适用于希望将相似性搜索集成到现有数据库中,或部署到资源受限环境(如 iOS、Android 或 WebAssembly)的开发者。

主要亮点

  • 极致性能:宣称索引速度比 FAISS 快达 10 倍,且显著快于暴力搜索。
  • 广泛兼容:支持 Python、Rust、Go、Java、C#、JavaScript、C++ 等多种语言的原生绑定。
  • 内存高效:支持半精度(bf16f16)和四分之一精度(e5m2e4m3)格式,降低内存占用。
  • 可自定义:可通过 Numba、Cppyy 或 PeachPy 定义自己的相似度度量。
  • 基于磁盘服务:支持通过内存映射从磁盘直接查看大型索引,有望降低云基础设施成本。
  • 内置聚类:内建 K-最近邻聚类和子聚类功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch