Guide
Classement MTEB : ce qu'il mesure et comment le lire
Le banc d'essai MTEB classe les modèles d'embedding sur huit types de tâches. Ce que mesure chaque note, ses limites, et comment l'utiliser pour choisir.
Mis à jour le
MTEB (Massive Text Embedding Benchmark, banc d'essai massif des plongements de texte) compare les modèles d'embedding sur une batterie de tâches standard et publie leurs notes dans un classement en ligne, hébergé sur Hugging Face. Pour choisir un modèle de recherche documentaire, la note à regarder est celle de la tâche Retrieval, pas la moyenne générale.
D'où vient MTEB
Le banc d'essai a été présenté dans l'article « MTEB: Massive Text Embedding Benchmark » de Niklas Muennighoff, Nouamane Tazi, Loïc Magne et Nils Reimers, déposé le 13/10/2022. Sa version d'origine comptait 8 types de tâches, 58 jeux de données et 112 langues, et comparait 33 modèles. Sa conclusion principale : aucune méthode de plongements ne domine sur toutes les tâches.
Il a été étendu depuis :
- MMTEB (Massive Multilingual), déposé le 19/02/2025 par 85 chercheurs : plus de 500 tâches contrôlées et plus de 250 langues. Parmi les modèles publics, le meilleur y est multilingual-e5-large-instruct, avec 560 millions de paramètres.
- MTEB-French, publié le 30/05/2024 : 18 jeux de données en français, 8 catégories de tâches, 51 modèles comparés.
Le code est libre (licence Apache 2.0) et maintenu sur GitHub.
Les huit types de tâches
D'après l'article d'origine :
| Tâche | Ce qu'on demande au modèle | Note principale |
|---|---|---|
| Bitext Mining | Retrouver la traduction d'une phrase dans une autre langue | F1 |
| Classification | Servir d'entrée à un classifieur (régression logistique) | Exactitude (accuracy) |
| Clustering | Regrouper des textes par sujet (k-moyennes) | V-mesure |
| Pair Classification | Dire si deux textes sont des doublons ou des paraphrases | Précision moyenne sur la similarité cosinus |
| Reranking | Retrier une liste de textes selon une question | MAP (précision moyenne) |
| Retrieval | Retrouver dans un corpus les documents pertinents pour une question | nDCG@10 |
| STS | Noter la similarité de deux phrases comme un humain | Corrélation de Spearman sur la similarité cosinus |
| Summarization | Noter des résumés automatiques par rapport à des résumés humains | Corrélation de Spearman sur la similarité cosinus |
Lire la note Retrieval
La tâche Retrieval est celle qui ressemble le plus à un moteur de recherche interne ou à la phase de recherche d'un RAG (génération augmentée par récupération). Sa note principale, nDCG@10 (normalized Discounted Cumulative Gain sur 10 résultats), récompense un modèle qui place les documents pertinents tout en haut des 10 premiers résultats, et le pénalise quand ils arrivent plus bas. L'article précise que cette tâche reprend des jeux de données et l'évaluation du banc BEIR.
Une moyenne générale élevée peut cacher une note Retrieval moyenne, et inversement : l'article montre qu'un modèle peut briller en similarité de phrases et décevoir en recherche et en regroupement.
Les limites à garder en tête
- Les jeux de données ne sont pas les vôtres. Contrats, fiches produit, comptes rendus de chantier : votre vocabulaire n'est pas celui des jeux publics.
- La langue. Le classement général mêle de nombreuses langues. Pour le français, regardez les résultats spécifiques au français quand ils existent.
- Les éditeurs citent leurs propres notes. OpenAI, par exemple, affiche dans sa documentation une « performance MTEB » de 62,3 % pour text-embedding-3-small et de 64,6 % pour text-embedding-3-large. Ces chiffres ne disent pas sur quelle version du banc ni sur quelles langues ; comparez des notes mesurées dans les mêmes conditions.
- La taille du modèle et le coût n'entrent pas dans la note. Un modèle mieux classé peut être plus lent, plus cher, ou trop gros pour vos machines.
Faire tourner MTEB vous-même
La bibliothèque s'installe avec pip install mteb. Exemple adapté du dépôt :
import mteb
model = mteb.get_model("intfloat/multilingual-e5-large")
tasks = mteb.get_tasks(tasks=["Banking77Classification.v2"])
results = mteb.evaluate(model, tasks=tasks)
Remplacez la tâche par des tâches de recherche en français pour vous rapprocher de votre usage. Le plus parlant reste un petit jeu de questions tiré de vos propres documents, comme décrit dans Choisir un modèle d'embedding. Pour évaluer ensuite la chaîne complète, avec la réponse rédigée, voir Évaluer un RAG.
Questions fréquentes
Quelle note du classement MTEB regarder pour un moteur de recherche ou un RAG ?
La note de la tâche Retrieval (recherche documentaire), mesurée en nDCG@10 dans l'article d'origine : elle dit si les bons documents arrivent en tête des 10 premiers résultats.
Le premier du classement MTEB est-il le meilleur modèle pour moi ?
Pas forcément. L'article d'origine conclut qu'aucune méthode ne domine sur toutes les tâches. Le classement sert à présélectionner ; un test sur vos questions tranche.
Sources
Pages consultées pour écrire cet article :