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 倍,且暴力搜索速度显著提升。
- 广泛兼容性:提供超过 10 种语言的原生绑定,包括 Python, Rust, C++, Go 和 Java。
- 内存效率:支持
uint40_t以索引多达 1 万亿个条目,并支持多种低精度数据类型以节省 RAM。 - 灵活指标:通过 Numba, Cppyy 或 PeachPy 支持任意用户定义的指标。
- 磁盘服务:能够从磁盘查看大型索引而无需加载到 RAM,有助于降低云基础设施成本。
- 集成聚类:内置 K-Nearest Neighbors 聚类与子聚类功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目