NGT-labs/NGT
Nearest Neighbor Search with Neighborhood Graph and Tree for High-dimensional Data
它解决了什么问题
NGT 解决了在大规模高维向量数据(通常范围从几十到几千维)上进行高速近似最近邻(ANN)搜索的挑战。
它如何工作
NGT 采用三种主要的索引方法来优化搜索速度和内存使用:
- NGT:结合图和树索引的混合方法。
- QG(量化图):一种基于量化图的方法,性能高于标准的图/树方法。
- QBG(量化块图):一种专门用于处理数十亿个对象的方法。
为了处理超出可用内存的数据集,该项目支持通过内存映射文件使用共享内存。它还提供了多种量化选项(产品、标量),以进一步优化数据表示。
适用人群
需要在各种平台(Linux、macOS)和编程语言(Python、C++、Go、Rust、Ruby 和 PHP)中实现高维空间高效相似性搜索的开发者和数据工程师。
特色亮点
- 广泛的距离支持:支持 L1、L2、余弦相似性、角度、汉明、杰卡德、庞加莱、洛伦兹和内积。
- 大规模可扩展性:QBG 可处理数十亿个对象,共享内存选项允许索引超过系统内存大小的数据。
- 多语言支持:为多种流行编程语言提供原生库和封装。
- 灵活的数据类型:支持 4 字节浮点数、2 字节浮点数(FP16)和 1 字节无符号整数。
相关
- 项目
- 项目
- 项目
- 项目
- 项目