What embedding models perform best for RAG retrieval and how do you select one?
Embedding model selection depends on language, domain, and latency requirements. Top performers on MTEB benchmark: Cohere embed-v3 (commercial), BGE-large-en-v1.5 (open-source, 1024 dim), GTE-large (open-source, 1024 dim), E5-mistral-7b-instruct (highest quality, slow), and for multilingual, multilingual-e5-large. Selection criteria: dimension size affects storage (384 dim vs 1024 dim is 2.7x difference at scale), inference speed (smaller models like all-MiniLM-L6-v2 at 384 dim are 5x faster), domain adaptation (fine-tune on domain data for 15-25% retrieval improvement), and max token length (most models cap at 512 tokens, some support 8192). For RAG specifically, use asymmetric models trained with query-document pairs rather than symmetric similarity models. Always evaluate on your specific domain using NDCG@10 and Recall@20 metrics on a labeled test set of 200+ query-document pairs. Consider using Matryoshka embeddings that allow dynamic dimension reduction without retraining.