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++。
  • 内存效率:支持共享内存,适用于超出物理内存限制的索引。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目