MTEBとは
Massive Text Embedding Benchmark
分類・クラスタリング・検索等の複数タスク・100以上の言語にわたり、テキスト埋め込みモデルの性能を横断的に評価するベンチマーク
ひとことで言うと
文章の埋め込みモデルの性能を、いろいろなタスク・言語で横断的に測るベンチマーク。
概要
MTEB(Massive Text Embedding Benchmark)とは、テキスト埋め込みモデルの性能を、分類・クラスタリング・ペア分類・リランキング・検索・意味的テキスト類似度(STS)・要約等、複数の異なるタスクにわたって横断的に評価するベンチマーク。 単一のタスクだけでモデルを評価すると、そのタスクには強くても他の用途では性能が振るわない埋め込みモデルを見逃してしまう。MTEBは、多様なタスク・データセット・言語を用いることで、埋め込みモデルの汎用的な性能を比較できるようにしている。 結果は公開のリーダーボードで公表されており、各種埋め込みモデルの性能比較で広く参照される代表的な指標になっている。
背景
従来のテキスト埋め込みモデルの評価は、意味的テキスト類似度(STS)等、特定のタスク・データセットに限定されることが多く、検索・分類・クラスタリング等、埋め込みモデルの幅広い用途における性能を十分に評価できていなかった。MTEBは、複数タスク・複数言語にわたる横断的な評価を通じて、埋め込みモデルの汎用性をより正確に比較できるよう開発された。
歴史
2022年10月: Muennighoff・Tazi・Magne・Reimersらが、論文「MTEB: Massive Text Embedding Benchmark」を発表。当初は8種類のタスク・58データセット・112言語をカバーする形で公開された。
コード例
mtebライブラリによるタスク評価
import mteb
# 評価するモデルを選択
model_name = "sentence-transformers/all-MiniLM-L6-v2"
model = mteb.get_model(model_name)
# 評価するタスクを選択
tasks = mteb.get_tasks(tasks=["Banking77Classification.v2"])
# 評価を実行
results = mteb.evaluate(model, tasks=tasks)利点
欠点
- タスク・言語ごとに得意不得意が分かれるモデルも多く、総合スコアだけでは特定用途への適性を判断しづらい
- ベンチマークに特化したチューニングにより、実運用での性能と乖離するモデルが出てくる可能性がある
比較
- 埋め込みモデル — MTEBは、埋め込みモデルの性能を複数タスクにわたって横断的に評価する代表的なベンチマーク
関連用語
よくある質問
MTEBのスコアだけでモデルを選んでよい?
MTEBの総合スコアは複数タスクの平均的な性能を示すが、検索特化・分類特化等、用途によって得意なモデルは異なる。実際の利用シーンに近いタスク・言語のサブスコアも合わせて確認することが推奨される。
参考文献
- Research PaperMTEB: Massive Text Embedding Benchmark
- GitHubembeddings-benchmark/mteb