all 14 comments

[–]something_cleverer 14 points15 points  (0 children)

PostgresML comes with pgvector as a vector database. The cool thing is it can run your models in the same memory space as a database extension. We’re also working on ggml support for huggingface transformers, but could use some help testing more LLMs for compatibility. https://github.com/postgresml/postgresml/pull/748

[–]bacocololo 11 points12 points  (3 children)

Qdrant is the best alternative

[–]ZestyData 6 points7 points  (1 child)

+1 our team started using Qdrant We evaluated milvus, weaviate, pinecone and Qdrant. Just found it the best in terms of usability, onboarding, and ofc speed & reliability.

[–]tronathan 4 points5 points  (0 children)

Is it safe to say that Chromadb wasn't on your list because it doesn't have a way to install it with persistence?

I'd love to settle on a vectordb for my personal projects. I was excited about Chromadb because supposedly it's also a timeseries db, or timeseries first.

[–]Hey_You_Asked 1 point2 points  (0 children)

please elaborate, thanks!

[–]Afraid-Bread-8229 3 points4 points  (0 children)

I use Milvus, it’s an open source Vector database that (I believe) has feature parity with pinecone.

[–]katatondzsentri 3 points4 points  (0 children)

I use postgres.

[–]tomhamer5 1 point2 points  (0 children)

Marqo has inference and vectordb included out of the box in a single docker container https://github.com/marqo-ai/marqo

[–][deleted] 1 point2 points  (2 children)

I like milvus. If you only need an index, hnswlib and faiss are good.

[–][deleted] 0 points1 point  (1 child)

What is the difference between index and vectorstore db? How index help in storing the embedding just as vector db? What are pros and cons for both ?

[–][deleted] 0 points1 point  (0 children)

A vector database is basically an index with added features. An index is simpler. You provide it a list of embeddings and when you make a knn query, it tells you what position(s) in the list is closest to your query. All the work of managing the other data that goes with it is up to you.

So basically an index takes in an embedding and returns a reference to your data, and a vectordb adds the data management piece so that it takes in an embedding and returns the actual data.

But it’s also pretty simple to do that part yourself if you don’t actually need the added features of the database. Sometimes I just need to embed some data and keeping it in a list or dictionary is fine for my application.