3 ms·
Check out Unum’s usearch. It beats anything, and is super easy to use. It just does exactly what you need. https://github.com/unum-cloud/usearch https://github
by stephantul 2y ago
Check out Unum’s usearch. It beats anything, and is super easy to use. It just does exactly what you need.
https://github.com/unum-cloud/usearch https://github.com/unum-cloud/usearch
- esafak 2y agoHave you tested it against Lance? Does it do predicate pushdown for filtering?
- stephantul 2y agoUsearch is a vector store afaik, not a vector db. At least that’s how I use it. I haven’t compared it to lancedb, I reached for it here because the author mentioned Faiss being difficult to use and install. usearch is a great alternative to Faiss. But thanks for the suggestion, I’ll check it out
- ashvardanian 2y agoUSearch author here :) The engine supports arbitrary predicates for C, C++, and Rust users. In higher level languages it’s hard to combine callbacks and concurrent state management. In terms of scalability and efficiency, the only tool I’ve seen coming close is Nvidia’s cuVS if you have GPUs available. FAISS HNSW implementation can easily be 10x slower and most commercial & venture-backed alternatives are even slower: https://www.unum.cloud/blog/2023-11-07-scaling-vector-search-with-intel https://www.unum.cloud/blog/2023-11-07-scaling-vector-search... In this use-case, I believe SimSIMD raw kernels may be a better choice. Just replace NumPy and enjoy speedups. It provides hundreds of hand-written SIMD kernels for all kinds of vector-vector operations for AVX, AVX-512, NEON, and SVE across F64, F32, BF16, F16, I8, and binary vectors, mostly operating in mixed precision to avoid overflow and instability: https://github.com/ashvardanian/SimSIMD https://github.com/ashvardanian/SimSIMD