The intfloat E5 family guide: e5-base-v2, e5-large-v2, multilingual-e5-large
E5 is the embedding family most teams should look at after outgrowing all-MiniLM-L6-v2, and the family most likely to be silently misused in production. The misuse is the prefix rule, covered below; get that wrong and every benchmark number on this page is unreachable. The family comes from Microsoft’s “Text Embeddings by Weakly-Supervised Contrastive Pre-training” work (arXiv 2212.03533; multilingual report at 2402.05672), all MIT licensed.
The variants at a glance
| Model | Params | Dims | Languages | Cost $/1M tok | Latency p50 |
|---|---|---|---|---|---|
| e5-small-v2 | 33M | 384 | English | $0.0038 | 50 ms |
| e5-base-v2 | 109M* | 768 | English | $0.0042 | 58 ms |
| e5-large-v2 | 335M | 1,024 | English | $0.0067 | 87 ms |
| multilingual-e5-large | 560M | 1,024 | ~100 | $0.0074 | 109 ms |
| multilingual-e5-large-instruct | 560M | 1,024 | ~100 | $0.0076 | 107 ms |
All five truncate input at 512 tokens. Serving numbers are from our catalog, measured on an L4. *e5-base-v2’s param count is not stated on its model card; 109M is the standard BERT-base figure.
The English v2 models are BERT backbones. The multilingual pair is XLM-RoBERTa-large, covering the roughly 100 languages of that pretraining corpus, with the model card’s honest caveat that low-resource languages degrade.
The prefix rule, because this is what breaks
E5 models are trained with role prefixes on every input. Skip them and quality drops; the model card says plainly that omitting prefixes causes performance degradation, and the drop is worst exactly where you will not notice it in a demo.
For the v2 and multilingual (non-instruct) models: prepend query: to search queries and passage: to documents at index time. For symmetric tasks like similarity and clustering, use query: on both sides.
The instruct variant replaces this scheme. Queries get a one-sentence task instruction in the format Instruct: {task description}\nQuery: {your query}; documents get no prefix at all. Mixing the two schemes, or carrying passage: habits over to the instruct model, is the second most common E5 bug.
If retrieval quality ever looks inexplicably mediocre with an E5 model, audit the prefixes before anything else. It is almost always the prefixes.
Quality: what the tiers buy you
NDCG@10 from our benchmark suite, same L4 measurement basis as every model in the catalog:
| Benchmark | small-v2 | base-v2 | large-v2 | ml-e5-large | ml-e5-large-instruct |
|---|---|---|---|---|---|
| FiQA2018 | 0.356 | 0.351 | 0.351 | 0.370 | 0.477 |
| NFCorpus | 0.320 | 0.354 | 0.372 | 0.306 | 0.352 |
| SciFact | 0.675 | 0.684 | 0.678 | 0.693 | 0.720 |
| StackOverflowQA | 0.835 | 0.878 | 0.899 | 0.889 | 0.911 |
| SCIDOCS | 0.116 | 0.118 | 0.140 | 0.149 | 0.187 |
Two honest observations from this table. Within the English v2 line, small to base to large buys surprisingly little on several benchmarks; base-v2 is the value pick of the three, and e5-small-v2 embarrasses models ten times its size. And the instruct variant is the family’s real quality leader, ahead on four of the five rows shown, sometimes by a lot (FiQA: 0.477 vs 0.370). The instruction scheme is extra integration work that pays.
For monolingual English workloads, we would still benchmark stella_en_400M_v5 against your data before settling on e5-large-v2; it wins most English retrieval rows in our catalog at a similar price ($0.0082/1M). Where E5 is hard to beat is the multilingual tier: multilingual-e5-large-instruct at $0.0076 per million tokens, with one model covering a hundred languages, has no serious open competition at this serving cost in our catalog today.
Self-hosting
Any E5 variant runs behind SIE’s /encode endpoint with prefix handling done in your application code (send the prefixed strings; the endpoint embeds what you send). Cluster-level batching is what produces the catalog throughput figures: 53,200 tokens/sec for base-v2 and 29,800 tokens/sec for multilingual-e5-large on a single L4. At those rates, embedding a million typical support tickets (call it 200 tokens each) is roughly an hour of one GPU for base-v2, costing under a dollar at the published per-token rate.
Setup and config for all five variants are in the encode docs; each catalog page linked above carries the full per-benchmark quality and performance tables.