AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

MTEB: Benchmarking zur Bewertung der Leistung von Text-Einbettungsmodellen

Allgemeine Einführung

MTEB (Massive Text Embedding Benchmark) ist ein Open-Source-Projekt, das vom embeddings-benchmark-Team entwickelt wurde und auf GitHub gehostet wird. Es zielt darauf ab, eine umfassende Leistungsbewertung für Texteinbettungsmodelle bereitzustellen. Es deckt 8 Hauptaufgabentypen ab, darunter Klassifizierung, Clustering, Retrieval usw., integriert 58 Datensätze, unterstützt 112 Sprachen und ist derzeit eines der umfassendsten Benchmarking-Tools für Texteinbettungen. mteb zeigt die Leistungsunterschiede verschiedener Modelle bei verschiedenen Aufgaben durch das Testen von 33 Modelltypen auf und hilft Entwicklern bei der Auswahl des für bestimmte Anwendungen geeigneten Einbettungsmodells. Das Projekt stellt offenen Quellcode zur Verfügung, so dass die Benutzer die Tests frei durchführen oder neue Modelle für die öffentliche Rangliste einreichen können, die in der NLP-Forschung, der Modellentwicklung und in industriellen Anwendungsszenarien breite Anwendung findet.

MTEB: Ein Open-Source-Benchmarking-Tool zur Bewertung der Leistung von Text-Einbettungsmodellen-1

Zugänglich unter: https://huggingface.co/spaces/mteb/leaderboard


MTEB: Ein Open-Source-Benchmarking-Tool zur Bewertung der Leistung von Text-Einbettungsmodellen-1

 

Funktionsliste

  • Unterstützung der Multi-Task-AuswertungEnthält 8 Einbettungsaufgaben, wie z.B. semantische Textähnlichkeit (STS), Retrieval, Clustering, usw., die ein breites Spektrum von Anwendungsszenarien abdecken.
  • Mehrsprachige DatensätzeUnterstützung von 112 Sprachen, die es ermöglichen, mehrsprachige Modelle zu testen, die für die Entwicklung globaler Anwendungen geeignet sind.
  • Rangliste der ModellleistungEingebaute öffentliche Ranglisten mit Testergebnissen für 33 Modelle zum einfachen Vergleich und zur Auswahl.
  • Maßgeschneiderte ModelltestsBenutzer können benutzerdefinierte eingebettete Modelle mit nur wenig Code importieren, um die Auswertung durchzuführen.
  • Cache-EinbettungsfunktionalitätUnterstützt das Zwischenspeichern von Ergebnissen, um die Effizienz von Wiederholungstests bei umfangreichen Experimenten zu optimieren.
  • Flexible Anpassung der ParameterKonfiguration von Codierungsparametern, wie z. B. die Anpassung der Chargengröße, um die Testflexibilität zu erhöhen.
  • Open-Source-UnterstützungDer vollständige Quellcode ist offen für Benutzer, die die Funktionalität nach ihren Bedürfnissen verändern oder erweitern möchten.
  • Erweiterbarkeit der GemeinschaftUnterstützung der Benutzer bei der Einreichung neuer Aufgaben, Datensätze oder Modelle, um die Tests fortlaufend zu erweitern.

 

Hilfe verwenden

Ablauf der Installation

MTEB ist ein auf Python basierendes Tool, das zum Einsatz und zur Ausführung eine Programmierumgebung erfordert. Im Folgenden werden die einzelnen Installationsschritte beschrieben:

1. die Vorbereitung der Umwelt

  • BetriebssystemWindows, MacOS oder Linux werden unterstützt.
  • Python-Version: erfordert Python 3.10 oder höher, auf das über den Befehl python --version Prüfen.
  • Git-Werkzeuge: Wird verwendet, um den Quellcode von GitHub zu erhalten, es wird empfohlen, ihn im Voraus zu installieren.

2. das Klonen der Codebasis

Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um den MTEB-Quellcode zu erhalten:

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

Dadurch wird das Projekt lokal heruntergeladen und das Projektverzeichnis eingegeben.

3. die Installation von Abhängigkeiten

MTEB erfordert die Unterstützung einiger Python-Bibliotheken, und es wird empfohlen, vor der Installation von Abhängigkeiten eine virtuelle Umgebung zu erstellen, um Konflikte zu vermeiden:

python -m venv venv
Quelle venv/bin/aktivieren # Linux/MacOS
venv\Skripte\aktivieren # Windows

Installieren Sie dann die Kernabhängigkeiten:

pip install -r anforderungen.txt

Um das Leaderboard-Interface zu nutzen, müssen Sie auch Gradio installieren:

pip install mteb[gradio]

4. die Überprüfung der Installation

Führen Sie den folgenden Befehl aus, um nach verfügbaren Tasks zu suchen und eine erfolgreiche Installation sicherzustellen:

mteb --verfügbare_Aufgaben

Wenn Sie zur Aufgabenliste zurückkehren, ist die Konfiguration der Umgebung abgeschlossen.

Verwendung

Die Hauptfunktion von MTEB ist die Bewertung von Texteinbettungsmodellen, und das folgende Verfahren ist der Hauptarbeitsablauf:

Funktion 1: Ausführen vorgefertigter Aufgaben zur Bewertung vorhandener Modelle

MTEB unterstützt das direkte Testen bestehender Modelle (z. B. das Modell "SentenceTransformer"). Zum Beispiel die Bewertung der Leistung des Modells "average_word_embeddings_komninos" bei der Aufgabe "Banking77Classification":

mteb -m average_word_embeddings_komninos -t Banking77Classification --output_folder results/average_word_embeddings_komninos --verbosity 3
  • -m Gibt den Modellnamen an.
  • -t Geben Sie den Namen der Aufgabe an.
  • --output_folder Gibt den Pfad an, in dem die Ergebnisse gespeichert werden.
  • --Verbindlichkeit 3 Zeigt das detaillierte Protokoll an.

Die Ergebnisse werden in einem bestimmten Ordner gespeichert, der die Punktzahlen für jede Aufgabe enthält.

Funktion 2: Benutzerdefinierte Modelle testen

Wenn Sie Ihr eigenes Modell testen wollen, implementieren Sie einfach eine einfache Schnittstelle. Nehmen Sie den SentenceTransformer als Beispiel:

from mteb import MTEB
from sentence_transformers import SentenceTransformer
# Laden Sie das Modell
model = SentenceTransformer("average_word_embeddings_komninos")
# Definieren Sie die Auswertungsaufgabe
Auswertung = MTEB(tasks=["Bank77Klassifikation"])
# Ausführen der Auswertung
evaluation.run(model, output_folder="results")

Nach der Ausführung werden die Ergebnisse im Ordner "Ergebnisse" gespeichert.

Merkmal 3: Cache-Einbettung zur Optimierung der Effizienz

Für sich wiederholende Tests kann die Zwischenspeicherung aktiviert werden, um eine doppelte Zählung der Einbettungen zu vermeiden:

from mteb.models.cache_wrapper import CachedEmbeddingWrapper
# Umhüllen eines Modells zur Aktivierung der Zwischenspeicherung
model_with_cache = CachedEmbeddingWrapper(model, cache_path="cache_embeddings")
evaluation.run(model_with_cache)

Die Cache-Datei wird im angegebenen Pfad nach Aufgabenname gespeichert.

Funktion 4: Leaderboard anzeigen

Um die aktuelle Modellrangliste zu sehen, besuchen Sie die offizielle Rangliste, oder setzen Sie sie lokal ein:

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

Zugang über den Browser http://localhost:7860Sie können die Echtzeit-Ranglisten einsehen.

Funktion 5: Hinzufügen neuer Aufgaben

Die Benutzer können das MTEB erweitern, indem sie von einer Aufgabenklasse erben, z. B. durch Hinzufügen einer Neuordnungsaufgabe:

from mteb.abstasks.AbsTaskReranking import AbsTaskReranking
class CustomReranking(AbsTaskReranking).
    @property
def description(self): @property
return {
"name": "CustomReranking", "description": "CustomReranking", @property
"description": "Benutzerdefinierte Neuordnungsaufgabe",

"eval_splits": ["test"], "eval_splits": ["test"], "eval_langs".
"eval_langs": ["de"], "eval_splits": ["test"], "eval_splits".
"main_score": "map"
}
evaluation = MTEB(tasks=[CustomReranking()])
evaluation.run(model)

Bedienungskompetenz

  • Multi-GPU-UnterstützungFür Abrufaufgaben kann die Multi-GPU-Beschleunigung genutzt werden:
pip install git+https://github.com/NouamaneTazi/beir@nouamane/better-multi-gpu
torchrun --nproc_pro_node=2 scripts/retrieval_multigpu.py
  • ausgewählte Teilmenge: Nur eine Teilmenge bestimmter Aufgaben wird bewertet:
evaluation.run(model, eval_subsets=["Banking77Classification"])
  • Losgröße anpassenOptimierung der Kodiergeschwindigkeit:
evaluation.run(model, encode_kwargs={"batch_size": 32})

Mit den oben genannten Schritten können die Benutzer leicht mit MTEB beginnen und die Modellevaluierung oder Funktionserweiterung abschließen.

CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " MTEB: Benchmarking zur Bewertung der Leistung von Text-Einbettungsmodellen

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)