nmslib/hnswlib

Header-only C++/python library for fast approximate nearest neighbors

What it solves

hnswlib は、近似最近傍 (ANN) 探索のための Hierarchical Navigable Small World (HNSW) アルゴリズムの高速で軽量な実装です。L2、内積 (Inner Product)、または余弦距離 (Cosine distance) などの距離指標に基づいて、大規模なデータセットから最も近いベクトルを効率的に見つけることができ、低速な全探索を回避できます。

How it works

このライブラリは、最近傍探索のためのグラフベースのアプローチである HNSW を実装しています。ベクトルをグラフの階層構造に整理することで、最近接点への高速なナビゲーションを可能にします。このライブラリは、ヘッダーのみの C++ 実装を提供し、Python バインディングを備え、インクリメンタルなインデックス構築、要素の更新、および削除をサポートしています。

Who it’s for

推奨システム、画像検索、または RAG (Retrieval-Augmented Generation) パイプラインなど、高性能なベクトル探索を必要とするアプリケーションを構築する開発者で、依存関係を最小限に抑えた軽量なツールを必要とする方向けに設計されています。

Highlights

  • Lightweight Design: 外部依存関係のない、ヘッダーのみの C++ 11 実装。
  • Flexible Interfaces: C++ と Python のネイティブサポート、および Java と R に対する外部コミュニティサポート。
  • Dynamic Indexing: インクリメンタルな構築、既存要素の更新、および要素の削除マーク付けをフルサポート。
  • Customizable: C++ でユーザー定義の距離指標をサポート。
  • Efficiency: nmslib などの他の実装と比較して、メモリ使用量が少なく、ビルド時間が短縮されます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト