Hacker News new | ask | show | jobs
by rsiqueira 956 days ago
URGENT - Does anyone have an alternative to OpenAI's embeddings API? I do have alternative to GPT's API (e.g. Anthropic Claude) but I'm not able to use them without embeddings API (used to generate semantic representation of my knowledge base and also to create embeddings from user's queries). We need to have an alternative to OpenAI's embeddings as a fallback in case of outages.
10 comments

https://www.anthropic.com/product recommends the open-source SBERT: https://www.sbert.net/examples/applications/computing-embedd...

Highly recommend preemptively saving multiple types of embeddings for each of your objects; that way, you can shift to an alternate query embedding at any time, or combine the results from multiple vector searches. As one of my favorite quotes from Contact says: "first rule in government spending: why build one when you can have two at twice the price?" https://www.youtube.com/watch?v=EZ2nhHNtpmk

Azure OpenAI Service is up, and provides the same models as OpenAI https://azure.status.microsoft/status
Is it still "private" as in you have to request access?
It’s publicly available, but you still do have to request access I believe.
Choose whichever one outperforms ada-002 for your task here: https://huggingface.co/spaces/mteb/leaderboard
Oh no the 3 line ai wrapper apps are panicking because they actually don't know to write any code.
I've implemented alternate embeddings in SlothAI using Instructor, which is running an early preview at https://ai.featurebase.com/. Currently working on the landing page, which I'm doing manually because ChatGPT is down.

The plan is to add Llama 2 completions to the processors, which would include dictionary completion (keyterm/sentiment/etc), chat completion, code completion, for reasons exactly like what we're discussing.

Here's the code for the Instructor embeddings: https://github.com/FeatureBaseDB/Laminoid/blob/main/sloth/sl...

To do Instructor embeddings, do the imports then reference the embed() function. It goes without saying that these vectors can't be mixed with other types of vectors, so you would have to reindex your data to make them compatible.

What about Azure? You can set up an ADA 002 Embeddings deployment there.
This reminds us that, what if our databases are maintained using OpenAI's embeddings, and the API suddenly goes down? How do we find alternatives to match the already generated database?
I don't think you can do that easily. If you already have a list of embeddings from a different model, you might be able to generate an alignment somehow, but in general, I wouldn't recommend it.
That's my point, maybe VectorDBs in production should have a fallback mechanism, for the documents inserted,

1. Generate embeddings using services such as OpenAI, which is usually more powerful;

2. Generate backup embeddings using local, more stable models, such as Llama2 embeddings or simply some BERT-family-model (which is more affordable).

When outages comes up you simply switch from one vector space to another. Though possible, model alignments are much harder and more expensive to achieve.

To my knowledge, you cannot mix embeddings from different models. Each dimension has a different meaning for each model.
There's been some success in creating translation layers that can convert between different LLM embeddings, and even between LLM and an image generation model.
Be careful because one embedding may not be compatible with your current embeddings
Amazon Bedrock has an embeddings option