🚀 MS MARCO用クロスエンコーダ - 英語とドイツ語対応
これは英語とドイツ語の両方に対応したクロス言語クロスエンコーダモデルで、パラグラフの再ランキングに使用できます。このモデルはMS Marcoパラグラフランキングタスクで学習されています。
このモデルは情報検索に使用できます。詳細はSBERT.netの検索と再ランキングを参照してください。
学習コードはこのリポジトリ内のtrain_script.py
にあります。
🚀 クイックスタート
✨ 主な機能
- クロス言語対応:英語とドイツ語のパラグラフ再ランキングをサポートします。
- 情報検索に適しています:情報検索シナリオでのパラグラフ再ランキングに使用できます。
- コードの利用可能:学習コードを提供しており、開発者がさらなる研究や開発を行いやすくなっています。
💻 使用例
基本的な使用法
SentenceTransformersをインストールしたら、次のようにモデルを使用できます。
from sentence_transformers import CrossEncoder
model = CrossEncoder('model_name', max_length=512)
query = 'How many people live in Berlin?'
docs = ['Berlin has a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers.', 'New York City is famous for the Metropolitan Museum of Art.']
pairs = [(query, doc) for doc in docs]
scores = model.predict(pairs)
高度な使用法
transformersライブラリを使用すると、次のようにモデルを使用できます。
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained('model_name')
tokenizer = AutoTokenizer.from_pretrained('model_name')
features = tokenizer(['How many people live in Berlin?', 'How many people live in Berlin?'], ['Berlin has a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers.', 'New York City is famous for the Metropolitan Museum of Art.'], padding=True, truncation=True, return_tensors="pt")
model.eval()
with torch.no_grad():
scores = model(**features).logits
print(scores)
📚 ドキュメント
性能評価
このモデルの性能は3つのデータセットで評価されています。
- TREC - DL19 EN - EN:元のTREC 2019ディープラーニングトラックでは、英語のクエリと1000の文書(BM25語彙検索で取得)が与えられ、文書の関連性に基づいて並べ替えられます。NDCG@10を計算します。BM25のスコアは45.46で、完全な再ランキング器では95.47点に達することができます。
- TREC - DL19 DE - EN:TREC - DL19の英語のクエリはドイツ語のネイティブスピーカーによってドイツ語に翻訳されました。ドイツ語のクエリと元のTREC - DL19設定の英語のパラグラフを並べ替えます。NDCG@10を計算します。
- GermanDPR DE - DE:GermanDPRデータセットは、ウィキペディアからのドイツ語のクエリとドイツ語のパラグラフを提供します。ドイツ語のウィキペディアの280万のパラグラフをインデックス化し、ElasticsearchのBM25語彙検索を使用して、各クエリに対して最も関連性の高い上位100のパラグラフを取得します。MRR@10を計算します。BM25のスコアは35.85で、完全な再ランキング器では76.27点に達することができます。
同じ評価方法を使用して、バイエンコーダの性能も確認しました。クエリとパラグラフの埋め込みのコサイン類似度を使用して、BM25語彙検索で取得した文書を再ランキングします。バイエンコーダはエンドツーエンドの意味検索にも使用できます。
モデル名 |
TREC - DL19 EN - EN |
TREC - DL19 DE - EN |
GermanDPR DE - DE |
1秒あたりの文書対処理数 |
BM25 |
45.46 |
- |
35.85 |
- |
クロスエンコーダ再ランキング器 |
|
|
|
|
[cross - encoder/msmarco - MiniLM - L6 - en - de - v1](https://huggingface.co/cross - encoder/msmarco - MiniLM - L6 - en - de - v1) |
72.43 |
65.53 |
46.77 |
1600 |
[cross - encoder/msmarco - MiniLM - L12 - en - de - v1](https://huggingface.co/cross - encoder/msmarco - MiniLM - L12 - en - de - v1) |
72.94 |
66.07 |
49.91 |
900 |
[svalabs/cross - electra - ms - marco - german - uncased](https://huggingface.co/svalabs/cross - electra - ms - marco - german - uncased)(ドイツ語のみ) |
- |
- |
53.67 |
260 |
[deepset/gbert - base - germandpr - reranking](https://huggingface.co/deepset/gbert - base - germandpr - reranking)(ドイツ語のみ) |
- |
- |
53.59 |
260 |
バイエンコーダ(再ランキング) |
|
|
|
|
[sentence - transformers/msmarco - distilbert - multilingual - en - de - v2 - tmp - lng - aligned](https://huggingface.co/sentence - transformers/msmarco - distilbert - multilingual - en - de - v2 - tmp - lng - aligned) |
63.38 |
58.28 |
37.88 |
940 |
[sentence - transformers/msmarco - distilbert - multilingual - en - de - v2 - tmp - trained - scratch](https://huggingface.co/sentence - transformers/msmarco - distilbert - multilingual - en - de - v2 - tmp - trained - scratch) |
65.51 |
58.69 |
38.32 |
940 |
[svalabs/bi - electra - ms - marco - german - uncased](https://huggingface.co/svalabs/bi - electra - ms - marco - german - uncased)(ドイツ語のみ) |
- |
- |
34.31 |
450 |
[deepset/gbert - base - germandpr - question_encoder](https://huggingface.co/deepset/gbert - base - germandpr - question_encoder)(ドイツ語のみ) |
- |
- |
42.55 |
450 |
注意:1秒あたりの文書対処理数は、V100 GPUで1秒あたりに再ランキングできる(クエリ、文書)ペアの数を表します。
📄 ライセンス
このプロジェクトはApache 2.0ライセンスの下で提供されています。