Embedding
The word "Embeddings" use in the AI context are numerical representations of real-world objects that machine learning uses to represent complex data and relationships.
Unlike traditional "records" in a database that represent just the "value" of the data, embeddings can provide a lot of information about "relationships" between data.
Embeddings are just a series of numbers to represent a certain meaning, so if the "meaning" they are representing are different then there will be a different series of numbers.
For example, there can be TWO embeddings for the single word "play" :
- one embedding for "play" as in "play with a toy"
- one embedding for "play" as in "going to a play"
The more numbers there are in the series, the more information we have about that "thing".
By comparing the embeddings of 2 things (their 2 series of numbers) we can tell how "similar" these 2 things are to each other - that is we can discover the relationship between them.
For vector databases to work together as a team, they much use the SAME embedding model. Thus it is VERY important for Compute Teams working together to agree on embedding models they use.
Embedding Models
We don't normally use the large models (e.g. Llama) for generating embeddings since it is slow and the generated embeddings are very large. Instead a smaller more specialised embedding models are used.
- https://www.timescale.com/blog/finding-the-best-open-source-embedding-model-for-rag
- state-of-open-source-ai/model-formats.md at main · premAI-io/state-of-open-source-ai · GitHub
Multimodal Models
There used to be different types of embedding models for different data types e.g. for images, for text, for audio, for relationships etc. But recently Multimodal Embedding Models start to work across multiple data types.