🚀 crossencoder-electra-base-french-mmarcoFR
このモデルはフランス語用のクロスエンコーダーモデルです。質問と文章のペア間でクロスアテンションを行い、関連性スコアを出力します。このモデルは、意味検索のリランカーとして使用することを想定しています。具体的には、クエリと、効率的な一次検索システム(例えばBM25や微調整された密な単一ベクトルバイエンコーダー)によって取得された潜在的に関連する文章のセットが与えられた場合、各クエリ - 文章のペアをエンコードし、モデルが予測したスコアに従って文章を関連性の降順に並べ替えます。
🚀 クイックスタート
以下は、Sentence-Transformers、FlagEmbedding、またはHuggingface Transformersを使用してこのモデルを利用する例です。
📦 インストール
Sentence-Transformersを使用する場合
まず、ライブラリをインストールします。
pip install -U sentence-transformers
FlagEmbeddingを使用する場合
ライブラリをインストールします。
pip install -U FlagEmbedding
Huggingface Transformersを使用する場合
ライブラリをインストールします。
pip install -U transformers
💻 使用例
基本的な使用法
Sentence-Transformersを使用する場合
from sentence_transformers import CrossEncoder
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
model = CrossEncoder('antoinelouis/crossencoder-electra-base-french-mmarcoFR')
scores = model.predict(pairs)
print(scores)
FlagEmbeddingを使用する場合
from FlagEmbedding import FlagReranker
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
reranker = FlagReranker('antoinelouis/crossencoder-electra-base-french-mmarcoFR')
scores = reranker.compute_score(pairs)
print(scores)
HuggingFace Transformersを使用する場合
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
tokenizer = AutoTokenizer.from_pretrained('antoinelouis/crossencoder-electra-base-french-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-electra-base-french-mmarcoFR')
model.eval()
with torch.no_grad():
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
📚 ドキュメント
評価
このモデルは、mMARCO-frの小規模開発セットで評価されています。このセットは6,980個のクエリから構成されており、ポジティブな文章とColBERTv2のハードネガティブを含む1000個の文章のアンサンブルをリランクする必要があります。平均逆順位(MRR)と様々なカットオフでのリコール(R@k)を報告しています。他のフランス語のニューラルリトリーバーとの比較を確認するには、DécouvrIRのリーダーボードを参照してください。
トレーニング
データ
msmarco-hard-negatives蒸留データセットを使用して、12の異なる密なリトリーバーから採掘されたより難しいネガティブをサンプリングします。最終的に、正負の比率が1(つまり、ペアの50%が関連し、50%が関連しない)の形式(クエリ、文章、関連性)の260万個のトレーニングトリプレットをサンプリングします。
実装
このモデルは、dbmdz/electra-base-french-europeana-cased-discriminatorのチェックポイントから初期化され、二値交差エントロピー損失(monoBERTのように)を介して最適化されます。AdamWオプティマイザーを使用して、バッチサイズ128、一定の学習率2e-5で、1台の80GB NVIDIA H100 GPUで20kステップ微調整されます。連結された質問 - 文章のペアの最大シーケンス長は256トークンに設定されています。シグモイド関数を使用して、0から1の間のスコアを取得します。
引用
@online{louis2024decouvrir,
author = 'Antoine Louis',
title = 'DécouvrIR: A Benchmark for Evaluating the Robustness of Information Retrieval Models in French',
publisher = 'Hugging Face',
month = 'mar',
year = '2024',
url = 'https://huggingface.co/spaces/antoinelouis/decouvrir',
}
情報テーブル
属性 |
详情 |
パイプラインタグ |
テキストランキング |
言語 |
フランス語 |
ライセンス |
MIT |
データセット |
unicamp-dl/mmarco |
評価指標 |
リコール |
タグ |
パッセージリランキング |
ライブラリ名 |
sentence-transformers |
ベースモデル |
dbmdz/electra-base-french-europeana-cased-discriminator |
モデル名 |
crossencoder-electra-base-french-mmarcoFR |
モデル指標
タスク |
データセット |
指標 |
値 |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語版、検証セット) |
Recall@500 |
95.11 |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語版、検証セット) |
Recall@100 |
82.72 |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語版、検証セット) |
Recall@10 |
56.03 |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語版、検証セット) |
MRR@10 |
31.7 |