mmteb-eval
MMTEB: Massive Multilingual Text Embedding Benchmark — Enevoldsen et al. (2025) (arXiv:2502.13595, 2025)
What this evaluates
Evaluates the quality of multilingual text embeddings across diverse tasks and languages. It probes capabilities like semantic similarity, classification, retrieval, and multilingual alignment.
Datasets
Metrics
Borda count (primary) — range: integer (higher is better)
- Each task ranks all evaluated models. Models receive points based on their rank (e.g., highest score gets N points, lowest gets 1). Points are summed across all tasks to yield a total score. Ties are resolved via the tournament Borda count method.
Average task score — range: percent or [0, 1]
- The arithmetic mean of task-specific performance metrics (e.g., accuracy, cosine similarity, F1) computed across all tasks or grouped by category.
Input / output format
Input: Text pairs (for classification, STS, bitext mining) or query-document pairs (for retrieval, reranking) fed into a text embedding model.
Output: Fixed-dimensional embedding vectors for each input text.
Scoring recipe
def evaluate(models, tasks):
task_scores = {t: [] for t in tasks}
for model in models:
for t in tasks:
task_scores[t].append(compute_task_metric(model, t))
avg_scores = {m: mean([s for s in task_scores.values()]) for m in models}
borda_scores = {m: 0 for m in models}
for t in tasks:
ranked = sort_descending(task_scores[t])
for rank, m in enumerate(ranked):
borda_scores[m] += len(ranked) - rank
return avg_scores, borda_scores
Common pitfalls
- Averaging raw task scores without normalization can skew results, as different tasks use different metrics (e.g., accuracy vs. cosine similarity).
- Ignoring the Borda count aggregation method for final model ranking, which is explicitly designed to be more robust than simple score averaging.
- Overlooking limited model support for newer tasks like Instruction Retrieval, which are excluded from category averages in reported results.
Evidence (verbatim from paper)
We compute model ranks using the Borda count method (Colombo et al., [2022]), derived from social choice theory. This method, which is also employed in election systems based on preference ranking, has been shown to be more robust for comparing NLP systems. To compute this score, we consider each task as a preference voter voting for each model, and scores are aggregated according to the Borda Count method. In the case of ties, we use the tournament Borda count method.
Citation
@misc{enevoldsen2025mmteb,
title={MMTEB: Massive Multilingual Text Embedding Benchmark},
author={Enevoldsen et al. (2025)},
year={2025},
note={arXiv:2502.13595}
}
1---2name: mmteb-eval3description: Evaluates the quality of multilingual text embeddings across diverse tasks and languages. It probes capabilities like semantic similarity, classification, retrieval, and multilingual alignment. Use when the user wants to benchmark on MTEB(Multilingual), MTEB(Europe), MTEB(Indic), or asks about evaluating this task. Reports Borda count.4---56# mmteb-eval78> MMTEB: Massive Multilingual Text Embedding Benchmark — Enevoldsen et al. (2025) (arXiv:2502.13595, 2025)910## What this evaluates1112Evaluates the quality of multilingual text embeddings across diverse tasks and languages. It probes capabilities like semantic similarity, classification, retrieval, and multilingual alignment.1314## Datasets1516- **MTEB(Multilingual)** — total 132; splits: test (-1); repo https://github.com/embeddings-benchmark/mteb17- **MTEB(Europe)** — total 74; splits: test (-1); repo https://github.com/embeddings-benchmark/mteb18- **MTEB(Indic)** — total 23; splits: test (-1); repo https://github.com/embeddings-benchmark/mteb1920## Metrics2122- `Borda count` **(primary)** — range: integer (higher is better)23 - Each task ranks all evaluated models. Models receive points based on their rank (e.g., highest score gets N points, lowest gets 1). Points are summed across all tasks to yield a total score. Ties are resolved via the tournament Borda count method.24- `Average task score` — range: percent or [0, 1]25 - The arithmetic mean of task-specific performance metrics (e.g., accuracy, cosine similarity, F1) computed across all tasks or grouped by category.2627## Input / output format2829**Input**: Text pairs (for classification, STS, bitext mining) or query-document pairs (for retrieval, reranking) fed into a text embedding model.3031**Output**: Fixed-dimensional embedding vectors for each input text.3233## Scoring recipe3435```python36def evaluate(models, tasks):37 task_scores = {t: [] for t in tasks}38 for model in models:39 for t in tasks:40 task_scores[t].append(compute_task_metric(model, t))41 avg_scores = {m: mean([s for s in task_scores.values()]) for m in models}42 borda_scores = {m: 0 for m in models}43 for t in tasks:44 ranked = sort_descending(task_scores[t])45 for rank, m in enumerate(ranked):46 borda_scores[m] += len(ranked) - rank47 return avg_scores, borda_scores48```4950## Common pitfalls5152- Averaging raw task scores without normalization can skew results, as different tasks use different metrics (e.g., accuracy vs. cosine similarity).53- Ignoring the Borda count aggregation method for final model ranking, which is explicitly designed to be more robust than simple score averaging.54- Overlooking limited model support for newer tasks like Instruction Retrieval, which are excluded from category averages in reported results.5556## Evidence (verbatim from paper)5758> We compute model ranks using the Borda count method (Colombo et al., [2022]), derived from social choice theory. This method, which is also employed in election systems based on preference ranking, has been shown to be more robust for comparing NLP systems. To compute this score, we consider each task as a preference voter voting for each model, and scores are aggregated according to the Borda Count method. In the case of ties, we use the tournament Borda count method.5960## Citation6162```bibtex63@misc{enevoldsen2025mmteb,64 title={MMTEB: Massive Multilingual Text Embedding Benchmark},65 author={Enevoldsen et al. (2025)},66 year={2025},67 note={arXiv:2502.13595}68}69```7071- arXiv: 2502.13595