Vector databases store high-dimensional vectors (embeddings) in a way that makes searching for similar vectors (based on something like Euclidean distance) very quick.
For example, if the abstract for a paper is converted into a vector embedding, you could query a vector database for other vectors that are nearby in the embedding space. Each nearby vector in the database would tie back to an abstract that had similar semantic meaning, because the embedding model used to create all embeddings was trained to embed abstracts in a way that captures the essence of their meaning.
Put differently, vector databases let you do this:
- Start with some text (or an image, or whatever else). It can be a query or it can be some reference data that might be useful for answering other queries.
- Run that text through an embedding model. This converts it into an embedding (which is a vector) whose values represent where it lives in some high-dimensional space that represents the core meaning of that text. Other vectors with similar values, by virtue of the embedding model, have similar meanings.
- Insert the embedding into a vector database.
- Query the vector database with a new vector. The vector database returns other nearby vectors, their closeness, and pointers back to the original text that generated each returned vector. That original text can be PDF files in an object store or whatever.
Examples
Name | Architecture | QPS | Vector count |
---|---|---|---|
Milvus | scale-out | ”tens of thousands" | "billions” |