🚀 crossencoder-camembert-base-mmarcoFR
このモデルはフランス語用のクロスエンコーダーモデルです。質問とパッセージのペア間でクロスアテンションを行い、関連性スコアを出力します。このモデルは、セマンティック検索のリランカーとして使用されます。具体的には、クエリと、効率的な一次検索システム(例えばBM25や微調整された密ベクトルバイエンコーダー)によって取得された潜在的に関連するパッセージのセットが与えられた場合、各質問とパッセージのペアをエンコードし、モデルが予測したスコアに従ってパッセージを関連性の降順に並べ替えます。
🚀 クイックスタート
このモデルを使用するには、以下のライブラリを使った例を参考にしてください。
💻 使用例
基本的な使用法
まず、ライブラリをインストールします。
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-base-mmarcoFR')
scores = model.predict(pairs)
print(scores)
まず、ライブラリをインストールします。
pip install -U FlagEmbedding
次に、以下のようにモデルを使用できます。
from FlagEmbedding import FlagReranker
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
reranker = FlagReranker('antoinelouis/crossencoder-camembert-base-mmarcoFR')
scores = reranker.compute_score(pairs)
print(scores)
まず、ライブラリをインストールします。
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-base-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-camembert-base-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 hard negativesを含む1000個のパッセージのアンサンブルをリランクする必要があります。平均逆順位(MRR)と様々なカットオフでのリコール(R@k)を報告しています。フランス語の他のニューラル検索モデルとの比較を見るには、DécouvrIRのリーダーボードを確認してください。
学習
データ
mMARCOデータセットのフランス語学習サンプルを使用しています。これはMS MARCOの多言語機械翻訳版で、880万個のパッセージと53.9万個の学習クエリを含んでいます。公式データセットが提供するBM25ネガティブは使用せず、12の異なる密ベクトル検索器から抽出されたより難しいネガティブをサンプリングしています。具体的には、msmarco-hard-negatives蒸留データセットを使用しています。最終的に、正負の比率が1(つまり、ペアの50%が関連し、50%が関連しない)の260万個の学習トリプレット(クエリ、パッセージ、関連性)をサンプリングしています。
実装
モデルは、almanach/camembert-baseチェックポイントから初期化され、二値交差エントロピー損失(monoBERTと同じ)を介して最適化されます。80GBのNVIDIA H100 GPUで1つを使用して、AdamWオプティマイザーを用いて20kステップの微調整を行います。バッチサイズは128、学習率は2e-5の定数を使用しています。連結された質問とパッセージのペアの最大シーケンス長は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 |
ベースモデル |
almanach/camembert-base |
モデル指標
モデル名 |
タスク |
データセット |
評価指標 |
値 |
crossencoder-camembert-base-mmarcoFR |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語設定、検証セット) |
Recall@100 |
85.34 |
crossencoder-camembert-base-mmarcoFR |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語設定、検証セット) |
Recall@10 |
59.83 |
crossencoder-camembert-base-mmarcoFR |
テキスト分類(パッセージリランキング) |
mMARCO-fr(unicamp-dl/mmarcoのフランス語設定、検証セット) |
MRR@10 |
33.4 |
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。