Open huahaiy opened 2 years ago
Current state of art is ScaNN, see paper, extended paper, which is built for tensorflow serving and depends on tensorflow.
Prior literature: https://lear.inrialpes.fr/pubs/2011/JDS11/jegou_searching_with_quantization.pdf http://proceedings.mlr.press/v51/guo16a.pdf https://www.amazon.com/Quantization-Compression-Springer-International-Engineering/dp/0792391810
ScaNN is fast for it does lookup table in SIMD register: https://medium.com/@kumon/similarity-search-scann-and-4-bit-pq-ab98766b32bd (paper https://arxiv.org/pdf/1704.07355.pdf)
Faiss has better packaging, also, it has PQ4 implementation as well. https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors#4-bit-pq-comparison-with-scann
For our initial version, https://github.com/nmslib/hnswlib seems to be ideal, for the following reason:
Another option, is https://github.com/unum-cloud/usearch
Some recent entries linked here: https://github.com/microsoft/DiskANN?tab=readme-ov-file
Add a data type
:vec
, for indexing dense numeric vectors and search based on similarity.