MTEB : Benchmarking pour évaluer la performance des modèles d'intégration de texte

Introduction générale

MTEB (Massive Text Embedding Benchmark) est un projet open source développé par l'équipe embeddings-benchmark et hébergé sur GitHub, visant à fournir une évaluation complète des performances des modèles d'intégration de texte. Il couvre 8 types de tâches principales, y compris la classification, le regroupement, la recherche, etc., intègre 58 ensembles de données, prend en charge 112 langues et est actuellement l'un des outils d'évaluation comparative de l'intégration de texte les plus complets. mteb révèle les différences de performance des différents modèles dans diverses tâches en testant 33 types de modèles et aide les développeurs à choisir le modèle d'intégration adapté à des applications spécifiques. Le projet fournit un code source ouvert afin que les utilisateurs puissent librement effectuer les tests ou soumettre de nouveaux modèles au classement public, ce qui est largement applicable à la recherche en PNL, au développement de modèles et aux scénarios d'application industrielle.

MTEB:评估文本嵌入模型性能的基准测试

Accessible à l'adresse suivante : https://huggingface.co/spaces/mteb/leaderboard

MTEB:评估文本嵌入模型性能的基准测试

 

Liste des fonctions

  • Support d'évaluation multi-tâchesIl contient 8 tâches d'intégration, telles que la similarité sémantique des textes (STS), la recherche, le regroupement, etc., couvrant un large éventail de scénarios d'application.
  • Ensembles de données multilinguesLa prise en charge de 112 langues permet de tester des modèles multilingues, ce qui convient au développement d'applications globales.
  • Classement des performances des modèlesLes classements publics intégrés présentent les résultats des tests pour 33 modèles afin de faciliter la comparaison et la sélection.
  • Tests de modèles personnalisésLes modèles d'évaluation : Permettre aux utilisateurs d'importer des modèles intégrés personnalisés avec seulement une petite quantité de code pour exécuter l'évaluation.
  • Fonctionnalité d'intégration du cacheLa mise en cache des résultats permet d'optimiser l'efficacité des tests répétés dans le cadre d'expériences à grande échelle.
  • Réglage flexible des paramètresLes tests d'évaluation de la qualité de l'eau et de la qualité de l'air peuvent être réalisés par le biais d'un système d'évaluation de la qualité de l'eau et de l'air.
  • Soutien à l'Open SourceLe code source complet est ouvert aux utilisateurs pour qu'ils puissent modifier ou étendre les fonctionnalités en fonction de leurs besoins.
  • Extensibilité de la CommunautéLes utilisateurs peuvent soumettre de nouvelles tâches, de nouveaux ensembles de données ou de nouveaux modèles afin d'enrichir les tests de façon continue.

 

Utiliser l'aide

Processus d'installation

MTEB est un outil basé sur Python qui nécessite un environnement de programmation pour être déployé et exécuté. Voici les étapes détaillées de l'installation :

1. préparation à l'environnement

  • système d'exploitationWindows, MacOS ou Linux sont pris en charge.
  • Version Python: nécessite Python 3.10 ou plus, auquel on peut accéder par l'intermédiaire de l'option python --version Vérifier.
  • Outils GitLe code source : Utilisé pour obtenir le code source depuis GitHub, il est recommandé de l'installer à l'avance.

2. clonage de la base de code

Ouvrez un terminal et exécutez la commande suivante pour obtenir le code source de la MTEB :

git clone https://github.com/embeddings-benchmark/mteb.git
cd mteb

Cette opération permet de télécharger le projet localement et d'entrer dans le répertoire du projet.

3. installation des dépendances

La MTEB nécessite la prise en charge de certaines bibliothèques Python, et il est recommandé de créer un environnement virtuel avant d'installer les dépendances afin d'éviter les conflits :

python -m venv venv
source venv/bin/activate  # Linux/MacOS
venv\Scripts\activate     # Windows

Installez ensuite les dépendances de base :

pip install -r requirements.txt

Pour faire fonctionner l'interface de classement, vous devez également installer Gradio :

pip install mteb[gradio]

4. vérification de l'installation

Exécutez la commande suivante pour vérifier la disponibilité des tâches et assurer la réussite de l'installation :

mteb --available_tasks

Si vous revenez à la liste des tâches, la configuration de l'environnement est terminée.

Utilisation

La fonction principale de la MTEB est d'évaluer les modèles d'insertion de texte, et la procédure opérationnelle principale est la suivante :

Fonction 1 : Exécuter des tâches prédéfinies pour évaluer les modèles existants

La MTEB permet de tester directement les modèles existants (par exemple, le modèle SentenceTransformer). Par exemple, l'évaluation des performances du modèle "average_word_embeddings_komninos" sur la tâche Banking77Classification :

mteb -m average_word_embeddings_komninos -t Banking77Classification --output_folder results/average_word_embeddings_komninos --verbosity 3
  • -m Spécifie le nom du modèle.
  • -t Spécifiez le nom de la tâche.
  • --output_folder Spécifie le chemin d'accès où les résultats sont enregistrés.
  • --verbosity 3 Affiche le journal détaillé.

Les résultats sont enregistrés dans un dossier spécifique contenant les scores de chaque tâche.

Fonction 2 : Tester les modèles personnalisés

Si vous souhaitez tester votre propre modèle, il vous suffit d'implémenter une interface simple. Prenons l'exemple de SentenceTransformer :

from mteb import MTEB
from sentence_transformers import SentenceTransformer
# 加载模型
model = SentenceTransformer("average_word_embeddings_komninos")
# 定义评估任务
evaluation = MTEB(tasks=["Banking77Classification"])
# 运行评估
evaluation.run(model, output_folder="results")

Après l'exécution, les résultats sont enregistrés dans le dossier "results".

Fonctionnalité 3 : intégration du cache pour optimiser l'efficacité

Pour les tests répétitifs, la mise en cache peut être activée afin d'éviter le double comptage des éléments intégrés :

from mteb.models.cache_wrapper import CachedEmbeddingWrapper
# 包装模型以启用缓存
model_with_cache = CachedEmbeddingWrapper(model, cache_path="cache_embeddings")
evaluation.run(model_with_cache)

Le fichier cache est stocké dans le chemin spécifié par le nom de la tâche.

Fonction 4 : Afficher le classement

Pour connaître le classement actuel des modèles, consultez le tableau de classement officiel ou déployez-le localement :

git clone https://github.com/embeddings-benchmark/leaderboard.git
cd leaderboard
pip install -r requirements.txt
python app.py

Accès dans le navigateur http://localhost:7860Vous pouvez consulter les classements en temps réel.

Fonction 5 : Ajouter de nouvelles tâches

Les utilisateurs peuvent étendre la MTEB en héritant d'une classe de tâches, par exemple en ajoutant une tâche de reclassement :

from mteb.abstasks.AbsTaskReranking import AbsTaskReranking
class CustomReranking(AbsTaskReranking):
    @property
def description(self):
return {
"name": "CustomReranking",
"description": "自定义重排序任务",
"type": "Reranking",
"eval_splits": ["test"],
"eval_langs": ["en"],
"main_score": "map"
}
evaluation = MTEB(tasks=[CustomReranking()])
evaluation.run(model)

compétence opérationnelle

  • Support multi-GPUPour les tâches de recherche, l'accélération multi-GPU peut être utilisée :
pip install git+https://github.com/NouamaneTazi/beir@nouamane/better-multi-gpu
torchrun --nproc_per_node=2 scripts/retrieval_multigpu.py
  • sous-ensemble sélectionnéLes tâches spécifiques ne sont évaluées que pour un sous-ensemble d'entre elles :
evaluation.run(model, eval_subsets=["Banking77Classification"])
  • Ajuster la taille du lotOptimisation de la vitesse de codage : Optimisation de la vitesse de codage :
evaluation.run(model, encode_kwargs={"batch_size": 32})

Avec les étapes ci-dessus, les utilisateurs peuvent facilement commencer à utiliser la MTEB et compléter l'évaluation du modèle ou l'extension fonctionnelle.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...