🚀 crossencoder-camembert-large-mmarcoFR
このモデルはフランス語用のクロスエンコーダーモデルです。質問とパラグラフのペア間でクロスアテンションを行い、関連性スコアを出力します。このモデルは、セマンティック検索のリランカーとして使用されます。具体的には、クエリと、効率的な一次検索システム(例えばBM25や微調整された密ベクトルバイエンコーダー)によって取得された潜在的に関連するパラグラフのセットが与えられた場合、各クエリとパラグラフのペアをエンコードし、モデルが予測したスコアに従ってパラグラフを関連性の降順に並べ替えます。
🚀 クイックスタート
このモデルを使用するには、以下のライブラリを利用する方法があります。
💻 使用例
基本的な使用法
Sentence-Transformersを使用する場合
まず、ライブラリをインストールします。pip install -U sentence-transformers
from sentence_transformers import CrossEncoder
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
model = CrossEncoder('antoinelouis/crossencoder-camembert-large-mmarcoFR')
scores = model.predict(pairs)
print(scores)
FlagEmbeddingを使用する場合
まず、ライブラリをインストールします。pip install -U FlagEmbedding
from FlagEmbedding import FlagReranker
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
reranker = FlagReranker('antoinelouis/crossencoder-camembert-large-mmarcoFR')
scores = reranker.compute_score(pairs)
print(scores)
HuggingFace Transformersを使用する場合
まず、ライブラリをインストールします。pip install -U transformers
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
tokenizer = AutoTokenizer.from_pretrained('antoinelouis/crossencoder-camembert-large-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-camembert-large-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のリーダーボードを参照してください。
学習
データ
mMARCOデータセットのフランス語学習サンプルを使用しています。これはMS MARCOの多言語機械翻訳バージョンで、880万のパラグラフと53.9万の学習クエリを含んでいます。公式データセットが提供するBM25ネガティブは使用せず、代わりに12の異なる密検索器から採掘されたハードネガティブをサンプリングしています。具体的には、msmarco-hard-negatives蒸留データセットを使用しています。最終的に、(クエリ、パラグラフ、関連性)の形式の260万の学習トリプレットをサンプリングしており、肯定的なペアと否定的なペアの比率は1(つまり、ペアの50%が関連しており、50%が関連していない)です。
実装
モデルはalmanach/camembert-largeのチェックポイントから初期化され、二値交差エントロピー損失(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ライセンスの下で提供されています。