Fast vector similarity
Data
similarity measures library
SHOW HN2023
How HN took it
2 positive, 7 neutral or asking, 0 mixed, 3 critical, out of 12 comments about the project. Thread score -0.05.
Performance: 0 for, 2 againstDesign: 0 for, 1 againstExecution: 1 for, 0 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Fast performance versus NumPy
From 2 comments
Updated, thanks :)
ashvardanian on HNAlways great to see projects like this that distribute wheels for a whole ton of different platforms - makes installation so much less painful if you don't need to ensure you…
simonw on HN
Wheels for many platforms make installation easy
From 1 comment
Always great to see projects like this that distribute wheels for a whole ton of different platforms - makes installation so much less painful if you don't need to ensure you…
simonw on HN
Objections
Library can consume all CPU cores and compete with other workloads
From 1 comment
I realize you have a different usecase in mind, so the following feedback might not be that useful to you. I also haven’t reviewed your API design, so perhaps you have already…
binary132 on HN
Brute force approach is slow compared with approximate search
From 2 comments
It sounds like it is brute force comparison so I imagine any approximate solution will be a lot faster. I have a similar brute force search library in Rust. Though I didn't find…
spullara on HNIt’s a good start, but you can’t generally get even remotely close to hardware potential in Rust, let alone Python. I had to implement a separate C99 library to always trigger…
ashvardanian on HN
Requests
Add an option to limit parallelism or thread count
From 2 comments
I realize you have a different usecase in mind, so the following feedback might not be that useful to you. I also haven’t reviewed your API design, so perhaps you have already…
binary132 on HNI would say default to min(affinity, system threads, 16) and let the user input a specific number to override it. I had a problem recently where a library started a process per…
zacmps on HN
Support passing a matrix or dataframe for batch queries
From 2 comments
In the example it looks like this needs one JSON encoding/decoding step per call for parameters & results which seems a bit inefficient, but maybe my intuition is wrong there? Or…
alpaca128 on HNYes, you're right, and it's a good point. I'll add an additional python function that allows you to supply a pandas dataframe or numpy array for one of the arguments so you can…
eigenvalue on HN
Write-up on GitHub Actions cross-compilation
From 1 comment
Could you do a future write up on the whole process of how you got Github actions to cross compile to different platforms? That sounds very fascinating.
tmaly on HN
Questions
How does it compare to FAISS?
From 1 comment
Nice work! How does it compare against FAISS?
DigitalNoumena on HN
How is normalized mutual information computed?
From 1 comment
If you don't mind, how is this calculated? I found some references, but I'm not sure I understand.
foota on HN
Alternatives named
FAISS
From 1 comment
It's really quite different in goals to FAISS. FAISS is for if you have millions of stored vectors and want to do quick semantic similarity for retrieval. It manages to do this…
eigenvalue on HN
USearch and SimSIMD
From 1 comment
It’s a good start, but you can’t generally get even remotely close to hardware potential in Rust, let alone Python. I had to implement a separate C99 library to always trigger…
ashvardanian on HN
Qdrant
From 1 comment
Awesome work! At Qdrant we do this at scale. Store billions of vectors in a cluster of any size. Also in Rust which turned out to be an amazing choice, and fully open source. It…
timvisee on HN