Live data from Hacker News

Which vector database should I use? A comparison cheatsheet

navidre.medium.com

81–90 of 91 posts

Re: Which vector database should I use? A comparison cheatsheet

#81

There are so many options for vector databases that it's so confusing. But those are just a piece of the puzzle when you create applications using large language models. As mentioned in the comments, you have to choose an embeddings model, the LLM, and manage all the interaction in between. With Vectara (full disclosure: I work there; https://vectara.com ) we provide a simple API to implement applications with Ground…

I found it amusing that clicking the “chat” icon in the corner of your website doesn’t demonstrate any of the “grounded generation” capabilities the site is referring to.

Re: Which vector database should I use? A comparison cheatsheet

#82
post #72

I would suggest that anyone trying a real comparison of vector DB's consider the following - necessary functions / use cases (eg prefiltering, dense search) - embeddings version management - anticipated embedding size (the article only considers glove-100 on ANN-benchmarks, which is quite different from openai-ada-002 1536 - both in terms of their output distribution and the vector size) - required precision / recall…

Wouldn't "ease of putting into production" also factor in? For many use cases, being able to put a proof of concept out of the door in hours vs days vs weeks is the top selection criterion if everything else is "good enough".

dev experience is very very important, but I think it's so subjective -- if you are really pushing the boundaries, maybe you want a super powerful platform which can use all the bells and whistles, but if you want to hack a weekend project together, maybe you just want some API calls.

Re: Which vector database should I use? A comparison cheatsheet

#83
post #3

Earlier quoted context omitted.

Wondering why you didn’t include Elasticsearch [0] in your comparison. Also having some benchmark to compare performance would help. [0] https://www.elastic.co/guide/en/elasticsearch/reference/curr...

+1, I've been using OpenSearch (basically Elasticsearch 7.0), and have been pretty happy with the setup so far. OpenSearch specifically has an edge over Elasticsearch because it supports vectors up to 10k dimensions, whereas ES maxes out at indexing 1024 dimensions, which isn't enough to support OpenAI's 1536 dimension vectors. And then there's the benefit of it being well documented / Q&A'd, and able to support regu…

You aren't supposed to index vectors larger than ~128 dimensions. Because of concentration of measure which is an aspect of the curse of dimensionality the distances between high-dimensional vectors tend to become identical.

You need to do dimensionality reduction before indexing. Basically it's fine to just pick n first components if you don't want anything fancy.

Re: Which vector database should I use? A comparison cheatsheet

#84
post #72

I would suggest that anyone trying a real comparison of vector DB's consider the following - necessary functions / use cases (eg prefiltering, dense search) - embeddings version management - anticipated embedding size (the article only considers glove-100 on ANN-benchmarks, which is quite different from openai-ada-002 1536 - both in terms of their output distribution and the vector size) - required precision / recall…

also filtering and benchmarks including filtering

Re: Which vector database should I use? A comparison cheatsheet

#85
post #78

Pure vector databases are a dead end. Almost every search engine (Vespa, Elastic, etc) and every database (Postgres, SQLite, Redis, etc) already has a solution for searching vectors in addition to everything else you need to query or search. If any of these vector databases become anything they will have to also implement either a full search engine or a full database.

MS desperately needs to get on this train with SQL. Maintaining and keeping a second system in sync to do vector search is painful. I've never been more jealous of people using Postgres.

You can do it in any database as long as the corpus is small. But, yes for large numbers of vectors doing a brute force search doesn't scale well.

https://devblogs.microsoft.com/azure-sql/vector-similarity-s...

Re: Which vector database should I use? A comparison cheatsheet

#86
post #84
post #72

I would suggest that anyone trying a real comparison of vector DB's consider the following - necessary functions / use cases (eg prefiltering, dense search) - embeddings version management - anticipated embedding size (the article only considers glove-100 on ANN-benchmarks, which is quite different from openai-ada-002 1536 - both in terms of their output distribution and the vector size) - required precision / recall…

also filtering and benchmarks including filtering

agree! and notably - there's a difference between pre- and post-filtering -- left as an exercise to the reader :)

Re: Which vector database should I use? A comparison cheatsheet

#87
post #54

Earlier quoted context omitted.

Where you gonna put that embedding?

You put the vector in a vector database that gives you the ability to search based on the vectors. So when you create a new vector based on some input (question/etc...) you can use the vector search to find semantically similar topics in your vector database.

Yeah, that is what I was getting at. Thanks.

Re: Which vector database should I use? A comparison cheatsheet

#88
post #15

As much as I like pg_vector, I think right now what we need the most is a pre-packaged version of sqlite-vss and a Pythonic wrapper for bootstrapping projects. This would lower barriers to entry even more for those using LLMs solely via APIs, and save people the trouble of setting up a database server or risking getting locked in to yet another prickly SaaS while iterating on a concept. Scaling can come later, after…

chroma can help here https://github.com/chroma-core/chroma

Re: Which vector database should I use? A comparison cheatsheet

#89
post #79

On OP's page, Milvus is a lot faster than Qdrant, the complete opposite of Qdrant's benchmark. What gives? [1] https://qdrant.tech/benchmarks/

I think user has to test by themselves. Vectorbenchmark support you to run the test by yourself on any cloud serivce or opensource deployment. One of my guess is qdrant tune their parameters crazily on their benchmark.

Re: Which vector database should I use? A comparison cheatsheet

#90
I think we need vectordb bench on 100M level. If you don't have 100M data, and you don't care about things like filtering and streaming insertion, I vote for PGVector since SQL is convenient enough.

However, for large dataset deployment, cost becomes more critical since vector search is computation intensive. Anything like es, mongodb and redis can not even share their results in the benchmark.

Also, if you are looking for more fancy features rather simply ANN, purpose built vector database has faster iterations than traditional databases

Post reply on HN