Embedding Benchmarks and the Zero-Shot Problem
The leaderboard that everyone uses to pick an embedding model publishes training splits for its own test sets, so a top rank increasingly measures in-domain fit rather than the out-of-domain generalisation retrieval actually needs.
Embedding models are chosen from a leaderboard more often than from an experiment. That makes the leaderboard's construction a production concern rather than an academic one, and the construction has a specific flaw worth understanding before you trust a rank.
What MTEB set out to fix
Before 2022, embedding papers evaluated on whatever handful of datasets suited them, usually from one task family. MTEB replaced that with breadth: 8 task types, 58 datasets, 112 languages, 33 models at launch (Muennighoff et al., 2022, MTEB: Massive Text Embedding Benchmark, arXiv:2210.07316). Its headline finding was that no single method dominated across tasks, which is still true and still routinely ignored by anyone reading only the average column.
MMTEB extended this to over 500 tasks and 250+ languages, and found the best publicly available model to be multilingual-e5-large-instruct at 560M parameters, well below the largest entrants (Enevoldsen et al., 2025, MMTEB, ICLR 2025, arXiv:2502.13595). Size is not the axis.
The flaw: published training splits
Retrieval quality is fundamentally an out-of-distribution question. Your corpus is not MS MARCO. BEIR was built on exactly this premise, evaluating zero-shot transfer across 18 heterogeneous datasets and finding BM25 a stubbornly robust baseline that many dense retrievers failed to beat out of domain (Thakur et al., 2021, BEIR, arXiv:2104.08663).
MTEB published training splits for many of its datasets. Models began training on them. A model that has trained on the NQ training split is not doing zero-shot retrieval when evaluated on an NQ-derived task, and its score no longer predicts behaviour on your data. Nils Reimers, an MTEB co-author, has publicly called publishing those splits a mistake and argued that embedding models must be evaluated out of domain for the number to mean anything.
The benchmark's own response is the most useful artefact here: a zero-shot score reported per model, defined as \(z = 1 - n_{\text{train}}/n_{\text{total}}\), where \(n_{\text{train}}\) is the number of benchmark datasets the model was trained on. The documented example is e5-mistral-7b-instruct at 95% on MTEB (English, v2), meaning it was trained on roughly 5% of the benchmark's training splits (Chung et al., 2025, Maintaining MTEB, arXiv:2506.21182). Filtering the leaderboard to 100% zero-shot models proved too restrictive, since it penalised labs that honestly disclosed their training data, so the score is now reported alongside rank rather than used as a gate.
Read the zero-shot column before the score column. A 2-point average lead from a 60% zero-shot model over a 100% zero-shot model is not evidence of a better retriever.
Why the average column is the wrong summary
MTEB averages across retrieval, reranking, clustering, classification, semantic similarity, pair classification, summarisation and bitext mining. These tasks want incompatible geometries. Retrieval wants near-duplicates far apart when only one is relevant; semantic similarity wants them close. A model that averages well is a compromise, and the compromise may sit nowhere near your task.
Three practical consequences:
- Read the per-task columns for the task you actually have.
- Check whether the benchmark's domains resemble yours. Legal, clinical and code corpora are barely represented.
- Check the sequence length. Many benchmark documents are short; if your chunks are 2,000 tokens, the ranking may not transfer.
When it breaks
Leaderboard rank does not survive a domain change. The single most common production surprise is that the number one model underperforms a mid-table one on an internal corpus. Reproducing the ranking on a few hundred labelled pairs from your own data costs an afternoon and routinely changes the decision.
Contamination is not always deliberate. Many models train on Wikipedia title-body pairs, and many benchmark datasets derive from Wikipedia. MTEB's own guidance excludes some of these cases from the leakage definition, which means the zero-shot score is a coarse estimate, not a proof of cleanliness.
A benchmark that everyone optimises against stops discriminating. As scores compress at the top, differences fall inside the noise band, and rank ordering becomes an artefact of seed and preprocessing rather than of capability. This is the same dynamic as benchmark contamination in LLM evaluation, and it needs the same treatment: error bars, held-out private sets, and a bias toward your own evaluation harness.
Cost and latency are absent from the leaderboard entirely. Dimensionality, sequence limit, and inference cost determine your index size and query latency, and none of them appears in the rank; see binary and int8 embedding quantisation and Matryoshka representation learning.
12 flashcards for this concept
Click a card to reveal the answer.