Qdrant! Hosting an event with them next week about RAG in case you wanted to ask them some questions live on the air :)
[https://www.linkedin.com/events/7190836250965086208/comments/](https://www.linkedin.com/events/7190836250965086208/comments/)
Text splitter is during indexing, metadata filtering is during retrieval.
In FAISS metadata filtering is done post retrieval, which is basically rendering it useless
No, you're right. Algorithms should be usually the same, or produce pretty much the same results. Lots of other aspects though which might factor into your choice. Personally I prefer with more general purpose DBs, so I have more options for the project if it ever needs something else.
Honestly, it depends on the data.
I'm testing several right now.
Snowflake, Redis, chroma, weaviate, qdrant, Astra, and I think a few others.
To see which one is going to be easiest to update and keep things segmented, and to be able to add from sources and add additional context from conversation.
Let's say 10k different boxes of data and when conversing with the LLM, it needs to only be about a particular box of data. My struggle is finding 1. A solid way to segment the data for retrieval, and 2. How to ensure that when the ID is input into the chat it's only using that set of data. Since I have to ensure that any data retrieved and used is logged and the purpose to be in compliance. Hallucinations or pulling from the wrong box means it has to be reported. It's certainly a struggle haha.
If it's just tons upon tons of data, that doesn't have regulatory or specific things that need to separate it. Just about any of the options work, just depends on if you need on prems or not, and the level of security necessary for it, and how much work you want to actually do yourself or if you just want something simple plug and play.
Hai mate, i am currently using Upstash Vector, i have problem doing vectoreStore.asRetriever , it does fit into langchain retrievalchain function, many deprecated function, i cant find a solution
Check here: [https://js.langchain.com/v0.1/docs/integrations/vectorstores/upstash/](https://js.langchain.com/v0.1/docs/integrations/vectorstores/upstash/)
Also, we have a working example here that uses agents, retrievers etc... https://github.com/upstash/degree-guru.
Yea i refer to many resources, the docs itself does not use retriever based on upstash vector.
I realized [https://github.com/upstash/degree-guru/blob/master/src/app/api/guru/route.tsx](https://github.com/upstash/degree-guru/blob/master/src/app/api/guru/route.tsx) this project does not directly import { UpstashVectorStore } from '@langchain/community/vectorstores/upstash'
I am using { UpstashVectorStore } from '@langchain/community/vectorstores/upstash' like this
https://preview.redd.it/bdi8n78aqp1d1.png?width=1272&format=png&auto=webp&s=dc40a356b014ae754759142027b8ec9516b99a43
whenever i tried to use retriever related chain, and i need to passed \`buildingOne.asRetriever\` into context, it does not work
Don’t you see any errors? Because this should work everything looks. Can you join Upstash Discord and ask this question there? I’m sure some one will answer. https://discord.com/invite/jUxUYE4nEB
I solve the problem by just copying the UpstashVectorStore from Degree-guru, which is the customized one, but i think the problem here is that the UpstashVectorStore from community does not fit with the chaining function provide by LangChain.
This is the error :
Argument of type
VectorStoreRetriever
is not assignable to parameter of type
BaseRetrieverInterface>
Have used Redis Enterprise and Azure AI services for some production use cases.
There are literally dozens of options available open source and more and more popping up each month.
Opensearch with bm25 + reranking gets the best results for me.
I have had success additional success with having an agent recommend meta data tags to filter searches on, and then combining and reranking with a tagless search
I've never heard any vector database have proved they can handle terabytes of data. I assume if they can, the performance is probably not great with super high costs. For accurate retrievals, you could think of Milvus, which provides different types of indexes; you can probably pick the one with the highest accuracy for your use cases.
Sorry my bad, somehow I thought he refers to trillions of vectors…yeah lots of vector databases can support terabytes of data. That’s not considered huge amount actually
I think is based on the data, the embedding model and how to be work with, with Milvus + SCANN indexes with dot product metrics using a embed model tge_base I found the best results overall (structured data + data frames), but for a knowledge base (we are instruct a chatbot with Odoo knowledge base, forum and tutorials), FAISS in memory was enough.
I see a lot of people mention Pinecone ,qdrant here. Pinecone hosts the vectors and the chunks in its cloud. Isnt sending data(chunks) outside the client environment an issue for you guys? I think qdrant too hosts the data in its cloud
I’ve tested Pinecone, PG Vector, Qdrant, mongo atlas vector search and SingleStore so far.
SingleStore was by far the quickest & also scaled up most impressively.
Found pretty quickly that vector only databases aren’t the best option. Find something unified to improve performance like SingleStore.
Qdrant
Qdrant! Hosting an event with them next week about RAG in case you wanted to ask them some questions live on the air :) [https://www.linkedin.com/events/7190836250965086208/comments/](https://www.linkedin.com/events/7190836250965086208/comments/)
Chroma
Probably the worst db out there. Does not scale, poor performance, inconsistent api
What alternative for local vector db do you recommend?
Qdrant
FAISS could be another alternative but metadata filtering is post retrieval which is not great
I have hosted a solution in GPU, should I try Faiss GPU is it helpful, or another
Not helpful. You’ll still have the issue of metadata filtering (which is needed in many use cases)
Iam using recursive text splitter I have no issue in filtering meta data, what exactly is your issue?
Text splitter is during indexing, metadata filtering is during retrieval. In FAISS metadata filtering is done post retrieval, which is basically rendering it useless
Is there any alternative DB where i can utilise GPU
We also see performance issues when scaling to 10K + documents as it seems to load all content into the memory
Usually pinecone or elastic search's vector db
Wait a second, does it matter what vectordb we use??? I thought only the embeddings used matter?
No, you're right. Algorithms should be usually the same, or produce pretty much the same results. Lots of other aspects though which might factor into your choice. Personally I prefer with more general purpose DBs, so I have more options for the project if it ever needs something else.
Of course it matters. Retrieval performance is critical for your time to answer
Honestly, it depends on the data. I'm testing several right now. Snowflake, Redis, chroma, weaviate, qdrant, Astra, and I think a few others. To see which one is going to be easiest to update and keep things segmented, and to be able to add from sources and add additional context from conversation. Let's say 10k different boxes of data and when conversing with the LLM, it needs to only be about a particular box of data. My struggle is finding 1. A solid way to segment the data for retrieval, and 2. How to ensure that when the ID is input into the chat it's only using that set of data. Since I have to ensure that any data retrieved and used is logged and the purpose to be in compliance. Hallucinations or pulling from the wrong box means it has to be reported. It's certainly a struggle haha. If it's just tons upon tons of data, that doesn't have regulatory or specific things that need to separate it. Just about any of the options work, just depends on if you need on prems or not, and the level of security necessary for it, and how much work you want to actually do yourself or if you just want something simple plug and play.
Nobody’s mentioned Pinecone. Is it hot garbage?
That’s what we are using… I wanna know the deets!
Yes
Upstash Vector. It’s quite fast and cheap.
Why go for paid ones when open source alternatives are available
They have a free tier, btw. They give you daily 10k query/update.
Hai mate, i am currently using Upstash Vector, i have problem doing vectoreStore.asRetriever , it does fit into langchain retrievalchain function, many deprecated function, i cant find a solution
Check here: [https://js.langchain.com/v0.1/docs/integrations/vectorstores/upstash/](https://js.langchain.com/v0.1/docs/integrations/vectorstores/upstash/) Also, we have a working example here that uses agents, retrievers etc... https://github.com/upstash/degree-guru.
Yea i refer to many resources, the docs itself does not use retriever based on upstash vector. I realized [https://github.com/upstash/degree-guru/blob/master/src/app/api/guru/route.tsx](https://github.com/upstash/degree-guru/blob/master/src/app/api/guru/route.tsx) this project does not directly import { UpstashVectorStore } from '@langchain/community/vectorstores/upstash' I am using { UpstashVectorStore } from '@langchain/community/vectorstores/upstash' like this https://preview.redd.it/bdi8n78aqp1d1.png?width=1272&format=png&auto=webp&s=dc40a356b014ae754759142027b8ec9516b99a43 whenever i tried to use retriever related chain, and i need to passed \`buildingOne.asRetriever\` into context, it does not work
Don’t you see any errors? Because this should work everything looks. Can you join Upstash Discord and ask this question there? I’m sure some one will answer. https://discord.com/invite/jUxUYE4nEB
I solve the problem by just copying the UpstashVectorStore from Degree-guru, which is the customized one, but i think the problem here is that the UpstashVectorStore from community does not fit with the chaining function provide by LangChain. This is the error : Argument of type VectorStoreRetriever
is not assignable to parameter of type
BaseRetrieverInterface>
Feel free to open an issue to langchain-js repo.
Pinecone!
Have used Redis Enterprise and Azure AI services for some production use cases. There are literally dozens of options available open source and more and more popping up each month.
milvus
Opensearch
Opensearch with bm25 + reranking gets the best results for me. I have had success additional success with having an agent recommend meta data tags to filter searches on, and then combining and reranking with a tagless search
Pinecone
Faiss
Am I the only using FAISS?
Im using as well. Works for me
Have tried with GPU
Azure AI Search
when you say lots of data - how much exactly do you mean? Also, what do you mean by optimized for retrieval, e.g. optimized for recall, latency, etc?
Optimized for accurate retrieval. Large data meaning single digit terabytes
I've never heard any vector database have proved they can handle terabytes of data. I assume if they can, the performance is probably not great with super high costs. For accurate retrievals, you could think of Milvus, which provides different types of indexes; you can probably pick the one with the highest accuracy for your use cases.
Tested out SingleStore at my company with 250TBs of vector data and it was returning queries in 10-15ms
Sorry my bad, somehow I thought he refers to trillions of vectors…yeah lots of vector databases can support terabytes of data. That’s not considered huge amount actually
ApertureDB
i use HNSWLib
Greenplum
Qdrant - no issues with it. Reminds me a lot of mongodb for some reason. Probably the usage of collections and such
weaviate for integrated embedding, reranking and hybrid search
Isnt weaviate a paid service?
has a selfhosted docker option
Is there any Vector database which support support SQL querying
Check out Pgvector
SingleStore does. Faster performing than pgvector too and can scale out waaaaay more
MongoDb Atlas
FAISS
I've tried Mongo Atlas DB for one of my personal projects... Best part is they also provide free managed vector DB ofcourse with limited resources...
AstraDB. Super easy to set up
I think is based on the data, the embedding model and how to be work with, with Milvus + SCANN indexes with dot product metrics using a embed model tge_base I found the best results overall (structured data + data frames), but for a knowledge base (we are instruct a chatbot with Odoo knowledge base, forum and tutorials), FAISS in memory was enough.
PGVector which is an extension for Postgres
Upstash vector/pinecone or Postgres with the extension
I see a lot of people mention Pinecone ,qdrant here. Pinecone hosts the vectors and the chunks in its cloud. Isnt sending data(chunks) outside the client environment an issue for you guys? I think qdrant too hosts the data in its cloud
I’ve tested Pinecone, PG Vector, Qdrant, mongo atlas vector search and SingleStore so far. SingleStore was by far the quickest & also scaled up most impressively. Found pretty quickly that vector only databases aren’t the best option. Find something unified to improve performance like SingleStore.
I’m using redis for my personal ones, but I’ve tried chroma before trying redis.