MTEB 大規模テキスト埋め込みベンチマーク
MTEB Large-scale Text Embedding Benchmark.
MTEBは、さまざまな埋め込みタスクでテキスト埋め込みモデルのパフォーマンスを測定するための大規模ベンチマークです。
🥇リーダーボードは、さまざまなタスクで最高のテキスト埋め込みモデルの包括的なビューを提供します。
📝論文は、MTEBのタスクとデータセットについての背景を説明し、リーダーボードの結果を分析しています!
💻Githubリポジトリには、ベンチマークのためのコードとリーダーボードへの任意のモデルの提出が含まれています。
- PyTorch DDPからAccelerateへ、そしてTrainerへ簡単に分散トレーニングをマスターしましょう
- 🤗 Optimum IntelとOpenVINOでモデルを高速化しましょう
- マルチリンガルASRのためのWhisperの調整を行います with 🤗 Transformers
テキスト埋め込みの重要性
テキスト埋め込みは、意味情報をエンコードするテキストのベクトル表現です。コンピュータは計算を行うために数値の入力を必要とするため、テキスト埋め込みは多くのNLPアプリケーションの重要な要素です。たとえば、Googleはテキスト埋め込みを検索エンジンの動力源として使用しています。テキスト埋め込みは、クラスタリングによる大量のテキストのパターン検出や、最近のSetFitのようなテキスト分類モデルへの入力としても使用できます。ただし、テキスト埋め込みの品質は、使用される埋め込みモデルに大きく依存します。MTEBは、さまざまなタスクに対して最適な埋め込みモデルを見つけるのに役立つように設計されています!
MTEB
🐋 Massive:MTEBには8つのタスクにわたる56のデータセットが含まれ、現在リーダーボード上の>2000の結果を要約しています。
🌎 Multilingual:MTEBには最大112の異なる言語が含まれています!Bitext Mining、Classification、STSにおいていくつかの多言語モデルをベンチマークにかけました。
🦚 Extensible:新しいタスク、データセット、メトリクス、またはリーダーボードの追加に関しては、どんな貢献も大歓迎です。リーダーボードへの提出やオープンな課題の解決については、GitHubリポジトリをご覧ください。最高のテキスト埋め込みモデルの発見の旅にご参加いただければ幸いです。
MTEBのタスクとデータセットの概要。多言語データセットは紫の色で表示されます。
モデル
MTEBの初期ベンチマークでは、最新の結果を謳うモデルやHubで人気のあるモデルに焦点を当てました。これにより、トランスフォーマーの代表的なモデルが多く含まれています。🤖
平均英語MTEBスコア(y)対速度(x)対埋め込みサイズ(円のサイズ)でモデルをグループ化しました。
次の3つの属性にモデルを分類して、タスクに最適なモデルを簡単に見つけることをお勧めします:
🏎 最大速度 Gloveのようなモデルは高速ですが、文脈の理解が不足しており、平均MTEBスコアが低くなります。
⚖️ 速度とパフォーマンス やや遅いですが、非常に強力なall-mpnet-base-v2やall-MiniLM-L6-v2は、速度とパフォーマンスのバランスを取ります。
💪 最高のパフォーマンス ST5-XXL、GTR-XXL、またはSGPT-5.8B-msmarcoなどの数十億パラメータモデルがMTEBで優れた結果を出します。SGPT-5.8B-msmarcoのようなモデルは4096次元の埋め込みを生成し、より多くのストレージが必要です!
モデルのパフォーマンスは、タスクとデータセットによって大幅に異なるため、どのモデルを使用するかを決定する前に、リーダーボードのさまざまなタブをチェックすることをお勧めします!
モデルのベンチマーク
MTEBライブラリを使用すると、埋め込みを生成する任意のモデルをベンチマークにかけ、その結果を公開リーダーボードに追加することができます。以下にクイックな例を紹介します!
まず、ライブラリをインストールします:
pip install mteb
次に、例えばkomninosの単語埋め込みをBanking77のデータセットに対してベンチマークします。
from mteb import MTEB
from sentence_transformers import SentenceTransformer
model_name = "average_word_embeddings_komninos"
model = SentenceTransformer(model_name)
evaluation = MTEB(tasks=["Banking77Classification"])
results = evaluation.run(model, output_folder=f"results/{model_name}")
これにより、results/average_word_embeddings_komninos/Banking77Classification.json
ファイルが生成されます!
これで、結果をリーダーボードに追加するために、Hubの任意のモデルのREADME.md
のメタデータに追加できます。
メタデータを生成するために、自動スクリプトを実行してください:
python mteb_meta.py results/average_word_embeddings_komninos
スクリプトは、次のようなmteb_metadata.md
ファイルを生成します:
---
tags:
- mteb
model-index:
- name: average_word_embeddings_komninos
results:
- task:
type: Classification
dataset:
type: mteb/banking77
name: MTEB Banking77Classification
config: default
split: test
revision: 0fd18e25b25c072e09e0d92ab615fda904d66300
metrics:
- type: accuracy
value: 66.76623376623377
- type: f1
value: 66.59096432882667
---
次に、このメタデータをHubの任意のモデルのREADME.md
の先頭に追加してください。例えば、SGPT-5.8B-msmarcoモデルのように追加すると、リーダーボードに表示されます。
次のステップ
お好きなモデルをベンチマークしてください!ご質問やフィードバックがある場合は、GitHubのリポジトリまたはリーダーボードのコミュニティタブで問題を開いてください 🤗
埋め込みの成功を祈っています!
クレジット
以下の方々に、記事やMTEBコードベースへの貢献を心から感謝いたします(アルファベット順):Steven Liu、Loïc Magne、Nils Reimers、Nouamane Tazi。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles