Inside FAISS: Billion-Scale Similarity Search

Posted by tohms 5 days ago

Counter73Comment5OpenOriginal

Author here. I wrote this as a visual companion to the 2017 FAISS paper (https://arxiv.org/abs/1702.08734), focused on the parts I found hardest to grok from text alone.

The article covers a subset of what FAISS does, with the paper as the source of truth. NSG, FastScan, IMI are not covered here, they'll get their own articles. I'd be especially interested in feedback on:

- the IVFPQ / IVFADC explanation, particularly the LUT reuse argument

- whether the GPU part captures enough of the actual complexity

Happy to answer questions.

Comments

Comment by rooftopzen 4 days ago

Great viz; the original paper wasn't peer reviewed; it might be great but I've learned its a waste of time to read those in current times (sorry and take this as one data point that suggests they should have done that).

That said, I've found FAISS great for certain use cases; wanted to say thx for surfacing - its not updated to work with most packages these days outside of faiss-cpu - curious why Meta dropped its maintenance; was it due to its slower speed or otherwise priorities?

Comment by tohms 3 days ago

Thanks ! the article is trying to explain several other papers like the Product Quantization paper which was peer‑reviewed in IEEE but i totally agree.

yeah, my read is most production users stay on CPU and if they need heavier/faster workdloads in they might often move toward managed vector services like pinecone, mongodb atlas, or pgvector, and attention follows usage. Also FAISS came out of FAIR's team in Paris, Meta’s recent massive reorganization and layoffs which splitted FAIR's team likely have an impact in its maintenance.

Comment by runamuck 4 days ago

Phenomenal interactive website. Thank you.

Comment by yeshman 4 days ago

Seconded. Quality content.

Comment by testycool 4 days ago

Thanks to your comment I checked it out and loved it. Thanks.

Comment by hanzeweiasa 4 days ago

[flagged]

Comment by 5 days ago