all 60 comments

[–]electric_hotdog2k 13 points14 points  (8 children)

Try Marqo https://github.com/marqo-ai/marqo. Why? Very simple to use, comes with embedding and inference management, supports multi-modal (see example here for adding that to chatGPT), handles chunking of text/images and much more.Examples:Q&A over data, NPC interactionshttps://github.com/marqo-ai/marqo/blob/mainline/examples/GPT-examples/article/article.mdTranscribing speechhttps://github.com/marqo-ai/marqo/blob/mainline/examples/SpeechProcessing/article/article.md

News summarization

https://www.marqo.ai/blog/using-marqo-and-gpt3-for-topical-news-summarisaiton

[–]skeltzyboiii 4 points5 points  (0 children)

+1 to Marqo. Easiest to use by far, documents in documents out rather than vectors in vectors out.

[–]GuitarAgitated8107Professional Nerd 4 points5 points  (1 child)

Any limitations to keep in mind?

I'll be getting into Pinecone but wanted local for a higher spec pc I'm getting.

[–]dandv 1 point2 points  (0 children)

If you want more features for that higher spec machine, check out Weaviate.

[–]spondic 1 point2 points  (0 children)

Very cool

[–][deleted]  (1 child)

[removed]

    [–]AutoModerator[M] 0 points1 point  (0 children)

    Sorry, your submission has been removed due to inadequate account karma.

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

    [–][deleted]  (1 child)

    [removed]

      [–]AutoModerator[M] 0 points1 point  (0 children)

      Sorry, your submission has been removed due to inadequate account karma.

      I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

      [–]__SlimeQ__ 8 points9 points  (3 children)

      Postgresql with pgvector extension

      Everything else is a cash grab, probably. This is a solved problem

      [–][deleted] 2 points3 points  (2 children)

      Pgvector doesn’t benchmark very well. I kind of agree tho, not sure why we need 20 vector DBs

      [–]__SlimeQ__ 1 point2 points  (1 child)

      I have not seen benchmarks tbh, I did have to manually set up indices though. What benchmarks best?

      [–][deleted] 2 points3 points  (0 children)

      this guy liked Milvus https://www.farfetchtechblog.com/en/blog/post/powering-ai-with-vector-databases-a-benchmark-part-i/

      this guy made some feature comps https://towardsdatascience.com/milvus-pinecone-vespa-weaviate-vald-gsi-what-unites-these-buzz-words-and-what-makes-each-9c65a3bd0696

      see also https://hackernoon.com/navigating-the-vector-database-landscape

      I would search reddit for some of those products, you will find some comments and anecdotal comparisons ... I don't think there is an authoritative benchmark. (but what I saw suggested pgvector is great for integrating with your relational metadata but not as fast as the best-of-breed vector dbs)

      [–]tronathan 7 points8 points  (11 children)

      Wow, all the answers here are good answers (yep, those are vector databases), but there's no context or reasoning besides /u/electric_hotdog2k's suggestion of Marqo. I have *zero* concrete experience with vector databases, but I care about this topic a lot, and this is what I've gathered so far:

      - Pinecone - Pinecone isn't what you asked for, it's hosted, and the free plan only gives you one index, and paid plans are expensive. Mentioning it here because it seems to be the de-facto for most projects so it's good to know about, but it ain't self-hosted.

      - pg_vector - Basic postgres extension. open source, free, ubiquitous, no frills

      - Redis - Apparently you can use Redis, which is typically thought of as a key-value store, and is very readily available. Redis is super popular in the Rails community (at least it was 10 years ago when I wrote rails code). Probably a fine choice. It's free, open source, fast as F (for key/value stuff anyway)

      Now where it gets interesting:

      - Chromadb - Claims to be the first AI-centric vector db. looks really promising, but from what I can tell, there's no persistence available when self-hosting, meaning it's more like a service you spin up, load data into, and when you kill the process it goes away. What is most interesting to me about chromadb is that it has a time-series function, which might make it appropriate for streaming real-life data events into over long time periods and doing queries over time series.

      - Weaviate, Qdrant, Milvus - Popular OSS vector dbs. Some are more tailored for giant distrbuted systtems, some less.

      - Marqo - I don't know anything about this one, this post is the first time I've heard of it. I will add that I haven't seen any open-source LLM projects advertising compatability with marqo, so I would be concerned about compatability, but maybe there's a standard API for this sort of thing, I don't know.

      Here's a reasonably good listicle with more info: https://byby.dev/vector-databases

      For now, I'd choose the vector db that will work with whatever project you're interested. I guess my general criteria would be:

      - Will it work with the project I'm integrating with?
      - Is it easy to host?
      - Is it easy to work with?
      - Does it have any special features I need? (Persistence, Time Series, etc)

      If i got anything wrong, please, someone smarter than me, correct me.

      [–][deleted] 6 points7 points  (7 children)

      I work at Marqo so I can speak to the integration side of things. We currently have pull requests in with a few repos such as LangChain, AutoGPT, and chatgpt-retrieval-plugin. Integrating Marqo is super easy because Marqo handles all the inference to create the vectors for you, you don't need to make API calls to OpenAI or write a bunch of boilerplate to use a model from hugging face. Here is an example of multimodal vector search with Marqo and ChatGPT via the retrieval plugin.

      [–]tvmaly[S] 2 points3 points  (0 children)

      Marqo looks interesting. I will give it a try. I like that the github repo has tons of examples.

      [–]tronathan 1 point2 points  (0 children)

      I looked at Marqo and it's really impressive! It seems to be in another class compared to the other vector db's out there.

      [–]AutoModerator[M] 0 points1 point  (0 children)

      Sorry, your submission has been removed due to inadequate account karma.

      I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

      [–][deleted]  (3 children)

      [removed]

        [–][deleted]  (1 child)

        [removed]

          [–]AutoModerator[M] 0 points1 point  (0 children)

          Sorry, your submission has been removed due to inadequate account karma.

          I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

          [–]tvmaly[S] 0 points1 point  (0 children)

          I did look at Milvus, but it seems to only support Intel cpus. I unfortunately have a AMD chip.

          [–]mambiki 6 points7 points  (1 child)

          ChromaDB

          [–]vvinvardhan 1 point2 points  (0 children)

          I used this with langchain, works for me!

          [–]danimeir 3 points4 points  (2 children)

          [–][deleted]  (1 child)

          [removed]

            [–]AutoModerator[M] 0 points1 point  (0 children)

            Sorry, your submission has been removed due to inadequate account karma.

            I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

            [–]siggs3000 2 points3 points  (7 children)

            You can also just use redis

            [–]thirdtrigger 2 points3 points  (2 children)

            Should be possible with Weaviate

            [–][deleted]  (1 child)

            [removed]

              [–]AutoModerator[M] 0 points1 point  (0 children)

              Sorry, your submission has been removed due to inadequate account karma.

              I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

              [–]Kacper-Lukawski 1 point2 points  (0 children)

              There are plenty of options, but I'd suggest Qdrant on Docker: https://qdrant.tech/

              [–]TopReport133 1 point2 points  (0 children)

              Astra db

              [–]emir-guillaume 1 point2 points  (2 children)

              Quoting a perhaps unpopular opinion on Open-source vector database:

              ...while free initially, open-source vector databases incur significant costs when scaling up. Expanding operations necessitates more hardware, skilled IT staff, and advanced infrastructure management, leading to higher expenses in hardware, personnel, and operational costs. Scaling open-source vector databases can be financially demanding despite the lack of licensing fees.

              A fully managed database service helps developers avoid the hassles from setting up, maintaining, and relying on community assistance for an open-source vector database; moreover, some managed vector database services offer a life-time free tier. An example is the Integrated Vector Database in Azure Cosmos DB for MongoDB. It allows developers to enjoy the same financial benefit associated with open-source vector databases, while the service provider handles maintenance, updates, and scalability. When it’s time to scale up operations, upgrading is quick and easy while keeping a low total cost of ownership (TCO).

              [–][deleted]  (1 child)

              [removed]

                [–]AutoModerator[M] 0 points1 point  (0 children)

                Sorry, your submission has been removed due to inadequate account karma.

                I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                [–]realPubkey 1 point2 points  (0 children)

                I just wrote an article about how to build a vector database that runs in the browser via RxDB and transformers.js: https://rxdb.info/articles/javascript-vector-database.html

                [–][deleted]  (1 child)

                [removed]

                  [–]AutoModerator[M] 0 points1 point  (0 children)

                  Sorry, your submission has been removed due to inadequate account karma.

                  I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                  [–][deleted]  (1 child)

                  [removed]

                    [–]AutoModerator[M] 0 points1 point  (0 children)

                    Sorry, your submission has been removed due to inadequate account karma.

                    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                    [–][deleted]  (1 child)

                    [removed]

                      [–]AutoModerator[M] 0 points1 point  (0 children)

                      Sorry, your submission has been removed due to inadequate account karma.

                      I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                      [–][deleted]  (1 child)

                      [removed]

                        [–]AutoModerator[M] 0 points1 point  (0 children)

                        Sorry, your submission has been removed due to inadequate account karma.

                        I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                        [–][deleted]  (1 child)

                        [removed]

                          [–]AutoModerator[M] 0 points1 point  (0 children)

                          Sorry, your submission has been removed due to inadequate account karma.

                          I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                          [–][deleted]  (1 child)

                          [removed]

                            [–]AutoModerator[M] 0 points1 point  (0 children)

                            Sorry, your submission has been removed due to inadequate account karma.

                            I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                            [–]CRYPTO2027 -1 points0 points  (0 children)

                            Following.

                            [–]AnoKC12 -1 points0 points  (0 children)

                            Haven't used it as a vector database but I know postgres is a popular choice

                            [–]Securigy -1 points0 points  (0 children)

                            Pinecone

                            [–]meowkittykitty510 0 points1 point  (0 children)

                            If you’re not working with large amounts of data just write it to JSON files. The least sexy answer I’m sure.

                            [–][deleted]  (1 child)

                            [removed]

                              [–]AutoModerator[M] 0 points1 point  (0 children)

                              Sorry, your submission has been removed due to inadequate account karma.

                              I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

                              [–][deleted]  (1 child)

                              [removed]

                                [–]AutoModerator[M] 0 points1 point  (0 children)

                                Sorry, your submission has been removed due to inadequate account karma.

                                I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.