NGT-labs/NGT
Nearest Neighbor Search with Neighborhood Graph and Tree for High-dimensional Data
解决的问题
NGT 解决了在大规模高维向量数据(通常为数十到数千维)上进行高速近似最近邻(ANN)搜索的挑战。
工作原理
该项目提供了三种主要索引方法,以在速度、内存和可扩展性之间取得平衡:
- NGT:结合图和树结构索引的混合方法。
- QG(量化图):一种专为比标准 NGT 方法更高性能而设计的量化图方法。
- QBG(量化块图):一种可处理数十亿对象的专用方法。
为优化资源使用,NGT 支持通过内存映射文件实现共享内存,以处理超出可用 RAM 的数据集,并提供多种量化选项(标量量化和乘积量化)以减少数据占用空间。
适用人群
专为需要在高维向量空间中快速、可扩展地从大规模数据集中检索相似项的开发者和研究人员设计。
主要亮点
- 广泛的距离支持:支持 L1、L2、余弦相似度、角度、汉明距离、杰卡德、庞加莱、洛伦兹和内积。
- 大规模可扩展性:QBG 可处理数十亿个对象。
- 多语言绑定:支持 Python、Ruby、PHP、Rust、Go、C 和 C++。
- 内存效率:支持共享内存,适用于超出物理内存限制的索引。
相关
- 项目
- 项目
- 项目
- 项目
- 项目