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++。
  • 記憶體效率:支援共享記憶體,適用於超出實體記憶體限制的索引。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案