3 ms·
Correct, that would take more than 5 minutes, although still possible to do with Faiss (and not that hard relatively speaking - in the Teclis demo, I indeed did
by freediver 5y ago
Correct, that would take more than 5 minutes, although still possible to do with Faiss (and not that hard relatively speaking - in the Teclis demo, I indeed did your second point - combine results with a keyword search engine and there are many simple solutions you can use out there like Meilisearch, Sonic etc.e). If you were to try using an external API for vector search, you would still need to build keyword based search separately (and then combining/ranking logic) so then you may be better off just building the entire stack anyway.
Anyway, for me, the number one priority was latency and it is hard to beat on-premise search for that.
Even then, a vector search API is just one component you will need in your stack. You need to pick the right model, create vectors (GPU intensive), then possibly combine search results with keyword based search (say BM25) to improve accuracy etc. I am still waiting to see an end-to-end API doing all this.
- dontreact 5y agoInteresting. Did you also tackle the incremental update problem with FAISS?
- freediver 5y agoNo, I didn't have a need for it in this demo (but is certainly possible with Faiss).
- dontreact 5y agoThanks for sharing all that you have so far. I’d be super curious to learn more about how to best do incremental updates with FAISS!
- pierrefermat1 5y agoLikewise here, had a look around on the Weaviate website too and couldn't find much on how they are internally handling incremental updates
- thirdtrigger 5y agoDid you see this blog? https://db-engines.com/en/blog_post/87 https://db-engines.com/en/blog_post/87 It's an interesting point tho. Maybe it's good to add this to the docs as well
- leobg 5y agohnswlib[1] allows for incremental updates. And I believe in terms of accuracy it stacks up fairly well against alternatives like FAISS or ScaNN. [1]: https://github.com/nmslib/hnswlib/ https://github.com/nmslib/hnswlib/
- thirdtrigger 5y ago> I am still waiting to see an end to end API doing all this That’s kinda the idea of Weaviate. You might like the Wikipedia demo dataset that contains all this. You indeed need to run this demo on your own infra but the whole setup (from vector DB to ML models) is containerized https://github.com/semi-technologies/semantic-search-through-wikipedia-with-weaviate https://github.com/semi-technologies/semantic-search-through...
- jkb79 5y ago>then possibly combine search results with keyword based search (say BM25) to >improve accuracy etc. I am still waiting to see an end-to-end API doing all this > Vespa.ai supports combining dense vector search with keyword search and ranking, see https://docs.google.com/presentation/d/1vWKhSvFH-4MFcs4aNa9CNAy4m_TRMNJ0oJ_va7t3OFA/edit#slide=id.p1 https://docs.google.com/presentation/d/1vWKhSvFH-4MFcs4aNa9C... There is also a Vespa sample application (open source, Apache 2) demonstrating multiple different retrieval and ranking strategies over at https://github.com/vespa-engine/sample-apps/blob/master/msmarco-ranking/passage-ranking.md https://github.com/vespa-engine/sample-apps/blob/master/msma...