Embeddings DB recommendations? I've heard of pinec...
# 06-technical-discussion
n
Embeddings DB recommendations? I've heard of pinecone, chroma, vectors directly in PG. Does anyone have experience with these that can recommend one or another?
d
Pinecone seems to be most people's default. That said, given the amount of resources Microsoft and Azure is throwing at AI and the centrality of Cosmos DB to Azure generally I'm personally watching this announcement from about 2 weeks ago pretty closely: https://devblogs.microsoft.com/cosmosdb/introducing-vector-search-in-azure-cosmos-db-for-mongodb-vcore/
πŸ‘€ 2
v
If you don't mind managing your vector store, I've found weviate to be the best!
I would also recommend looking into pg-vector and redis-vector (https://redis.com/solutions/use-cases/vector-database/)
πŸ™ 1
h
just use redis
depending on the size of your data, if its only tens of million vectors, just use chroma/duckdb or cozo
πŸ‘ 1
n
@Han for low size, how would you compare redis and pg ?
d
@Nicholas Charriere have used qdrant in production, its quite better on Ram footprint etc
πŸ‘€ 1
n
Nice, better than what? Any comparison points?
d
Sure, if you can share more about your use-case and what is more important (like performance/speed/recall/precision etc), can surely help direct you to those benchmarks etc
If you want something local, Qdrant and Weaviate have much better performance.
You can find more info here about difference benchmarks for choosing right Vector DB https://github.com/erikbern/ann-benchmarks
πŸ™Œ 2
h
For small foot prints, just use Chroma or Cozo. They sit in memory, dont need to do anything fancy. And move to Redis if you need it in production so you can separate the scaling
There's not much reason to use Pinecone, Weaviate, etc, since that would require you to make a trip over the Internet. PGVector has its use cases, but its meh
Also, depending on use case, you do need to sometimes worry about ingestion speed or upsert speed.
a
contrarian take:
πŸ‘ 1
h
I dont see why that’s contrarian. numpy is usually the best choice if you just need something in memory. then sqlite (cozo) or duckdb (chroma).
Both embeddings layer and attention layers in the transformer model architecture are both doing vectorized retrieval.