tadeohepperle/vecnn · 文件
文件最后提交记录最后更新时间
README.md
Master Thesis
Title: Vantage-Point Tree to HNSW: Fast Index Construction for Approximate Nearest Neighbor Search in High-Dimensional Data University: TU Dortmund University Author: Tadeo Hepperle
This file gives a quick an overview of important files and folders:
/vecnn, the Rust crate
- rust crate with all the core logic
bin/compare.rscan run benchmarks on SISAP LAION-2B dataslice_hnsw.rscontains the current single threaded HNSW implementationslice_hnsw_par.rshas a multithreaded HNSW implementationnn_descent.rshas Relative NN-Descent implementation- Stitching and VP-Tree ensemble methods are in
transition.rs schubert_distance.rscontains distance functions provided by Prof. Dr. Erich Schubert from TU Dortmund.
/vecnnpy, the Python wrapper
- wraps the
vecnnrust crate and exposes a python interface. - to use it, run:
python -m pip install -e .(or replace the "." by "./my/path/to/vecnnpy") - also exposes python interface to two other Rust HNSW libraries
/eval some Helper scripts
get_data.pycan be run to download the SISAP datasets and convert them to binary (f32 slices)eval.pyis a script used for benchmarking models. Make sure you runpython -m pip install -e ./path/to/vecnnpyfirst, to install thevecnnpython module.results.pyuses mainly output fromcompare.rsto generate some tables and graphs (100K to 10M datasets).res10m.pyuses output fromeval.pyto generate graphs and tables for benchmarks on the 10M dataset.